Поменять местами строки матрицы | Язык Паскаль

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

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

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

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

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