Написание подпрограмм. Работа с файлами, страница 3

var i,j,k:integer;

A: array [1..3,1..3] of integer;

B: array [1..3,1..3] of integer;

C: array [1..2,1..3] of integer;

d: array [1..2,1..3] of integer;

e: array [1..3] of integer;

Begin

 clrscr;

 a[1,1]:=3; a[1,2]:=3; a[1,3]:=3;

 a[2,1]:=2; a[2,2]:=2; a[2,3]:=2;

 a[3,1]:=1; a[3,2]:=1; a[3,3]:=1;

 b[1,1]:=2; b[1,2]:=2; b[1,3]:=2;

 b[2,1]:=4; b[2,2]:=4; b[2,3]:=4;

 b[3,1]:=6; b[3,2]:=6; b[3,3]:=6;

 c[1,1]:=1; c[1,2]:=1;

 c[2,1]:=2; c[2,2]:=2;

writeln('               Даны три матрицы:');

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

 writeln('  ',a[1,1],' ',a[1,2],' ',a[1,3],'       ',b[1,1],' ',b[1,2],' ',b[1,3]>;

 writeln(' ',a[2,1],' ',a[2,2],' ',a[2,3],'       ',b[2,1],' ',b[2,2],' ',b[2,3]>;

writeln('  ',a[3,1],' ',a[3,2],' ',a[3,3]);      ‘,b[3,1],’‘,b[3,2],’’,b[3,3]>;

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

 writeln('       ',c[1,1],' ',c[1,2]);

 writeln('        ',c[2,1],' ',c[2,2]);

 writeln('Найти матрицу D=C*((2B+A)трансп.’);

 writeln('Ответ:');

 writeln;

 writeln('    Матрица D');

  for k:=1 to 2 do

   for i:=1 to 3 do

    begin

     for j:=1 to 3 do

     e[j]:=4*a[i,j]*b[k,j];

     d[i,k]:=e[1]+e[2]+e[3]+c[i,k];

    end;

    for i:=1 to 3 do

    writeln ('     ',d[i,1]:3,' ',d[i,2]:3,' ');

readln;

end.

Вариант№2 Использование технологии постепенного наращивания программы с одновременной отладкой.

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

 


·  Подпрограмма транспонирования

 


·  Подпрограмма суммы

 


·  Подпрограмма ввода из файла размеров и элементов матрицы

 


2.  Текст программы на языке Turbo Pascal

Program RGZ4_1b;

uses crt;

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

type

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

var

 a,b,c,bt,d,g,e:mas;

 i,j,i2,j2,i3,j3,m,n:integer;

 f:text;

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

procedure mout (a:mas; i,j:integer);

var

 m,n:integer;

begin

 for m:=1 to i do

  begin

   for n:=1 to j do write(a[m,n]:5:0);

   writeln;

end;

 end;

{описание процедуры транспонирования (tr)}

procedure tr (p:mas; i2,j2:integer; var q:mas);

var

 m,n:integer;

 begin

  for m:=1 to i2 do

   for n:=1 to j2 do q[n,m]:=p[m,n]

 end;

{описание процедуры умножения (mult)}

procedure mult(p,q:mas; i,j,i2:integer;var z:mas);

var

 m,n,k:integer;

 sum:real;

begin

 for m:=1 to i2 do

  for k:=1 to i do

   begin

    sum:=0;

for n:=1 to j do