Поменять местами соответствующие элементы двух двумерных массивов. Максимальные элементы и им соответствующие местами не менять — Pascal(Паскаль)

Program fh;

type
  matr = array [1 .. 50, 1 .. 50] of integer;

var
  mas, mas2: matr;
  n, m: integer;
  i, j, r1, r2: integer;

procedure exchange(var a, b: integer);
var
  c: integer;
begin
  c := a;
  a := b;
  b := c;
end;

Procedure www(X: matr; var r1, r2: integer);
Var
  i, j, max: integer;
Begin
  max := X[1, 1];
  r1 := 1;
  r2 := 1;
  for i := 1 to m do
  begin
    for j := 1 to n do
      if X[i, j] > max then
      begin
        max := X[i, j];
        r1 := i;
        r2 := j;
      end;
  end;

  writeln(r1, r2);
End;

begin
  writeln('Vvedite razmer massiva A');
  write('Vvedite kol-vo strok (M) v massive A: ');
  read(m);
  write('Vvedite kol-vo stolbcov (N) v massive A: ');
  read(n);
  for i := 1 to m do
    for j := 1 to n do
    begin
      write('A[', i, ',', j, ']=');
      readln(mas[i, j]);
    end;
  write('Vot vvedennyy vami massiv A- ');
  for i := 1 to m do
  begin
    writeln;
    for j := 1 to n do
      write(mas[i, j]:3, ' ');
  end;
  writeln;
  { ******************************b************************************************* }
  writeln('Vvedite razmer massiva B');
  write('Vvedite kol-vo strok (M) v massive B: ');
  read(m);
  write('Vvedite kol-vo stolbcov (N) v massive B: ');
  read(n);
  for i := 1 to m do
    for j := 1 to n do
    begin
      write('B[', i, ',', j, ']=');
      readln(mas2[i, j]);
    end;
  write('Vot vvedennyy vami massiv B- ');
  for i := 1 to m do
  begin
    writeln;
    for j := 1 to n do
      write(mas2[i, j]:3, ' ');
  end;
  writeln;
  writeln;
  writeln('______________________________________________________');

  www(mas, i, j);
  www(mas2, r1, r2);
  exchange(mas[i, j], mas2[r1, r2]);

  write('Vot ICXODNII (zamenennii) massiv A- ');
  for i := 1 to m do
  begin
    writeln;
    for j := 1 to n do
      write(mas[i, j]:3, ' ');
  end;
  writeln;

  write('Vot ICXODNII (zamenennii) massiv B- ');
  for i := 1 to m do
  begin
    writeln;
    for j := 1 to n do
      write(mas2[i, j]:3, ' ');
  end;

  readln;
  readln;

end.

Leave a Comment

78 − 72 =