// PascalABC.NET 3.2, сборка 1431 от 28.04.2017// Внимание! Если программа не работает, обновите версию!procedure SortFirstColAsc(p:array[,] of integer);begin var c:=p.Col(0).OrderBy(x->x).ToArray; for var i:=0 to p.RowCount-1 do p[i,0]:=c[i]end;procedure SortLastColDesc(p:array[,] of integer);begin var j:=p.ColCount-1; var c:=p.Col(j).OrderByDescending(x->x).ToArray; for var i:=0 to p.RowCount-1 do p[i,j]:=c[i]end;begin var n:=ReadInteger('Количество строк в матрице:'); var m:=ReadInteger('Количество столбцов в матрице:'); Writeln('*** Исходная матрица [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); Writeln('Сортировка по первой колонке'); SortFirstColAsc(a); a.Println(4); Writeln(4*a.ColCount*'-'); Writeln('Сортировка по последней колонке'); SortLastColDesc(a); a.Println(4)end.
ПримерКоличество строк в матрице: 4Количество столбцов в матрице: 7*** Исходная матрица [4,7] *** -12 60 18 -46 10 4 26 32 -73 -2 -88 -70 -46 -17 -18 94 -41 9 -11 32 94 32 -18 1 -71 -96 -77 46----------------------------Сортировка по первой колонке -18 60 18 -46 10 4 26 -12 -73 -2 -88 -70 -46 -17 32 94 -41 9 -11 32 94 32 -18 1 -71 -96 -77 46----------------------------Сортировка по последней колонке -18 60 18 -46 10 4 94 -12 -73 -2 -88 -70 -46 46 32 94 -41 9 -11 32 26 32 -18 1 -71 -96 -77 -17