Поменять местами строки матрицы

Задача

Дана матрица (двумерный массив). Поменять местами две любые ее строки.

Решение

Пусть строки, которые требуется поменять местами задаются пользователем при выполнении программы. Обменять строки - это значит, каждый элемент одной строки надо поставить на то же место другой строки.

При обращении к элементу матрицы первым индексом указывается строка, вторым - столбец. Поскольку строки задаются, проход осуществляется по столбцам. Для каждого столбца элемент одной строки присваивается буферной переменной, после чего на его место записывается элемент того же столбца другой строки. На место второго элемента записывается первый, взятый из буферной переменной.

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

Тема

Матрицы

Уровень

Простые задачи

Последняя редакция