Поиск нужной матрицы - Pascal
Формулировка задачи:
Здравствуйте.
Как взять конкретную матрицу из матриц в файле txt?
У меня дан файл matrix.txt, там несколько матриц 4x4. Мне нужно одну из этих матриц от туда взять, как это сделать?
Решение задачи: «Поиск нужной матрицы»
textual
Листинг программы
const fName = 'matrix.txt'; type mType = array [1..4,1..4] of Real; function GetMatrix(n : Integer) : mType; var m : mType; f : Text; s : String; row, col : Integer; begin row := 0; col := 0; Assign(f, fName); Reset(f); while Not EOF(f) and (n > 0) do begin if row = 0 then begin ReadLn(f, s); inc(row); end else begin inc(col); Read(f, m[row, col]); if col = 4 then begin ReadLn(f); col := 0; inc(row); if row > 4 then begin row := 0; dec(n); end; end; end; end; Close(f); GetMatrix := m; end; var m : mType; row, col : Integer; begin m := GetMatrix(3); WriteLn('C ='); for row := 1 to 4 do begin for col := 1 to 4 do Write(m[row, col]:10:4); WriteLn; end; m := GetMatrix(5); WriteLn('E ='); for row := 1 to 4 do begin for col := 1 to 4 do Write(m[row, col]:10:4); WriteLn; end; m := GetMatrix(1); WriteLn('A ='); for row := 1 to 4 do begin for col := 1 to 4 do Write(m[row, col]:10:4); WriteLn; end; end.
Объяснение кода листинга программы
- Объявлены константа
fName
типаString
со значением'matrix.txt'
. - Объявлен тип
mType
как массив размерности[1..4,1..4]
с элементами типаReal
. - Объявлена функция
GetMatrix
типаInteger
с параметрамиn: Integer
,m: mType
,f: Text
,s: String
,row: Integer
,col: Integer
. - Внутри функции объявлены переменные
row, col: Integer
, инициализированные нулями. - Открывается файл
fName
для чтения с помощью функцииAssign(f, fName)
, и считывается первая строка с помощью циклаwhile Not EOF(f) and (n > 0)
. - Если
row
равна нулю, то считывается строка с помощьюReadLn(f, s)
, и увеличиваетсяrow
. - В противном случае, считывается элемент массива
m[row, col]
с помощьюRead(f, m[row, col])
, и увеличиваетсяcol
. - Если
col
равна четырем, то считывается новая строка,col
сбрасывается до нуля, и увеличиваетсяrow
. - Если
row
больше четырех, тоrow
сбрасывается до нуля, и уменьшаетсяn
на единицу. - Функция закрывается с помощью
Close(f)
. - В основной программе объявлены переменные
m: mType
,row, col: Integer
. - Вызывается функция
GetMatrix
с аргументом3
, и результат присваивается переменнойm
. - Выводится значение переменной
m
с помощью циклаfor row := 1 to 4 do
, и внутри него - циклfor col := 1 to 4 do Write(m[row, col]:10:4)
, за которым следуетWriteLn;
. - Вызывается функция
GetMatrix
с аргументом5
, и результат присваивается переменнойm
. - Выводится значение переменной
m
с помощью циклаfor row := 1 to 4 do
, и внутри него - циклfor col := 1 to 4 do Write(m[row, col]:10:4)
, за которым следуетWriteLn;
. - Вызывается функция
GetMatrix
с аргументом1
, и результат присваивается переменнойm
. - Выводится значение переменной
m
с помощью циклаfor row := 1 to 4 do
, и внутри него - циклfor col := 1 to 4 do Write(m[row, col]:10:4)
, за которым следуетWriteLn;
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д