Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите с задачей. Нужно доработать этот код. Получается нужно чтобы f, g были текстовыми документами, которые можно отдельно открыть в папке куда они сохраняются. А в данном случае при попытке открыть файл через блокнот отображается непонятные символы.Заранее спасибо. Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д. Если в последней группе окажется менее пяти компонент, то последняя компонента файла g должна быть равна наибольшей из компонент файла f, образующих последнюю (неполную) группу.
Листинг программы
  1. var
  2. f, g : file of integer;
  3. n, i, j, k : byte;
  4. a, max : integer;
  5. s, s1 : string;
  6. begin
  7. write('Введите имя исходного файла : ');
  8. readln(s1);
  9. assign(f,'s1.txt');
  10. rewrite(f);
  11. randomize;
  12. n := random(20);
  13. for i := 1 to n do
  14. write(f,(random(10)));
  15. writeln('Содержимое исходного файла ',s1,' :');
  16. reset(f);
  17. while not eof(f) do
  18. begin
  19. read(f,a);
  20. write(a:4);
  21. end;
  22. writeln;
  23. write('Имя файла g, содержащего наибольшие элементы из групп по 5 элементов : ');
  24. readln(s);
  25. assign(g,'s.txt');
  26. rewrite(g);
  27. j := 1;
  28. for i := 1 to filesize(f) div 5 do
  29. begin
  30. seek(f,j-1);
  31. read(f,a);
  32. max := a;
  33. for k := 2 to 5 do
  34. begin
  35. seek(f,k-1+j-1);
  36. read(f,a);
  37. if a>max then max := a;
  38. end;
  39. write(g,max);
  40. inc(j,5);
  41. end;
  42. if filesize(f) mod 5 <> 0 then begin
  43. seek(f,5*i);
  44. read(f,a);
  45. max := a;
  46. for k := 2 to filesize(f)-5*i do
  47. begin
  48. seek(f,5*i-1+k);
  49. read(f,a);
  50. if a>max then max := a;
  51. end;
  52. write(g, max);
  53. end;
  54. writeln('Содержимое файла ',s,' :');
  55. reset(g);
  56. while not eof(g) do
  57. begin
  58. read(g,a);
  59. write(a:4);
  60. end;
  61. readln;
  62. close(f);
  63. close(g);
  64. end.

Решение задачи: «Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти»

textual
Листинг программы
  1. var f, g: text;
  2.     n, i, a, max: integer;
  3.     s: string;
  4. begin
  5.   randomize;
  6.   write('Введите имя исходного файла: ');
  7.   readln(s);
  8.   assign(f, s + '.txt');
  9.   rewrite(f);
  10.   n := random(200);
  11.   for i := 0 to n do
  12.     begin
  13.       if (i > 0) and (i mod 5 = 0) then writeln(f);
  14.       write(f, -99 + random(199):4)
  15.     end;
  16.   reset(f);
  17.   writeln('Содержимое исходного файла ', s, '.txt: ');
  18.   while not seekeof(f) do
  19.     begin
  20.       read(f, a);
  21.       write(a:4)
  22.     end;
  23.   writeln;
  24.   write('Имя файла, содержащего наибольшие элементы из групп по 5 элементов : ');
  25.   readln(s);
  26.   assign(g, s + '.txt');
  27.   rewrite(g);
  28.   reset(f);
  29.   i := 0;
  30.   while not seekeof(f) do
  31.     begin
  32.       read(f, a);
  33.       if (i = 0) or (max < a) then max := a;
  34.       if i = 4 then writeln(g, max);
  35.       i := (i + 1) mod 5
  36.     end;
  37.   if i > 0 then writeln(g, max);
  38.   writeln('Содержимое файла ', s, '.txt: ');
  39.   reset(g);
  40.   while not seekeof(g) do
  41.     begin
  42.       read(g, a);
  43.       write(a:4)
  44.     end;
  45.   readln;
  46.   close(f);
  47.   close(g)
  48. end.

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

  1. Объявление переменных:
    • f, g: text; - задают файлы f и g
    • n, i, a, max: integer; - определяют целочисленные переменные n, i, a, max
    • s: string; - определяет строковую переменную s
  2. Создание и запись значений в файл f: a. Вводится имя исходного файла b. Присваивается файлу f имя, полученное от пользователя c. Файл f открывается для записи d. Генерируется случайное число n e. Выполняется цикл от 0 до n для записи целых чисел в файл f в несколько групп (по 5 элементов)
  3. Печать содержимого файла f: a. Выводится содержимое исходного файла f.txt
  4. Создание и запись максимальных значений в файл g: a. Запрашивается имя файла, который будет содержать наибольшие элементы из групп по 5 элементов b. Файлу g присваивается имя, полученное от пользователя c. Файл g открывается для записи d. Файл f открывается для чтения e. Выполняется цикл, в котором считываются значения из файла f и записываются наибольшие значения (из групп по 5 элементов) в файл g
  5. Печать содержимого файла g: a. Выводится содержимое файла g.txt
  6. Завершение работы с файлами: a. Закрывается файл f b. Закрывается файл g

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы