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