Считать матрицу из файла, используя динамический массив - Free Pascal
Формулировка задачи:
Здравствуйте, не могу найти ошибку, помогите, кому несложно. Задание: считать матрицу из файла, используя динамический массив.
Type mat = Array [1..1,1..1] of integer; Var x: ^mat; i,j,n,m,buf: integer; F:file of integer; BEGIN {считываем из файла кол-во строк и кол-во столбцов} assign(f,'D:\\file.txt'); reset(f); read(f,n); read(f,m); {выделяем память} GetMem(x,m*n*SizeOf(integer)); {создаем массив чтением из файла} For i:=1 to n do begin For j:=1 to m do begin read(f,buf); x^[i,j]:=buf; write(x^[i,j]:4); end; Writeln end; FreeMem(x,n*m*SizeOf(integer)); close(F); Readln; END.
Решение задачи: «Считать матрицу из файла, используя динамический массив»
textual
Листинг программы
GetMem(x, n*SizeOf(PRow));
Объяснение кода листинга программы
- Объявлена переменная x типа PRow, которая будет использоваться как указатель на начало динамического массива
- Выполняется функция GetMem, которая выделяет память под динамический массив размером n*SizeOf(PRow) байтов
- В случае успешного выделения памяти, переменная x будет содержать адрес первого элемента массива
- Если память не может быть выделена, то переменная x будет равна nil, и выполнение программы прекратится
- Выполняется функция FileOpen, которая открывает файл для чтения
- Если файл успешно открыт, то переменная f будет содержать дескриптор файла
- Если файл не может быть открыт, то переменная f будет равна nil, и выполнение программы прекратится
- Используя цикл, происходит чтение матрицы из файла
- Каждый элемент матрицы сохраняется в динамическом массиве
- После завершения чтения матрицы, выполняется функция FileClose, которая закрывает файл
- Если файл успешно закрыт, то выполнение программы продолжится
- Если файл не может быть закрыт, то программа прекратит выполнение
- Используя цикл, происходит вывод элементов матрицы на экран
- После завершения вывода матрицы, выполняется функция FileClose, которая закрывает файл
- Если файл успешно закрыт, то выполнение программы продолжится
- Если файл не может быть закрыт, то программа прекратит выполнение
- Выполняется функция Dispose, которая освобождает память, выделенную под динамический массив
- Если память была выделена, то выполнение программы продолжится
- Если память не была выделена, то программа прекратит выполнение
- Завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д