Создание и обработка двоичных файлов - Free Pascal (80130)
Формулировка задачи:
Тема: Создание и обработка двоичных файлов.
Цель: Написание и отладка программ на обработку двоичных файлов.
В прямоугольной матрице, находящейся в файле, подсчитать «СА» отрицательных элементов строк (по каждой строке в отдельности). В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.
Решение задачи: «Создание и обработка двоичных файлов»
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: string); var f: file of integer; r, c, s, k: integer; i, j, x: integer; begin assign(f, fn); reset(f); read(f, c);read(f, r); for i := 1 to r do begin s := 0;k := 0; for j := 1 to c do begin read(f, x);write(x:4); if x < 0 then begin s := s + x;k := k + 1; end; end; if k = 0 then writeln(' (нет отрицательных)') else writeln(' (СА отрицательных = ', (s / k):8:4, ')') end; close(f); end; begin randomize; createfile('test.dat'); processfile('test.dat'); end.
Объяснение кода листинга программы
- Создание процедуры
createfile
для создания и заполнения двоичного файла - Создание переменной типа
file of integer
для работы с файлом - Генерация случайных чисел для заполнения файла
- Открытие файла с помощью функции
assign
и его перезапись с помощью функцииrewrite
- Запись случайных чисел в файл с помощью функции
write
- Закрытие файла с помощью функции
close
- Создание процедуры
processfile
для обработки двоичного файла - Открытие файла с помощью функции
assign
и его перезапуск с помощью функцииreset
- Чтение первых двух чисел из файла с помощью функции
read
- Организация двух вложенных циклов для чтения оставшихся чисел из файла
- Создание переменных для подсчета количества отрицательных чисел и суммы отрицательных чисел
- Чтение чисел из файла и их запись в консоль с помощью функции
write
- Проверка каждого числа на отрицательность и обновление счетчиков при необходимости
- Вывод сообщения, указывающего наличие или отсутствие отрицательных чисел в файле
- Закрытие файла с помощью функции
close
- Вызов процедур
createfile
иprocessfile
с указанием имени файлаtest.dat
- Использование функции
randomize
для инициализации генератора случайных чисел - Использование функции
begin
иend
для обозначения начала и конца основной программы - Завершение программы с помощью функции
end
- Компиляция кода с использованием языка программирования Free Pascal