Сформировать новый файл, который будет состоять из сумм компонентов - Pascal
Формулировка задачи:
Задан файл из N целых компонентов. Сформировать новый файл, который будет состоять из сумм компонентов a1+aN, a2+aN-1, a3+aN-2, ..., ak+am для k<=m. Выдать содержимое полученного файла на экран.
Решение задачи: «Сформировать новый файл, который будет состоять из сумм компонентов»
textual
Листинг программы
const
n = 10;
var
t, x, i: integer;
f, g: file of integer;
begin
randomize;
assign(f, 'f.dat');
rewrite(f);
writeln('Исходный файл: ');
for i := 1 to n do
begin
x := random(10);
write(x, ' ');
write(f, x);
end;
writeln;
reset(f);
assign(g, 'g.dat');
rewrite(g);
writeln('Новый файл: ');
for i := 0 to filesize(f) div 2 - 1 do
begin
seek(f, n - i - 1);
read(f, x);
seek(f, i);
read(f, t);
write(g, x + t);
write(x + t, ' ')
end;
close(f);
close(g);
end.
Объяснение кода листинга программы
- Объявляются константа
nсо значением 10, и переменныеt,xиiтипа integer, а также файловые переменныеfиgтипа file of integer. - Генерируется случайное заполнение и запись в файл
f.datзначений в диапазоне от 0 до 9, также выводится на экран содержимое файлаf.dat. - Файл
f.datоткрывается для чтения, создается и открывается новый файлg.datдля записи. - Происходит чтение значений из файла
f.dat, их суммирование попарно, запись в файлg.datи вывод сумм на экран. - Файл
f.datиg.datзакрываются. Этот код создает новый файлg.dat, в котором каждый элемент представляет собой сумму пар элементов из файлаf.dat(первый элемент суммируется с последним, второй с предпоследним и т.д.), на основе значений, записанных в файлf.dat.