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.