Составить процедуру, меняющую местами столбцы матрицы с номерами 1 и 2 - Turbo Pascal
Формулировка задачи:
составить процедуру ,меняющую местами столбцы с номерами n1 и n2 в матрице размерностью 6*5
Решение задачи: «Составить процедуру, меняющую местами столбцы матрицы с номерами 1 и 2»
textual
Листинг программы
const
n = 6;
m = 5;
type
TArray = Array[1..n, 1..m] Of ShortInt;
procedure PrintArray(const ar: TArray);
var
i, j: Byte;
begin
WriteLn;
for i := 1 to n do
begin
for j := 1 to m do
Write(ar[i, j]:4);
WriteLn;
end;
WriteLn;
end;
procedure SwapColumns(const m1, m2: Byte; var ar: TArray);
procedure SwapElements(var x, y: ShortInt);
var
z: ShortInt;
begin
z := x;
x := y;
y := z;
end;
var
i: Byte;
begin
for i := 1 to n do
SwapElements(ar[i, m1], ar[i, m2]);
end;
var
ar: TArray;
i, j, m1, m2: Byte;
begin
Randomize;
for i := 1 to n do
begin
for j := 1 to m do
begin
ar[i, j] := Random(199) - 99;
Write(ar[i, j]:4);
end;
WriteLn;
end;
repeat
Write('Input n1: ');
ReadLn(m1);
until ((m1 > 0) And (m1 <= m));
repeat
Write('Input n2: ');
ReadLn(m2);
until ((m2 > 0) And (m2 <= m) And (m2 <> m1));
SwapColumns(m1, m2, ar);
for i := 1 to n do
begin
WriteLn;
for j := 1 to m do
Write(ar[i, j]:4);
end;
end.
Объяснение кода листинга программы
- В начале кода объявляются константы n и m, которые представляют собой длину и ширину матрицы соответственно. Тип данных TArray представляет собой массив целых чисел.
- Затем объявляется процедура PrintArray, которая выводит содержимое матрицы на экран.
- Далее объявляется процедура SwapColumns, которая меняет местами столбцы матрицы с номерами 1 и 2. Эта процедура принимает два аргумента типа Byte - m1 и m2, которые представляют собой номера столбцов, которые нужно поменять местами. Также в этой процедуре объявлена вспомогательная процедура SwapElements, которая меняет местами два элемента массива.
- После этого объявляется вспомогательная процедура SwapElements, которая меняет местами два элемента массива. Эта процедура принимает два аргумента типа ShortInt - x и y, и меняет их местами.
- Затем объявляется переменная i, которая будет использоваться для цикла в процедуре SwapColumns.
- В цикле SwapColumns происходит обмен элементов массива по индексам i и j. Для каждого индекса i происходит вызов процедуры SwapElements, чтобы обменять элементы ar[i, m1] и ar[i, m2].
- После выполнения цикла SwapColumns происходит вывод содержимого матрицы на экран.
- Код повторяет запрос ввода двух чисел до тех пор, пока не будут введены корректные значения (т.е. больше 0 и меньше или равно m).
- После этого вызывается процедура SwapColumns с аргументами m1 и m2, которые были введены пользователем.
- Затем происходит вывод содержимого матрицы на экран.