Дана квадратная матрица. Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы — 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.

Leave a Comment

5 + 1 =