|
InterfaceDate: 2015-10-07; view: 562. END. MAT_2(a2, b2, n) BEGIN END. Begin Begin Implementation Interface {-----------------------------------------------------------------} Type M = array[1..10, 1..10] of real; M1 = array[1..10] of real; ProcedureMAT_1(a:M; var b:M; n: word); ProcedureMAT_2(a:M; var b:M1; n: word); {-----------------------------------------------------------------} {-----------------------------------------------------------------} ProcedureMAT_1;{создание матрицы "B", транспонированной к "A"} vari, j: word; for i:=1 to N do for j:=1 to N do b[i,j]:=a[j,i] end; {-----------------------------------------------------------------} ProcedureMAT_2;{расчет квадратов диагональных элементов} var i, j: word; for i:=1 to N do b[i]:=a[i,i]*a[i,i] end; {-----------------------------------------------------------------} В основной программе PR_1 подключается модуль MATR_1 и используются процедуры MAT_1 и MAT_2.
ProgramPR_1; UsesMATR_1; Type MM = M; MM1 = M1; Vara1,a2,a3: MM; b1,b2: MM1; i,j,n: word; 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); {--------------------------------------------------------------------------------------------------------------------} В результате двойного транспонирования исходной матрицы "a1" (из "a1" в "a2", из "a2" в "a3") получается матрица "a3" тождественная "a1" . Матрицы "b1" и "b2" содержат квадраты диагональных элементов матриц "a1" и "a2". Типы массивов фактических параметров должны соответствовать типам массивов формальных параметров, описанных в модуле MATR_1. Можно использовать имена типов, заданные в интерфейсной части модуля или задавать новые имена типов. ПРИМЕР 2. {---файл модуля --------} UNIT my_m; functionmin2(x,y:real):real; functionmax2(x,y:real):real;
|