Если целочисленная квадратная матрица симетрична относительно главной диагонали, обнулить все элементы, лежащие выше главной диагонали, и определить сумму элементов лежащих ниже главной диагонали

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

Поделиться:

Похожие статьи: