program kursovaya; Uses crt; Const amax=50; bmax=50; Type massiv = array [1..amax,1..bmax] of real; var a1, b1, a2, b2, a3, b3, a4, b4, i, j, k: integer; s, l: real; m1, m2, m3, m4: massiv; Procedure input_array (a,b: integer; var mas: massiv); var i,j: integer; begin for i:=1 to a do for j:=1 to b do begin randomize; for i:=1 to a do for j:=1 to b do mas[i,j]:=random(50); end; end; {input_array} Procedure out_array (a, b:integer; mas: massiv); var i, j: integer; begin write('Matrica ',a:2); writeln(' X',b:2); for i:=1 to a do begin writeln; for j:=1 to b do write(mas[i,j]:4:0); end; writeln; end; {out_array} Begin clrscr; Writeln('Vvedite matricu 1'); Repeat Write('Vvedite kolichestvo strok matrici m1 <= ' ,amax:2); write(', i = '); readln(a1); Write('Vvedite kolichestvo stolbcov matrici m1 <= ',bmax:2); write(', j = '); readln(b1); Until (a1<=amax) and (b1<=bmax); input_array (a1,b1,m1); out_array (a1,b1,m1); readln; Writeln('Vvedite matricu 2'); Repeat Write('Vvedite kolichestvo strok matrici m2 <= ' ,amax:2); write(', i = '); readln(a2); Write('Vvedite kolichestvo stolbcov matrici m2 <= ',bmax:2); write(', j = '); readln(b2); Until (a2<=amax) and (b2<=bmax); input_array (a2,b2,m2); out_array (a2,b2,m2); readln; Writeln('Vvedite matricu 3'); Repeat Write('Vvedite kolichestvo strok matrici m3 <= ' ,amax:2); write(', i = '); readln(a3); Write('Vvedite kolichestvo stolbcov matrici m3 <= ',bmax:2); write(', j = '); readln(b3); Until (a3<=amax) and (b3<=bmax); input_array (a3,b3,m3); out_array (a3,b3,m3); readln; Writeln('Vvedite matricu 4'); Repeat Write('Vvedite kolichestvo strok matrici m4 <= ' ,amax:2); write(', i = '); readln(a4); Write('Vvedite kolichestvo stolbcov matrici m4 <= ',bmax:2); write(', j = '); readln(b4); Until (a4<=amax) and (b4<=bmax); input_array (a4,b4,m4); out_array (a4,b4,m4); readln; writeln (a1, b1, a2, b2, a3, b3, a4, b4); for i:=1 to a1 do for j:=1 to b2 do begin s:=0; for k:=1 to a1 do s:=s+m1[i,k]*m2[k,j]; m4[i,j]:=s; end; for i:=1 to a1 do begin writeln; for j:=1 to b2 do write(m4[i,j]:4:0, ' '); end; writeln; writeln; begin {summa el-tov na glavnoy diagonali} l:=0; for i:=1 to a1 do l:=l+m4[i,i]; end; writeln(l:4:0); readln; begin s:=0; s:=s+a1-b2; end; writeln(s:4:0); readln; End.