Поменять местами строку матрицы rmatr[n, m] с максимальным элементом на главной диагонали со строкой с заданным номером k (k – вводится поль- зователем с клавиатуры). в среде программирования pascalabc.net
// 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.
// Внимание! Если программа не работает, обновите версию!
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