Программирование и работа с файлами - Pascal ABC
Формулировка задачи:
Написать программу и блок-схему.
Дан файл f, компоненты которого являются целыми числами. Число компонент файла делиться на 5. Записать в файл g наибольшее значение первых пяти компонент файла f, затем следующих пяти компонентов и т.д.
Решение задачи: «Программирование и работа с файлами»
textual
Листинг программы
var f,g:file of integer;
a,i,j,n,mx:integer;
begin
randomize;
assign(f,'fileF');
rewrite(f);
assign(g,'fileG');
rewrite(g);
for i:=1 to 25 do
begin
a:=random(100);
write(f,a);
end;
writeln('Содержание исходного файла:');
reset(f);
for i:=0 to filesize(f)-1 do
begin
read(f,a);
write(a:3);
end;
writeln;
writeln;
reset(f);
n:=filesize(f) div 5;
for i:=0 to n-1 do
begin
j:=5*i;
seek(f,j);
read(f,mx);
while(j<5*i+4)and(j<filesize(f)-1)do
begin
j:=j+1;
seek(f,j);
read(f,a);
if a>mx then mx:=a;
end;
write(g,mx);
end;
close(f);
writeln('Содержание файла максимумов:');
reset(g);
for i:=0 to filesize(g)-1 do
begin
read(g,a);
write(a:3);
end;
close(g);
end.
Объяснение кода листинга программы
- Создаются два файла 'fileF' и 'fileG'.
- В 'fileF' записываются 25 случайных чисел от 0 до 99.
- В 'fileG' записывается содержимое 'fileF'.
- В 'fileF' считывается содержимое, которое было записано в 'fileG'.
- В 'fileF' считывается содержимое, начиная с позиции, равной размеру 'fileF' деленный на 5.
- Для каждой позиции в 'fileF' считывается следующее число, которое больше или равно максимальному числу 'mx'.
- Максимальное число 'mx' записывается в 'fileG'.
- Закрываются файлы 'fileF' и 'fileG'.
- Выводится содержимое 'fileF'.
- Выводится содержимое 'fileG'.