Сортировка двумерного массива по второму столбцу
Необходимо привести его к такому виду:

Помогите пожалуйста.
Пример кода, в котором я уже пытался.
const N=10; const M=30;
var
z:array[1..N, 1..M] of byte;
x:array[1..N] of integer;
y:array[1..11, 1..3] of integer;
rab: array[1..N] of integer;
bar: array[1..N] of integer;
i, j, sum, k1:integer;
begin
for i:=1 to N do
begin
for j:=1 to M do
begin
z[i,j]:=random(2);
end;
end;
writeln('Табель отработанных дней');
for i:=1 to N do
begin
write(i,': ');
for j:=1 to M do
begin
write( z[i,j], ' ');
end;
writeln();
end;
sum:=0;
for i:=1 to N do
begin
for j:=1 to M do
begin
sum := sum + z[i, j];
end;
writeln(i,'-ый Работник: ', sum);
x[i]:=sum;
if(sum>=30) then
begin
writeln('Работник ', i,' не пропускал рабочие дни');
end;
sum:=0;
end;
writeln();
for i:=1 to 10 do
begin
for j:=1 to 2 do
begin
y[i][1]:=i;
y[i][j+1]:=x[i];
write(y[i,j]:3);
end;
writeln();
end;
writeln();
for i:=1 to 10 do
begin
for j:=1 to 2 do
begin
if y[i, j+1]>y[i+1, j+1] then
begin
k1:=y[i, j+1];
y[i, j+1]:=y[i+1, j+1];
y[i+1, j+1]:=k1;
end;
end;
end;
for i:=1 to 10 do
begin
for j:=1 to 2 do
begin
write(y[i,j]:3);
end;
writeln();
end;
end.
Ответы (2 шт):
Автор решения: RAlex
→ Ссылка
Пишете в среде PascalABC.NET - используйте язык PascalABC.NET, а не Turbo Pascal и будет Вам счастье. Вот код для последней версии языка.
##
var (m, n) := (5, 2);
var a := Matr(m, n, |1, 12, 2, 10, 3, 19, 4, 22, 5, 9|);
a.Println;
Writeln;
var v := a.Col(1).Select((v, i) -> (v, i)).OrderBy(t -> t[0]).ToArray;
var b := new integer[m, n];
for var i := 0 to m - 1 do
b.SetRow(i, a.Row(v[i][1]));
b.Print
Автор решения: LRSM
→ Ссылка
PascalABC.NET
##
var m := Matr(5, 2, 1, 12, 2, 10, 3, 19, 4, 22, 5, 9);
m.Print;
Writeln;
m := MatrByRow(m.Rows.OrderBy(r -> r[1]));
m.Print

