1 Отсортировать массив по возрастанию в столбцах 2 Составить массив, элементами которого...

0 голосов
78 просмотров

1 Отсортировать массив по возрастанию в столбцах
2 Составить массив, элементами которого являются элементы данного массива, записанные в обратном порядке в строках и в столбцах
ПОМОГИТЕ!!!!! ОЧЕНЬ НАДО!!!!!! ПАСКАЛЬ!!!!!


Информатика (52 баллов) | 78 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// 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
(150k баллов)