Interface

{-----------------------------------------------------------------}

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. Можно использовать имена типов, заданные в интерфейсной части модуля или задавать новые имена типов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: