Вычисление матричного выражения средствами TP 7.0, страница 5

Текст подпрограммы:

Procedure Plus(m,n:Integer; A,B:Mas; Var C:Mas);

Var i,j:Integer;

Begin

   For i:=1 to m do

      For j:=1 to n do

         C[i,j]:=A[i,j]+B[i,j];

End.

Процедура вывода матрицы.

Данная процедура позволяет вывести некоторую матрицу на экран монитора и в специально отведённый файл.

Блок-схема полпрограммы:

 


Текст подпрограммы:

Procedure Vyvod(m,n:Integer; A:Mas; S:String);

Var i,j:Integer;

Begin

   write(File_Output,S);

   write(S);

   Writeln(File_Output);

   Writeln;

   For i:=1 to m do

      Begin

         For j:=1 to n do

            Begin

               Write(A[i,j]:4:1,'   ');

               Write(File_Output,A[i,j]:4:1,'   ');

            End;

         Writeln;

         Writeln(File_Output);

      End;

   Writeln(File_Output);

   Writeln;

End;

Полный текст программы с подпрограммами.

Program RGZ_2;{Вычисление матричного выражения средствами Turbo Pascal   7.0

Программу выполнила студентка группы АПМ-03 Вересова В.Л.}

{Объявляем новый тип данных}

Type

 Mas=Array[1..5,1..5] of Real;

Var

 i,j,p,q,m,n:integer;

 A,B,C,D,E,F,G,H:Mas;

 File_Input,File_Output:Text;

{Процедура транспонирования матрицы}

Procedure Transpmatr(m,n:integer; A:mas; Var At:Mas);

Var i,j:integer;

Begin

 For i:=1 to m do

 For j:=1 to n do

  At[j,i]:=A[i,j];

 End;

{Процедура умножения матриц}

Procedure UmnozhMatr(p,q:mas; m,l,n:integer; Var C:mas);

Var i,j,k:integer;

sum:real;

begin

for i:=1 to m do

for j:=1 to n do

begin

sum:=0;

for k:=1 to l do sum:=sum+p[i,k]*q[k,j];

C[i,j]:=sum;

  End;

End;

{Процедура умножения матрицы на скаляр}

Procedure Scalyar(m,n:integer; p:real; A:mas; Var B:Mas);

Var i,j:integer;

Begin

 For i:=1 to m do

 For j:=1 to n do

  B[i,j]:=A[i,j]*p;

End;

{Процедура суммирования матриц}

Procedure Plus(m,n:integer; A,B:mas; Var C:Mas);

Var i,j:integer;

Begin

 For i:=1 to m do

 For j:=1 to n do

  C[i,j]:=A[i,j]+B[i,j];

End;

{Процедура вывода матрицы на экран и в текстовый файл}

Procedure Vyvod(m,n:integer; A:mas; S:string);

Var i,j:integer;

Begin

 write(File_Output,S);

 write(S);

 writeln(File_Output);

 writeln;

 For i:=1 to m do

  Begin

   For j:=1 to n do

    Begin

    write(A[i,j]:4:1,'   ');

    write(File_Output,A[i,j]:4:1,'   ');

    end;

    writeln;