Помогите доделать задачку! Не могу обойтись без дополнительно массива, он в тексте программы красным! Надо сражу записывать в файл, обходя этот массив, кто сможет помогите с данной проблемкой!
Задание: Подготовить список из N наименований товаров. Конкретное значение N указано в варианте. Информация о каждом товаре содержит: 1) Название товара. 2) Цену. 3) Год выпуска. 4) Количество. Список должен быть упорядочен по одному из параметров, указанных в конкретном варианте. Сведения по каждому товару необходимо представить в виде записи. Разработать программу, которая заносит во внешний файл записи упорядоченного списка, и программу, которая добавляет в сформированный внешний файл данные об М товарах, при этом, не нарушая упорядоченности исходного файла. Если среди добавляемых товаров встречается товар, сведения о котором в файле уже есть, то необходимо их обновить, т. е. старую запись исключить. Вариант №5. Товары упорядочены по невозрастанию года выпу¬ска, N=7, M=3 Текст программы:
Не могу обойтись без дополнительно массива, он в тексте программы красным! Надо сражу записывать в файл, обходя этот массив, кто сможет помогите с данной проблемкой!
Обойтись-то, конечно, можно, только вот к чему это? Смысл в чем? Запутаться? Без проблем. Представь себе, что если сортировка массива выглядит так:
for i:=n-1 downto 1 do for j:=1 to I do if p[j].y < p[j+1].y then begin e:=p[j]; p[j]:=p[j+1]; p[j+1]:=e end;
, то сортировка напрямую в файле будет выглядеть вот так:
for i:=n-1 downto 1 do for j:=1 to I do begin seek(f, j - 1); read(f, rec_j); seek(f, j); read(f, rec_j_1);
if rec_j.y < rec_j_1.y then begin seek(f, j - 1); write(f, rec_j_1); seek(f, j ); write(f, rec_j ); end; end;
Разницу чувствуешь? Это только начало. Когда придется вставлять записи в определенное место файла, будет еще веселее... Ты все еще хочешь изменить программу?