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

Leave a Comment

22 + = 31