Создание и обработка двоичных файлов - 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.
Объяснение кода листинга программы
- Создание процедуры createfile, которая создает файл, записывает в него случайные числа и закрывает его.
- Создание процедуры processfile, которая открывает входной файл, считывает из него размер матрицы и заполняет матрицу случайными числами, затем открывает выходной файл и записывает в него матрицу.
- Создание процедуры testfile, которая открывает файл, считывает из него количество элементов и выводит их на экран.
- Вызов процедур createfile, processfile и testfile в основном блоке программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д