Создание и обработка двоичных файлов - Free Pascal (80125)

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

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

Из прямоугольной матрицы, находящейся в файле, сформировать файл, содержащий массив из сумм отрицательных элементов столбцов матрицы. Во входном файле первая компонента – размер строки, вторая - размер столбца, далее – элементы построчно. В выходном файле первая компонента – размер массива, далее – элементы.

Решение задачи: «Создание и обработка двоичных файлов»

textual
Листинг программы
procedure createfile(fn: string);
var
  f: file of integer;
  r, c: integer;
  i, j: integer;
begin
  r := 5 + random(5);
  c := 5 + random(5);
  assign(f, fn);
  rewrite(f);
  write(f, c);
  write(f, r);
  for i := 1 to r do for j := 1 to c do write(f, -50 + random(100));
  close(f);
end;
 
procedure processfile(fn_in, fn_out: string);
var
  f, g: file of integer;
  r, c: integer;
  i, j, x: integer;
  s : array of integer;
begin
  assign(f, fn_in); reset(f);
  assign(g, fn_out); rewrite(g);
  read(f, c); read(f, r);
  write(g, c);
  
  setlength(s, c);
  for i := 0 to c - 1 do s[i] := 0;
  
  for i := 1 to r do
  begin
    for j := 1 to c do 
    begin
      read(f, x); write(x:6); // выводим матрицу только для проверки
      if x < 0 then s[j - 1] := s[j - 1] + x;
    end;
    writeln;
  end;
  for i := 0 to c - 1 do write(g, s[i]);
 
  close(g);
  close(f);
end;
 
procedure testfile(fn: string);
var
  f: file of integer;
  i, x : integer;
begin
  assign(f, fn); reset(f);
  read(f, x);
  writeln('Количество элементов = ', x);
  writeln('Элементы:');
  for i := 1 to x do
  begin
    read(f, x); write(x:6);
  end;
  close(f);
end;
 
begin
  randomize;
  createfile('test.dat');
  processfile('test.dat', 'out.dat');
  testfile('out.dat'); // проверяем, что записали в файл
end.

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

  1. Создание процедуры createfile, которая создает файл, записывает в него случайные числа и закрывает его.
  2. Создание процедуры processfile, которая открывает входной файл, считывает из него размер матрицы и заполняет матрицу случайными числами, затем открывает выходной файл и записывает в него матрицу.
  3. Создание процедуры testfile, которая открывает файл, считывает из него количество элементов и выводит их на экран.
  4. Вызов процедур createfile, processfile и testfile в основном блоке программы.

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы