Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти - Pascal
Формулировка задачи:
Помогите с задачей. Нужно доработать этот код. Получается нужно чтобы f, g были текстовыми документами, которые можно отдельно открыть в папке куда они сохраняются. А в данном случае при попытке открыть файл через блокнот отображается непонятные символы.Заранее спасибо.
Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее
значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д. Если в последней группе
окажется менее пяти компонент, то последняя компонента файла g должна быть равна наибольшей из
компонент файла f, образующих последнюю (неполную) группу.
Листинг программы
- var
- f, g : file of integer;
- n, i, j, k : byte;
- a, max : integer;
- s, s1 : string;
- begin
- write('Введите имя исходного файла : ');
- readln(s1);
- assign(f,'s1.txt');
- rewrite(f);
- randomize;
- n := random(20);
- for i := 1 to n do
- write(f,(random(10)));
- writeln('Содержимое исходного файла ',s1,' :');
- reset(f);
- while not eof(f) do
- begin
- read(f,a);
- write(a:4);
- end;
- writeln;
- write('Имя файла g, содержащего наибольшие элементы из групп по 5 элементов : ');
- readln(s);
- assign(g,'s.txt');
- rewrite(g);
- j := 1;
- for i := 1 to filesize(f) div 5 do
- begin
- seek(f,j-1);
- read(f,a);
- max := a;
- for k := 2 to 5 do
- begin
- seek(f,k-1+j-1);
- read(f,a);
- if a>max then max := a;
- end;
- write(g,max);
- inc(j,5);
- end;
- if filesize(f) mod 5 <> 0 then begin
- seek(f,5*i);
- read(f,a);
- max := a;
- for k := 2 to filesize(f)-5*i do
- begin
- seek(f,5*i-1+k);
- read(f,a);
- if a>max then max := a;
- end;
- write(g, max);
- end;
- writeln('Содержимое файла ',s,' :');
- reset(g);
- while not eof(g) do
- begin
- read(g,a);
- write(a:4);
- end;
- readln;
- close(f);
- close(g);
- end.
Решение задачи: «Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти»
textual
Листинг программы
- var f, g: text;
- n, i, a, max: integer;
- s: string;
- begin
- randomize;
- write('Введите имя исходного файла: ');
- readln(s);
- assign(f, s + '.txt');
- rewrite(f);
- n := random(200);
- for i := 0 to n do
- begin
- if (i > 0) and (i mod 5 = 0) then writeln(f);
- write(f, -99 + random(199):4)
- end;
- reset(f);
- writeln('Содержимое исходного файла ', s, '.txt: ');
- while not seekeof(f) do
- begin
- read(f, a);
- write(a:4)
- end;
- writeln;
- write('Имя файла, содержащего наибольшие элементы из групп по 5 элементов : ');
- readln(s);
- assign(g, s + '.txt');
- rewrite(g);
- reset(f);
- i := 0;
- while not seekeof(f) do
- begin
- read(f, a);
- if (i = 0) or (max < a) then max := a;
- if i = 4 then writeln(g, max);
- i := (i + 1) mod 5
- end;
- if i > 0 then writeln(g, max);
- writeln('Содержимое файла ', s, '.txt: ');
- reset(g);
- while not seekeof(g) do
- begin
- read(g, a);
- write(a:4)
- end;
- readln;
- close(f);
- close(g)
- end.
Объяснение кода листинга программы
- Объявление переменных:
f, g: text;
- задают файлы f и gn, i, a, max: integer;
- определяют целочисленные переменные n, i, a, maxs: string;
- определяет строковую переменную s
- Создание и запись значений в файл f: a. Вводится имя исходного файла b. Присваивается файлу f имя, полученное от пользователя c. Файл f открывается для записи d. Генерируется случайное число n e. Выполняется цикл от 0 до n для записи целых чисел в файл f в несколько групп (по 5 элементов)
- Печать содержимого файла f: a. Выводится содержимое исходного файла f.txt
- Создание и запись максимальных значений в файл g: a. Запрашивается имя файла, который будет содержать наибольшие элементы из групп по 5 элементов b. Файлу g присваивается имя, полученное от пользователя c. Файл g открывается для записи d. Файл f открывается для чтения e. Выполняется цикл, в котором считываются значения из файла f и записываются наибольшие значения (из групп по 5 элементов) в файл g
- Печать содержимого файла g: a. Выводится содержимое файла g.txt
- Завершение работы с файлами: a. Закрывается файл f b. Закрывается файл g
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д