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

code: #pascal
program matrica;
uses crt;
var n,i,j,k,l,m,max:integer;
    a:array[1..20,1..20]of integer;
    b,c:array[1..38]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(10);
           write(a[i,j]:3);
         end;
      writeln;
   end;
readln;
for l:=1 to n-1 do   //считаем суммы диагоналей выше главной
   begin
     for i:=1 to n-1 do
       begin
         for j:=2 to n do
         if j=i+l then
            begin
              b[l]:=b[l]+a[i,j]; //заносим их в массив
            end;
       end;
  end;
for l:=1 to n-1 do     //считаем суммы в диагоналях ниже главной
   begin
     for i:=2 to n do
       begin
         for j:=1 to n-1 do
         if j=i-l then
           begin
             c[l]:=c[l]+a[i,j];  //записываем их в массив
          end;
       end;
  end;
for i:=n to 2*n-2 do   //собираем два массива в один
b[i]:=c[i-n+1];
max:=b[1];
for i:=2 to n do
if b[i]>max then max:=b[i];  //находим максимум
writeln('max=',max);
readln;
end.

автор: puporev

Поделиться:

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