{-----------------------------------------------------------------}
Type M = array[1..10, 1..10] of real;
M1 = array[1..10] of real;
Procedure MAT_1(a:M; var b:M; n: word);
Procedure MAT_2(a:M; var b:M1; n: word);
{-----------------------------------------------------------------}
Implementation
{-----------------------------------------------------------------}
Procedure MAT_1; {создание матрицы "B", транспонированной к "A"}
var i, j: word;
begin for i:=1 to N do for j:=1 to N do b[i,j]:=a[j,i]
end;
{-----------------------------------------------------------------}
Procedure MAT_2; {расчет квадратов диагональных элементов}
var i, j: word;
begin for i:=1 to N do b[i]:=a[i,i]*a[i,i]
end;
{-----------------------------------------------------------------}
END.
В основной программе PR_1 подключается модуль MATR_1 и используются процедуры MAT_1 и MAT_2.
Program PR_1;
Uses MATR_1;
Type MM = M; MM1 = M1;
Var a1,a2,a3: MM; b1,b2: MM1; i,j,n: word;
Begin Writeln('введите размерность матрицы N='); Readln(n);
Randomize;
for i:=1 to n do for j:=1 to n do a1[i,j]:=random(20)+1;
MAT_1(a1, a2, n); MAT_1(a2, a3, n);
MAT_2(a1, b1, n); MAT_2(a2, b2, n) end.
В результате двойного транспонирования исходной матрицы "a1" (из "a1" в "a2", из "a2" в "a3") получается матрица "a3" тождественная "a1".
Матрицы "b1" и "b2" содержат квадраты диагональных элементов матриц "a1" и "a2". Типы массивов фактических параметров должны соответствовать типам массивов формальных параметров, описанных в модуле MATR_1. Можно использовать имена типов, заданные в интерфейсной части модуля или задавать новые имена типов.
|
|