Считать матрицу из файла, используя динамический массив - 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));

Объяснение кода листинга программы

  1. Объявлена переменная x типа PRow, которая будет использоваться как указатель на начало динамического массива
  2. Выполняется функция GetMem, которая выделяет память под динамический массив размером n*SizeOf(PRow) байтов
  3. В случае успешного выделения памяти, переменная x будет содержать адрес первого элемента массива
  4. Если память не может быть выделена, то переменная x будет равна nil, и выполнение программы прекратится
  5. Выполняется функция FileOpen, которая открывает файл для чтения
  6. Если файл успешно открыт, то переменная f будет содержать дескриптор файла
  7. Если файл не может быть открыт, то переменная f будет равна nil, и выполнение программы прекратится
  8. Используя цикл, происходит чтение матрицы из файла
  9. Каждый элемент матрицы сохраняется в динамическом массиве
  10. После завершения чтения матрицы, выполняется функция FileClose, которая закрывает файл
  11. Если файл успешно закрыт, то выполнение программы продолжится
  12. Если файл не может быть закрыт, то программа прекратит выполнение
  13. Используя цикл, происходит вывод элементов матрицы на экран
  14. После завершения вывода матрицы, выполняется функция FileClose, которая закрывает файл
  15. Если файл успешно закрыт, то выполнение программы продолжится
  16. Если файл не может быть закрыт, то программа прекратит выполнение
  17. Выполняется функция Dispose, которая освобождает память, выделенную под динамический массив
  18. Если память была выделена, то выполнение программы продолжится
  19. Если память не была выделена, то программа прекратит выполнение
  20. Завершение работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы