Для заданного целочисленного массива( N x N ) найдите минимум среди сумм элементов диагоналей ,параллельных побочной диагонали матрицы — Pascal(Паскаль)

uses crt;
var n,i,j,l,sm,mn:integer;
    a:array[1..20,1..20]of integer;
begin
clrscr;
write('n=');readln(n);
randomize;
Writeln('Ishodnaja matrica:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(9)+1;
    write(a[i,j]:2,' ');
   end;
  writeln;
 end;
mn:=a[1,1];
for l:=1 to 2*n-1 do//количество диагоналей
  begin
    if l<=n then//выше побочной, если сама побочная не нужна, то l<n
      begin
       sm:=0;
       for i:=1 to l do
       for j:=1 to l do
       if (j=l-i+1)then sm:=sm+a[i,j];
       writeln('Сумма диагонали ',l,'=',sm);
       if sm<mn then mn:=sm;
      end
    else if l>n then//ниже побочной
      begin
       sm:=0;
       for i:=l-n+1 to n do
       for j:=l-n+1 to n do
       if (j=l-i+1) then sm:=sm+a[i,j];
       writeln('Сумма диагонали ',l,'=',sm);
       if sm<mn then mn:=sm;
      end;
  end;
writeln;
write('Минимальная сумма=',mn);
readln
end.

Leave a Comment

19 − 16 =