Создать двумерный массив, размером 5 х 7. Заполнить его случайно целыми числами, в районе от 0 до 30. Вывести получившийся массив на экран. Затем нужно отсортировать строки массива так, чтобы первой шла строка, сумма элементов которой была меньше, чем остальных. И так далее, по возрастанию. Для сортировки использовать алгоритм сортировки отбором. Сортировать не отдельные числа одномерного массива, а строки двумерного массива, исходя из суммы ее элементов- Pascal(Паскаль)

uses crt;
const m=5;
      n=7;
type mas=array[1..n+1] of integer;{дополнительный столбец для сумм}
     mtr=array[1..m] of mas;
var a:mtr;
    i,j,k,imn:byte;
    sm:integer;
    x:mas;
begin
clrscr;
randomize;
writeln('Исходный массив:');
for i:=1 to m do
 begin
  sm:=0;
  for j:=1 to n do
   begin
    a[i,j]:=random(31);
    write(a[i,j]:4);
    sm:=sm+a[i,j];{считаем сумму в строке}
   end;
  writeln;
  a[i,n+1]:=sm;{запоминаем ее в дополнительном столбце}
 end;
{сортируем строки отбором минимальной суммы}
for i:=1 to m-1 do
 begin
  imn:=i;
  for j:=i+1 to m do
  if a[j,n+1]<a[imn,n+1] then imn:=j;
  if imn>i then
   begin
    x:=a[imn];
    for k:=imn downto i+1 do
    a[k]:=a[k-1];
    a[i]:=x;
   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

+ 19 = 27