Предмет: Информатика, автор: dina1282

Заполнить двумерный массив 3x4 случайными числами в интервале [-50..50] и отсортировать построчно по возрастанию.


d514: то есть, отсортировать отдельно каждую строку? или сквозняком по массиву?

Ответы

Автор ответа: d514
1
program t1;
var
  i, j: integer;
  mas: array [1..10] of integer;
begin
    randomize;
    writeln ('сгенерированный масив: ');
    for i := 1 to 3 do
        writeln;
        for j := 1 to 4 do
        begin
           mas[i,j] := random (100) - 50;
           write (mas[i,j]);
        end;
    end;

    begin
    for i:=1 to 3 do
      for i:=1 to 3 do
        for k:=1 to 3-i do
           if M[k] > M[k+1] then swap(mas[k],mas[k+1])
        end
      end; 
    end;
    writeln ('отсортированный по возрастанию массив (построчно): ');
    for i := 1 to 3 do
        writeln;
        for j := 1 to 4 do write (mas[i,j]);
    end;
end;
end.


dina1282: Спасибо большое, очень выручили!❤️
Аноним: Вот только процедуры swap в Паскале нет...
Аноним: И random (100) - 50; даст интервал [-50;49], а не [-50;50]
d514: упс.... вроде в 7 есть swap. Но спасибо за ремарку...
Аноним: Есть в ТР7 swap, но у него один аргумент и он обменивает местами старший и младший байты в двухбайтном слове.
d514: точно.... байты местами меняются... не знаю, чего меня распоганило его использовать - крайне редко вспоминаю. Спасибо.
Аноним: Да не за что, обращайтесь)))
d514: учтем))
Автор ответа: Аноним
1
const
  m = 3;
  n = 4;
var
  a: array[1..m, 1..n] of integer;
  i, j, k, t: integer;

begin
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4)
    end;
    Writeln
  end;
  { Пузырьковая сортировка по возрастанию в строках }
  for i:=1 to m do
    for k := 1 to n-1 do
      for j := 1 to n-1 do
        if a[i,j] > a[i,j+1] then
        begin t := a[i,j]; a[i,j] := a[i,j+1]; a[i,j+1] := t end;
  Writeln('Сортировка по строкам');
  for i := 1 to m do
  begin
    for j := 1 to n do Write(a[i, j]:4);
    Writeln
  end
end.

Тестовое решение:
Исходный массив
  41   5 -19  -6
  46 -27  37   5
  33  18 -39  -4
Сортировка по строкам
 -19  -6   5  41
 -27   5  37  46
 -39  -4  18  33


Похожие вопросы
Предмет: Алгебра, автор: katesarap59
Предмет: Английский язык, автор: AminkaRA
Предмет: Математика, автор: yablochko5