PascalABC.NET 3.4.2, сборка 1884 от 24.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var n := 5;
Writeln('*** Исходная матрица ***');
var a := MatrRandom(n, n, -99, 99);
a.Println(4);
Writeln(4 * a.ColCount * '-');
Writeln('*** Полученная матрица ***');
var (i1, i2) := (0, 0);
for var i := 1 to n - 1 do
begin
if a[i, i] < a[i1, i1] then i1 := i;
if a[i, n - i - 1] > a[i2, n - i2 - 1] then i2 := i
end;
if i1 = i2 then
for var i := 0 to n - 1 do
(a[i, i], a[i, n - i - 1]) := (a[i1, i1], a[i1, i1])
else Swap(a[i1, i1], a[i2, n - i2 - 1]);
a.Println(4)
end.