Поменять местами строки матрицы
Задача
Дана матрица (двумерный массив). Поменять местами две любые ее строки.
Решение
Пусть строки, которые требуется поменять местами задаются пользователем при выполнении программы. Обменять строки - это значит, каждый элемент одной строки надо поставить на то же место другой строки.
При обращении к элементу матрицы первым индексом указывается строка, вторым - столбец. Поскольку строки задаются, проход осуществляется по столбцам. Для каждого столбца элемент одной строки присваивается буферной переменной, после чего на его место записывается элемент того же столбца другой строки. На место второго элемента записывается первый, взятый из буферной переменной.
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