// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
// Отсортировать массив по возрастанию в столбцах
for var j:=0 to a.ColCount-1 do
a.SetCol(j,a.Col(j).OrderBy(x->x).ToArray);
Writeln('*** Массив, сортированный по колонкам ***');
a.Println(4); Writeln(4*a.ColCount*'-');
// элементы, записанные в обратном порядке в строках и в столбцах
var b:=new integer[a.RowCount,a.ColCount];
for var i:=0 to a.RowCount-1 do
b.SetRow(i,a.Row(i).Reverse.ToArray);
for var j:=0 to a.ColCount-1 do
b.SetCol(j,b.Col(j).Reverse.ToArray);
Writeln('*** Созданный массив ***'); b.Println(4)
end.
Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 7
*** Исходный массив [4,7] ***
-35 72 -60 -96 -3 13 -67
86 55 -58 -58 -25 83 79
-13 54 94 -87 -39 7 67
-64 -87 41 22 38 25 33
----------------------------
*** Массив, сортированный по колонкам ***
-64 -87 -60 -96 -39 7 -67
-35 54 -58 -87 -25 13 33
-13 55 41 -58 -3 25 67
86 72 94 22 38 83 79
----------------------------
*** Созданный массив ***
79 83 38 22 94 72 86
67 25 -3 -58 41 55 -13
33 13 -25 -87 -58 54 -35
-67 7 -39 -96 -60 -87 -64