Дана квадратная целочисленная матрица, все элементы разkичны. Поменять местами строки,...

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

Дана квадратная целочисленная матрица, все элементы разkичны. Поменять местами строки, которые содержат максимальные и минимальные элементы матрицы. Pascal abc net


Информатика (177 баллов) | 61 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('Введите элементы матрицы построчно');
  var a:=ReadMatrInteger(n,n);
  Writeln('Исходная матрица'); a.Println(4);
  Writeln(4*a.ColCount*'-');
  var s:=a.ElementsWithIndexes;
  var imin:=s.MinBy(t->t[0])[1];
  var imax:=s.MaxBy(t->t[0])[1];
  if imin<>imax then a.SwapRows(imin,imax);
  Writeln('Матрица-результат'); a.Println(4);
end.

Пример
Количество строк/столбцов в матрице: 5
Введите элементы матрицы построчно
51 -74 -22 -83 -89 87 66 -61 -16 -32 -82 -17 -7 -26 -10 91 5 45 0 25 -47 -44 24 -19 75
Исходная матрица
  51 -74 -22 -83 -89
  87  66 -61 -16 -32
 -82 -17  -7 -26 -10
  91   5  45   0  25
 -47 -44  24 -19  75
--------------------
Матрица-результат
  91   5  45   0  25
  87  66 -61 -16 -32
 -82 -17  -7 -26 -10
  51 -74 -22 -83 -89
 -47 -44  24 -19  75
(150k баллов)