Если целочисленная квадратная матрица симетрична относительно главной диагонали, обнулить все элементы, лежащие выше главной диагонали, и определить сумму элементов лежащих ниже главной диагонали
Категория: Delphi/Pascal
2012-01-03 20:04:16
code: #delphi
program zadacha; {$APPTYPE CONSOLE} uses SysUtils; Type matr=array[1..100,1..100] of integer; Var k,i,j,n:integer; sum:integer; A : matr; Procedure BBOD_A(VAR A:matr); Var i,j:integer; begin write('n='); readln(n); for i:=1 to n do for j:=1 to n do begin write('A[',i,',',j,']='); readln(A[i,j]); end; writeln('Ishodnaia matrica:'); for i:=1 to n do begin for j:=1 to n do begin write(A[i,j]:3); end; writeln; end; end; Procedure D(Var k: integer); Var i,j :integer; begin for i:=1 to n do for j:=1 to n do begin if A[i,j]=A[j,i] then k:=k+1; end; end; Procedure CYMMA(Var sum :integer) ; var i,j,m:integer; begin for i:=1 to n do for j:=1 to n do begin if i=j then for m:=1 to (i-1) do sum:=sum+A[i,m]; end; end; Procedure G(Var A:matr); var i,j,m:integer; begin for i:=1 to n do for j:=1 to n do begin if i=j then for m:=(i+1) to n do A[i,m]:=0; end; end; BEGIN sum:=0; k:=0; BBOD_A(A); D(k); if k<>(sqr(n)) then write ('matrica ne simetrichna') else G(A); CYMMA(sum); writeln('Obrabotannaia matrica:'); for i:=1 to n do begin for j:=1 to n do begin write(A[i,j]:3); end; writeln; end; writeln('Summa=',sum); readln; END.
автор: puporev
Поделиться: