|
|
|
|
|
||
Пример процедуры:
Составим программу, которая находит первую и вторую нормы матрицы размерностью 6
6, причем нахождение обеих норм реализуем в процедуре. Исходными данными для процедуры являются значения элементов матрицы, результатом - значения норм. Поэтому заголовок процедуры будет содержать список формальных параметров с тремя переменными: именем двумерного массива, в котором записаны значения элементов матрицы, и именами переменных, которым будут присвоены значения искомых норм матрицы.
Program Norm;
type
Dim6= Array[1..6] of Real;
Dim6x6= Array[1..6] of Dim6;
var
raMatr: Dim6x6;
raCol, raRow: Dim6;
rNorm1, rNorm2: Real;
i,k: Integer;
Procedure Norms(raM: Dim6x6; var rN1, rN2: Real);
var i,k: Integer;
begin
FillChar(raCol, SizeOf(Dim6), 0);
FillChar(raRow, SizeOf(Dim6), 0);
for i:=1 to 6 do
for k:=1 to 6 do
begin
raCol[k]:=raCol[k]+Abs(raM[i,k]);
raRow[i]:=raRow[i]+Abs(raM[i,k]);
end;
rN1:=raRow[1]; rN2:=raCol[1];
for i:=2 to 6 do
begin
if rN1 < raRow[i] then rN1:=raRow[i];
if rN2 < raCol[i] then rN2:=raCol[i];
end;
end;
begin
WriteLn(' Введи матрицу 6х6 построчно');
for i:=1 to 6 do
for k:=1 to 6 do
Read(raMatr[i,k]);
Norms(raMatr, rNorm1, rNorm2);
WriteLn('rNorm1= ',rNorm1:8:2,' rNorm2= ',rNorm2:8:2)
end.