Модульное программирование в Турбо Паскале. Бакланов М.В - 13 стр.

UptoLike

Составители: 

- 13 -
for k:=1 to Result.Dim2 do
begin
s := 0;
for
j:=1 to A.Dim2 do
s := s + A.M[i,j] * B.M[j,k];
Result.M[i,k] := s
end
end
;
function
MatrixEqual( A, B: TMatrix ): Boolean;
var
i,j: Integer;
begin
MatrixEqual := False;
if
(A.Dim1=B.Dim1)
and
(A.Dim2=B.Dim2)
then
begin
i:=0;
repeat
i:=i+1;
j:=0;
repeat
j:=j+1
until
(j>A.Dim2) or (A.M[i,j]<>B.M[i,j])
until
(j<=A.Dim2) or (i>A.Dim1);
MatrixEqual := (i>A.Dim1) and
(j>A.Dim2)
end
else MatrixEqual := False
end
;
function
LineMax( Vector: TL; Dim: Dimension ): TElem;
var
i : Dimension;
max: TElem;
begin
for
i:=2 to Dim do
if
max < Vector[i]
then
max := Vector[i];
LineMax := max
end
;
function
MatrixNorm( A: TMatrix ): TElem;
var
i : Dimension;
max, Mmax: TElem;
begin
                                      - 13 -
    for k:=1 to Result.Dim2 do
    begin
      s := 0;
      for j:=1 to A.Dim2 do
        s := s + A.M[i,j] * B.M[j,k];
      Result.M[i,k] := s
    end
end;

^ KjZ\g_gb_ fZljbp gZ jZ\_gkl\h `
function MatrixEqual( A, B: TMatrix ): Boolean;
var i,j: Integer;
begin
  MatrixEqual := False;
  ^ jZaf_jghklb m jZ\guo fZljbp ^he`gu kh\iZ^Zlv `
 if (A.Dim1=B.Dim1) and (A.Dim2=B.Dim2) then
 begin
   i:=0;
   repeat
     i:=i+1;

      j:=0;
      repeat
        j:=j+1
      until (j>A.Dim2) or (A.M[i,j]<>B.M[i,j])

   until (j<=A.Dim2) or (i>A.Dim1);
   MatrixEqual := (i>A.Dim1) and (j>A.Dim2)

  end else MatrixEqual := False
end;

^ Ihbkd fZdkbfmfZ \ kljhd_ `
function LineMax( Vector: TL; Dim: Dimension ): TElem;
var i : Dimension;
    max: TElem;
begin
  PD[     9HFWRU>@ ^ gZqZevgh_ agZq_gb_ `
  for i:=2 to Dim do
    if max < Vector[i] then max := Vector[i];
  LineMax := max
end;

^ @ $'LP       ^ gZqZevgh_ agZq_gb_ `