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