program maticovani; uses crt; const max=4; {velikost ctvercove matice} v=11; {velikost cisel} type matice=array[1..max,1..max] of longint; var i,j,k,t,n:longint; s,o,p:matice; procedure generuj(var m:matice); begin for i:=1 to max do begin for j:=1 to max do m[i,j]:=Random(v); end; end; procedure transponuj(var m:matice); var temp:matice; begin temp:=m; for i:=1 to max do begin for j:=1 to max do m[i,j]:=temp[j,i]; end; end; procedure nasob(var m1,m2,m: matice); begin for i:=1 to max do begin for j:=1 to max do begin for k:=1 to max do t:=t+m1[i,k]*m2[k,j]; m[i,j]:=t; k:=1; t:=0; end; end; end; procedure secti(var m1,m2,m: matice); begin for i:=1 to max do begin for j:=1 to max do m[i,j]:=m1[i,j]+m2[i,j]; end; end; begin clrscr; generuj(s); writeln('Matice s'); for i:=1 to max do begin for j:=1 to max do write(s[i,j]:5); writeln; end; writeln('N transponovana'); transponuj(s); for i:=1 to max do begin for j:=1 to max do write(s[i,j]:5); writeln; end; transponuj(s); generuj(o); writeln('Matice o'); for i:=1 to max do begin for j:=1 to max do write(o[i,j]:5); writeln; end; nasob(s,o,p); writeln('Matice s x o'); for i:=1 to max do begin for j:=1 to max do write(p[i,j]:5); writeln; end; secti(s,o,p); writeln('Matice s + o'); for i:=1 to max do begin for j:=1 to max do write(p[i,j]:5); writeln; end; readkey; end.