Здравствуйте. Помогите решить задачку: Из чисел 0,1,2, находящихся в различной последовательности. Сделать строгую очередность из 0,1,2. При этом сортировку не применять. Вывести результаты. Затем удалить по одному граничному значению. (Обрабатывать массив и файл из текстового файла)
Lapp
5.11.2007 16:19
Хм.. А расположение в порядке строгой очередности уже не называется сортировкой?.. Поглотить через рот литр воды, при этом не пить? Перемещаться, поочередно переставляя ноги, при этом не ходить?..
Пожалуйста, приведи пример: сначала как было, а потом как должно быть.
Lyorri
5.11.2007 16:54
Если работать с массивом, то так:
if a[i]=0then inc(k0);
if a[i]=1then inc(k1);
if a[i]=2then inc(k2);
end;
for i:=1to n doif i<=k1 then a[i]:=1else;
if (i>k1) and (i<=k1+k0) then a[i]:=0else a[i]:=2;
А мне нужно работать в типизированном файле с компонентами...я не знаю...
Lapp
5.11.2007 17:21
Да, тупею.. такое мне в голову не пришло: пересчитать количество элементов кавждого вида (благо видов всего три) и заполнить ими массив (или файл) по порядку . Спасибо за науку!
Цитата(Lyorri @ 5.11.2007 12:54)
А мне нужно работать в типизированном файле с компонентами...я не знаю...
Так точно так же Только вместо элемента массива нужно произвести чтение из файла в переменную, и ее уже сравнивать с 0, 1 и 2 (только для сравнения разумненее использовать оператор, имхо). То же самое при записи: вместо запси в массив, писать в файл в цикле. Примерно так:
for i:=1to FileSize(f) dobegin
Read(f,x);
case x of0: Inc(k0);
1: Inc(k1);
2: Inc(k2)
endend;
x:=0;
for i:=1to k0 do Write(g,x);
x:=1;
for i:=1to k0 do Write(g,x);
x:=2;
for i:=1to k0 do Write(g,x);
Но все равно я не могу понять, что такое "убрать по одному граничному значению". И еще: в первом сообщении ты писал про текстовые файла, а во втором - про типизированные. Это не ошибка?
Lyorri
5.11.2007 18:49
......Препод мне продиктовал (Обрабатывать массив и файл из текстового файла). Но потом добавил,что работать с типизированным.... Не понимаю
Lyorri
5.11.2007 19:10
Это курсовая работа. Может быть надо массив завести в программе в текстовый файл, а затем эту информацию переписать в типизированный и там уже работать...
Lapp
6.11.2007 17:43
Если есть противоречия в условиях, то либо делай так, как написано (а не сказано или пробормотано), либо пойди и спроси у препа напрямую.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.