Дан целочисленный двухмерный массив. Вывести координаты строки, в которой находится максимальный элемент массива, и отсортировать эту строку по возрастанию — Pascal(Паскаль)

Для откладки чисел элементы массива сформировать с помощью генератора случайных чисел.

program PascalGuru;

var
  A: array [1 .. 50, 1 .. 50] of integer; { объявление переменных }
  n, m, i, j, maxi, maxj, nn: integer;
  swop: boolean;

procedure exchange(var A, b: integer); { процедура обмена }
var
  c: integer;
begin
  c := A;
  A := b;
  b := c;
end; { *** конец процедуры обмена }
{ -------------------------------------- }

begin
  randomize;
  write('N= ');
  readln(n); { ввод кол-ва строк }
  write('M= ');
  readln(m); { ввод кол-ва столбцов }

  for i := 1 to n do
    for j := 1 to m do
      A[i, j] := (-3) + random(26); { заполнение элементов матрицы }

  for i := 1 to n do
  begin
    writeln;
    for j := 1 to m do
      write(A[i, j]:8);
  end; { вывод матрицы на экран }

  writeln;
  writeln;

  maxi := 1; { начальная координата MAX строки }
  maxj := 1; { начальная координата MAX столбца }

  for i := 1 to n do
    for j := 1 to m do { ниже вычисляем координаты MAX эл-та }
      if A[i, j] > A[maxi, maxj] then
      begin
        maxi := i;
        maxj := j;
      end;

  writeln('Koordinaty MAX: A[', maxi, ',', maxj, ']'); { вывод MAX }
  writeln;

  nn := m; { в дополнительную переменную записываем первоначальное кол-во столбцов }
  repeat { начало цикла сортировки }
    swop := false;
    for i := 1 to nn - 1 do
      if A[maxi, i] > A[maxi, i + 1] then
      begin { сортируем только НУЖНУЮ нам строку }
        exchange(A[maxi, i], A[maxi, i + 1]);
        swop := true;
      end; { сортируем только НУЖНУЮ нам строку }
    nn := nn - 1;
  until not swop; { ---конец цикла сортировки }

  writeln('Stroka ', maxi, ':');
  for j := 1 to m do
    write(A[maxi, j]:8); { вывод отсортированной строки }

  readln;

end.

Leave a Comment

+ 1 = 3