var a:mat; var i,j,m,n,s1,p1,max:integer; procedure constructie_matrice(var a:mat;m,n:integer); begin for i:=1 to n do for j:=1 to m do begin write('a[',i,',', j,']='); readln(a[i,j]); end; end; procedure afisare(a:mat;m,n:integer); begin for i:=1 to m do begin for j:=1 to n do write(a[i,j],' '); writeln; {trec la urmatorul rand} end; end; procedure aplicatii(a:mat;n:integer); begin s1:=0; {1. suma elementelor de pe diagonala principala} {parcurgem matricea pe diagonala principala} for i:=1 to n do for j:=1 to n do if i=j then {elementele de pe diagonala principala} s1:=s1+a[i,j]; writeln('Suma =',s1); {2. produsul elementelor aflate pe diagonala secundara} p1:=1; 1
{parcurgem matricea pe diagonala secundara}
for i:=1 to n do for j:=1 to n do if i=n-j+1 then {elementele de pe diagonala secundara} p1:=p1*a[i,j]; writeln('Produs=',p1); {3. anulati elementele aflate sub diagonala principala} {parcurgem matricea sub diagonala principala} for i:=1 to n do for j:=1 to n do if i>j then {elementele de sub diagonala pricipala} a[i,j]:=0; afisare(a,n,n); {afisam matricea dupa anularea elementelor} {4. afisati elementl maxim de sub diagonala secundara} max:=-32000; for i:=2 to n do for j:=n-i+2 to n do if a[i,j]>max then max:=a[i,j]; writeln('Max=',max); {5. adunati 5 pentru elementele aflate deasupra diagonalei secundare} for i:=1 to n-1 do for j:=1 to n-i do a[i,j]:=a[i,j]+5; afisare(a,n,n); end; {programul principal} begin read(m,n); constructie_matrice(a,m,n); afisare(a,m,n); aplicatii(a,n); end.