Матрица: чтение и сохранение в файл - Pascal
Формулировка задачи:
Есть двумерный массив, записанный в файле как матрица размерности 12*4. Необходимо считать ее, произвести определенные действия и записть результат в другой файл. Получившийся на выходе массив так же надо представить в виде матрицы.
Вот с первым и последним у меня загвоздка. Программа отказывает считывать данные из файла, равно как и заносить их в файл. Если натолкнете на путь решения, буду благодарен.
Решение задачи: «Матрица: чтение и сохранение в файл»
textual
Листинг программы
var f:text; a:array[1..12,1..4]of real; i,j:integer; begin assign(f,'input.txt'); reset(f); for i:=1 to 12 do for j:=1 to 4 do read(f,a[i,j]); close(f); for i:=1 to 12 do for j:=1 to 4 do {действия} assign (f,'output.txt'); rewrite(f); for i:=1 to 12 do begin for j:=1 to 4 do write(f,a[i,j]:5:2); writeln(f); end; for i:=1 to 12 do begin for j:=1 to 4 do write(a[i,j]:5:2); writeln; end; close(f); readln; end.
Объяснение кода листинга программы
В данном коде происходит следующее:
- Создается переменная
f
типаtext
, которая представляет собой файловый дескриптор для чтения и записи. - Создается массив
a
типаarray[1..12,1..4]of real
, который представляет собой матрицу размером 12x4, где каждый элемент является числом с плавающей точкой. - Создаются две переменные
i
иj
типаinteger
, которые представляют собой индексы массива. - Задается имя файла
input.txt
и открывается его для чтения. - С помощью цикла
for
происходит чтение значений из файла в массивa
. - Закрывается файл
input.txt
. - Задается имя файла
output.txt
и открывается его для записи. - С помощью двух вложенных циклов
for
происходит запись значений массиваa
в файлoutput.txt
. - Закрывается файл
output.txt
. - Выводится сообщение
readln;
, чтобы дождаться ввода пользователя. - Код завершается.