Поменять местами строку матрицы rmatr[n, m] с максимальным элементом ** главной диагонали...

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

Поменять местами строку матрицы rmatr[n, m] с максимальным элементом
на главной диагонали со строкой с заданным номером k (k – вводится поль-
зователем с клавиатуры).
В среде программирования PascalABC.NET


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

begin
  var (n,m):=ReadInteger2('Количество строк и столбцов в матрице:');
  var k:=ReadInteger('Номер строки k для обмена:')-1;
  Writeln('*** Исходная матрица ***');
  var rmatr:=MatrRandom(n,m,-99,99);
  rmatr.Println(4); Writeln(4*rmatr.ColCount*'-');
  var j:=0;
  for var i:=1 to Min(n,m)-1 do
    if rmatr[i,i]>rmatr[j,j] then j:=i;
  if k<>j then rmatr.SwapRows(k,j);
  Writeln('*** Полученная матрица ***');
  rmatr.Println(4)
end.

Пример
Количество строк и столбцов в матрице: 7 8
Номер строки k для обмена: 3
*** Исходная матрица ***
 -53   6 -57 -39  41  56  43  36
  79 -57 -69 -67 -70  29  25 -87
 -70  84 -29 -47 -43 -79  97 -45
  99  48 -92 -22 -17   8  57  -9
 -12 -58 -73  -5 -12 -76 -90  87
 -93 -31 -18  65 -77  27 -43  98
 -61  -2 -23 -73  72 -93  20 -73
--------------------------------
*** Полученная матрица ***
 -53   6 -57 -39  41  56  43  36
  79 -57 -69 -67 -70  29  25 -87
 -93 -31 -18  65 -77  27 -43  98
  99  48 -92 -22 -17   8  57  -9
 -12 -58 -73  -5 -12 -76 -90  87
 -70  84 -29 -47 -43 -79  97 -45
 -61  -2 -23 -73  72 -93  20 -73
(150k баллов)