Работа с массивами и подпрограммами, ознакомление с вводом данных из файла, страница 4


5. Схема алгоритма.

Схема программы.

Блок-схема: знак завершения:       Начало
              

 


 

 


Схемы нескольких процедур программы.


1) ниже представлена подпрограмма для умножения матрицы на скаляр – Muh, где p – исходная матрица, m, n – число её строк и столбцов, q – конечная матрица, полученная путём умножения исходной матрицы на скаляр.


2) ниже представлена схема подпрограммы процедуры транспонирования матрицы – Tr, где p – исходная матрица, m, n – число её строк и столбцов, q – конечная матрица, полученная путем транспонированная исходной.

6.  Программа.

Ниже приведён текст программы на языке Паскаль, реализующий алгоритмы приведённые выше. С помощью программы вычисляем матричные выражения, введённые из файла muxamed.inp.

{программа вычисления матричного выражения с ипользованием подпрограмм}

program rgz2;

 uses crt;

  {описание массивов и переменных}

  type

   mas=array[1..10,1..10] of real;

  var c,ct,b,ctb,a,at,atc,ctbatc:mas;

      m,n,i,j:integer;

      f:text;

  {описание процедуры vivod}

  procedure vivod(p:mas;m,n:integer);

   var i,j:integer;

   begin

    for i:=1 to m do

     begin

      for j:=1 to n do write(p[i,j]:6:1);

      writeln;

     end;

   end;

  {описание процедуры transpor}

  procedure transpor(p:mas;m,n:integer;var q:mas);

   var i,j:integer;

   begin

   for i:=1 to m do

    for j:=1 to n do q[j,i]:=p[i,j];

   end;

{описание процедуры matrnac}

 procedure matrnac(p:mas;m,n:integer;var q:mas);

  var i,j:integer;

  begin

   for i:=1 to m do

    for j:=1 to n do q[i,j]:=3*p[i,j];

  end;

{описание процедуры slog}

  procedure slog(p,q:mas;m,n:integer;var r:mas);

   var i,j:integer;

   begin

    for i:=1 to m do

     for j:=1 to n do

      r[i,j]:=p[i,j]+q[i,j];

   end;

  {описание процедуры mult}

  procedure mult(p,q:mas;m,l,n:integer;var r:mas);

   var i,j,k:integer;

       sum:real;

   begin

    for i:=1 to m do