Дана целочисленная квадратная матрица. Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов; минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали

code: #pascal
program fg;
var A:array[1..100,1..100] of integer;
    n,i,j:integer;
 
procedure min(n:integer);
var   i,j,p,pk,sum,index,mm :integer;
      ot,minki:array[1..100] of integer;
begin
pk:=1;
for i:=1 to 100 do
if i mod 2=0 then begin inc(pk); ot[pk]:=i;  end;
index:=0;
for p:=2 to ot[n]  do
if p<>n then
begin
sum:=0;
for i:=1 to n do
for j:=1 to n do
if i+j-1=p then sum:=sum+abs(A[i,j]);
inc(index);
minki[index]:=sum;
writeln('Summa "',index,'" paralelinoi diagonali= ',sum);
end;
mm:=minki[1];
for i:=2 to index do
if minki[i]<mm then mm:=minki[i];
writeln('Minimum iz SUMM diagonalei= ',mm);
end;
{*********************///***************************  }
procedure sum(n:integer);
var   i,j,rez:integer;
      m:boolean;
begin
for j:=1 to n do
    begin
m:=true;
for i:=1 to n do
if A[i,j]<0 then m:=false;
rez:=0;
if m then  begin
for i:=1 to n do rez:=rez+A[i,j];  writeln('Summa ',j,' stolbca= ',rez); end;
    end;
 
end;
{*********************///***************************  }
begin
write('razmer 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;
writeln('Vot vvedennaia vami Matrica "A":');
for i:=1 to n do begin writeln;
for j:=1 to n do write (A[i,j]:3,' '); end;
 
writeln; writeln;
sum(n);  {***1***}
writeln;
min(n); {***2***}
 
readln;
end.      
Поделиться:

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