Программирование и работа с файлами - 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.

Объяснение кода листинга программы

  1. Создаются два файла 'fileF' и 'fileG'.
  2. В 'fileF' записываются 25 случайных чисел от 0 до 99.
  3. В 'fileG' записывается содержимое 'fileF'.
  4. В 'fileF' считывается содержимое, которое было записано в 'fileG'.
  5. В 'fileF' считывается содержимое, начиная с позиции, равной размеру 'fileF' деленный на 5.
  6. Для каждой позиции в 'fileF' считывается следующее число, которое больше или равно максимальному числу 'mx'.
  7. Максимальное число 'mx' записывается в 'fileG'.
  8. Закрываются файлы 'fileF' и 'fileG'.
  9. Выводится содержимое 'fileF'.
  10. Выводится содержимое 'fileG'.

Оцени полезность:

13   голосов , оценка 4.077 из 5