Задан двухмерный массив A(a_ij), де i=1,2…n , j=1,2…m, элементами которого являются целые числа. Упорядочить информацию в массиве в порядке возрастания — Pascal(Паскаль)

Указания:

  • Изначальный массив задать самостоятельно.
  • На экран вывести начальный и полученный массивы.
uses crt;

var
  a: array [1 .. 50, 1 .. 50] of integer; { матрица }
  m, n, i, j, k, tmp: integer;
  { размеры матрицы,счетчики циклов, буфер для обмена }

begin
  clrscr;
  randomize;
  writeln('Введите размеры матрицы:');
  write(' Количество строк m=');
  repeat
    readln(m);
  until m in [1 .. 50];
  write(' Количество столбцов n=');
  repeat
    readln(n);
  until n in [1 .. 50];
  writeln;
  writeln('Исходная матрица:');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := random(100);
      { заполним матрицу случайными числами в инт[0,99] }
      write(a[i, j]:4);
    end;
    writeln;
  end;
  writeln;
  { сортировка матрицы пузырьком }
  for k := 1 to n * m do { повторяем сколько элементов в матрице }
    for i := 1 to m do
      for j := 1 to n do
      begin
        if j <> n then { если элемент в строке не последний }
        begin
          if a[i, j + 1] < a[i, j] then
          begin
            tmp := a[i, j + 1];
            a[i, j + 1] := a[i, j];
            a[i, j] := tmp; { обмен элементов }
          end;
        end
        else if (a[i + 1, 1] < a[i, j]) and (i <> m)
        then { если строка не последняя }
        { меняем первый элемент в следущей строке с последним элементом в текущей строке }
        begin
          tmp := a[i + 1, 1];
          a[i + 1, 1] := a[i, j];
          a[i, j] := tmp;
        end;
      end;
  writeln('Отсортированная матрица:');
  for i := 1 to m do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
    writeln;
  end;
  readln

end.

Leave a Comment

31 − = 23