Поменять местами строки матрицы
Дана матрица (двумерный массив). Поменять местами две любые ее строки.
Пусть строки, которые требуется поменять местами задаются пользователем при выполнении программы. Обменять строки - это значит, каждый элемент одной строки надо поставить на то же место другой строки.
При обращении к элементу матрицы первым индексом указывается строка, вторым - столбец. Поскольку строки задаются, проход осуществляется по столбцам. Для каждого столбца элемент одной строки присваивается буферной переменной, после чего на его место записывается элемент того же столбца другой строки. На место второго элемента записывается первый, взятый из буферной переменной.
const
N = 7; M = 5;
var
arr: array[1..N,1..M] of byte;
i,j,a,b,buff: byte;
begin
randomize;
for i:=1 to N do begin
for j:=1 to M do begin
arr[i,j] := random(20);
write(arr[i,j]:3);
end;
writeln;
end;
write('Какие строки обменять: ');
readln(a,b);
for j:=1 to M do begin
buff := arr[a,j];
arr[a,j] := arr[b,j];
arr[b,j] := buff;
end;
for i:=1 to N do begin
for j:=1 to M do
write(arr[i,j]:3);
writeln;
end;
end.
Пример выполнения кода:
18 11 5 4 11
18 1 6 7 2
2 14 14 10 12
13 5 11 19 19
6 6 13 13 16
0 17 14 6 0
14 0 2 11 7
Какие строки обменять: 2 7
18 11 5 4 11
14 0 2 11 7
2 14 14 10 12
13 5 11 19 19
6 6 13 13 16
0 17 14 6 0
18 1 6 7 2