Разработка программ для вычисления матричного выражения в среде TurboPascal, страница 5

      for i:=1 to m do

        begin

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

        writeln (Fout);

        end;

    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

    for j:=1 to n do

      begin

        sum:=0;

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

        r[i,j]:=sum

       end

   end;

 Procedure plus (p,q:mas;m,n:integer; var r:mas);

   var

    i,j,k: integer;

     begin

        for i:=1 to m do

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

     End;    {описание процедуры tr}

  procedure tr(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;

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

  procedure skal(p:mas; m,n: integer; l: real; var q:mas);

    var

    i,j: integer;

      begin

        for i:=1 to m do

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

      end;

    {основная программа}

  Begin

    assign (Fout,'F:\cts \rgz\1.rez');

     rewrite (Fout);

  {очистка экрана}

clrscr;

 {ввод из файла размеров и элементов матрицы А}

   assign(f,'F:\cts \rgz\sled.inp');

    reset(f);

    read(f,m,n);

      for i:=1 to m do

      for j:=1 to n do read(f,a[i,j]);

   close(f);

 {вывод на экран матрицы А}

 writeln(Fout,'Матрица А');

 mout(a,m,n);

 {вычисление и вывод матрицы B}

 mult(a,a,m,n,m,b);

   writeln(Fout,'Матрица B');

   mout(b,n,m);

 {вычисление и вывод матрицы С}

 plus(a,b,m,n,c);

   writeln(Fout,'Матрица C');

   mout(c,m,n);

{вычисление и вывод матрицы СТ}

 tr(c,m,n,ct);

    Writeln(Fout,'Матрица CT');

    mout(ct,m,n);

  {вычисление и вывод конечного результата}

  skal(ct,m,n,1/2,d);

    Writeln(Fout,'Матрица D');

    mout(d,m,n);

  close (Fout);

end.

8.Результаты счета

В результате выполнения данной программы на экране будет выведена исходная матрица А, промежуточные матрицы В, С, СT, и матрица  D- результат

Матрица А

   3.0   1.0   2.0   2.0

   5.0   4.0   3.0   4.0

   6.0   2.0   4.0   6.0

   7.0   9.0   6.0   3.0

Матрица B

  40.0  29.0  29.0  28.0

  81.0  63.0  58.0  56.0

  94.0  76.0  70.0  62.0

 123.0  82.0  83.0  95.0

Матрица C

  43.0  30.0  31.0  30.0

  86.0  67.0  61.0  60.0

 100.0  78.0  74.0  68.0

 130.0  91.0  89.0  98.0

Матрица CT

  43.0  86.0 100.0 130.0

  30.0  67.0  78.0  91.0

  31.0  61.0  74.0  89.0

  30.0  60.0  68.0  98.0

Матрица D

  21.5  43.0  50.0  65.0

  15.0  33.5  39.0  45.5

  15.5  30.5  37.0  44.5

  15.0  30.0  34.0  49.0

9. Вывод

Язык Паскаль простой и стройный – весьма удачен как средство обучения и программированию (он нашел широкое применение для создания производственных программ).


Заключение

В процессе выполнения задания можно убедиться в том, что среда проста в использовании, выполнение стандартных алгоритмов не вызывает проблем. Средства языка Pascal позволяет осуществлять достаточно полный контроль правильности использования различных программ.  Благодаря этим своим особенностям находит всё более широкое применение в области обучения основам программирования.