Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов — Pascal(Паскаль)

Дан двумерный массив. Найти наибольший чётный положительный элемент выше главной диагонали и наименьший отрицательный элемент ниже главной диагонали с указанием их индексов. Создать новый массив, в котором найденный элементы поменяются местами

program PascalGuru;

var
  A: array [1 .. 50, 1 .. 50] of integer;
  i, j, n: integer;
  max, min: integer;
  maxi, maxj, mini, minj: integer;

  { ------------------------------------ }
procedure exchange(var A, b: integer);
var
  c: integer;
begin
  c := A;
  A := b;
  b := c;
end;
{ ------------------------------------ }

begin
  write('razmer matricy N= ');
  readln(n);

  { writeln ('Vvedite elementy massiva: '); }
  for i := 1 to n do
    for j := 1 to n do
      A[i, j] := -5 + random(26); { begin
    write ('X[',i,',',j,']='); readln (A[i,j]); end; }

  write('Vot vvedennyy vami massiv: ');
  for i := 1 to n do
  begin
    writeln;
    for j := 1 to n do
      write(A[i, j]:8);
  end;
  { ----------------начало преобразования-------------------- }
  { ***max }
  for i := 1 to n do
    for j := 1 to n do
      if i < j then
        if (A[i, j] > 0) and (A[i, j] mod 2 = 0) then
        begin
          maxi := i;
          maxj := j;
          max := A[i, j];
          break;
        end;

  for i := 1 to n do
    for j := 1 to n do
      if i < j then
        if (A[i, j] > 0) and (A[i, j] mod 2 = 0) then
          if A[i, j] > max then
          begin
            maxi := i;
            maxj := j;
            max := A[i, j];
          end;
  { ***min }
  for i := 1 to n do
    for j := 1 to n do
      if i > j then
        if A[i, j] < 0 then
        begin
          mini := i;
          minj := j;
          min := A[i, j];
          break;
        end;

  exchange(A[maxi, maxj], A[mini, minj]);
  { ----------------конец преобразования--------------------- }

  writeln;
  writeln;

  write('Vot preobrazovannyi massiv: ');
  for i := 1 to n do
  begin
    writeln;
    for j := 1 to n do
      write(A[i, j]:8);
  end;

  readln;

end.

Leave a Comment

+ 6 = 12