// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
var m,n:integer;
Write('Введите количество строк и столбцов массива: ');
Readln(m,n);
var a:=MatrixRandom(m,n,10,99);
for var i:=0 to m-1 do begin
for var j:=0 to n-1 do Print(a[i,j]);
Println
end;
var c:char;
Writeln('1- поменять местами строки, 2- столбцы: ');
Readln(c);
case c of
'1': begin
var r1,r2:integer;
Writeln('Введите пару номеров строк: '); Read(r1,r2);
if (r1<=m) and (r2<=m) and (r1<>r2) and (r1*r2>0) then begin
Dec(r1); Dec(r2);
for var j:=0 to n-1 do Swap(a[r1,j],a[r2,j]);
for var i:=0 to m-1 do begin
for var j:=0 to n-1 do Print(a[i,j]);
Println
end
end
else Writeln('Введены недопустимые номера строк')
end;
'2': begin
var c1,c2:integer;
Writeln('Введите пару номеров столбцов: '); Read(c1,c2);
if (c1<=n) and (c2<=n) and (c1<>c2) and (c1*c2>0) then begin
Dec(c1); Dec(c2);
for var i:=0 to m-1 do Swap(a[i,c1],a[i,c2]);
for var i:=0 to m-1 do begin
for var j:=0 to n-1 do Print(a[i,j]);
Println
end
end
else Writeln('Введены недопустимые номера столбцов')
end;
else Writeln('Массив не меняется')
end
end.
Тестовые решения:
Введите количество строк и столбцов массива: 6 4
63 32 31 99
14 92 54 37
79 90 93 95
41 55 95 26
98 44 57 13
80 45 61 24
1- поменять местами строки, 2- столбцы:
1
Введите пару номеров строк:
2 5
63 32 31 99
98 44 57 13
79 90 93 95
41 55 95 26
14 92 54 37
80 45 61 24
Введите количество строк и столбцов массива: 3 5
47 17 78 15 37
35 73 60 31 91
13 17 92 95 88
1- поменять местами строки, 2- столбцы:
2
Введите пару номеров столбцов:
1 5
37 17 78 15 47
91 73 60 31 35
88 17 92 95 13
Введите количество строк и столбцов массива: 3 3
95 60 52
67 35 28
31 94 60
1- поменять местами строки, 2- столбцы:
3
Массив не меняется
Введите количество строк и столбцов массива: 4 3
12 53 74
80 20 44
64 50 43
42 13 35
1- поменять местами строки, 2- столбцы:
1
Введите пару номеров строк:
4 7
Введены недопустимые номера строк