В каждой из матриц поменять местами две строки - Pascal
Формулировка задачи:
В каждой из матриц: А(3 строки, 4 столбца) и В(5 строк, 5 столбцов) поменять местами две строки: в матрице А - строки 2 и 3, в матрице В - строки 2 и 4. Для обмена в матрице строк с произвольными номерами использовать процедуру.
Решение задачи: «В каждой из матриц поменять местами две строки»
textual
Листинг программы
- type
- TLine = Array[Byte] Of ShortInt;
- TArray = Array[Byte] Of TLine;
- TMatrix = record
- arr: TArray;
- n, m: Byte;
- end;
- procedure PrintMatrix(const matr: TMatrix);
- var
- i, j: Byte;
- begin
- with matr do
- for i := 0 to n - 1 do
- begin
- for j := 0 to m - 1 do
- Write(arr[i, j]:4);
- WriteLn;
- end;
- end;
- procedure GenerateMatrix(var matr: TMatrix);
- var
- i, j: Byte;
- begin
- with matr do
- begin
- repeat
- Write('Input n=');
- ReadLn(n);
- until (n > 0);
- repeat
- Write('Input m=');
- ReadLn(m);
- until (m > 0);
- for i := 0 to n - 1 do
- for j := 0 to m - 1 do
- arr[i, j] := Random(199) - 99;
- end;
- PrintMatrix(matr);
- end;
- procedure SwapLines(var x, y: TLine);
- var
- z: TLine;
- begin
- z := x;
- x := y;
- y := z;
- end;
- var
- a, b: TMatrix;
- begin
- Randomize();
- WriteLn('Matrix A:'); GenerateMatrix(a);
- WriteLn('Matrix B:'); GenerateMatrix(b);
- with a do
- if (n > 2)
- then
- SwapLines(arr[1], arr[2])
- else
- WriteLn('Not enough lines to swap!');
- WriteLn('New matrix A:'); PrintMatrix(a);
- with b do
- if (n > 3)
- then
- SwapLines(arr[1], arr[3])
- else
- WriteLn('Not enough lines to swap!');
- WriteLn('New matrix B:'); PrintMatrix(b);
- end.
Объяснение кода листинга программы
- Объявление типов данных:
TLine
- массив байтовых чиселTArray
- массив из TLineTMatrix
- запись, содержащая массив (arr), количество строк (n) и столбцов (m)
- Процедура
PrintMatrix
:- Принимает на вход матрицу
matr
. - Использует вложенные циклы для перебора элементов матрицы и выводит их на экран.
- Принимает на вход матрицу
- Процедура
GenerateMatrix
:- Принимает на вход матрицу
matr
. - Запрашивает у пользователя количество строк (n) и столбцов (m).
- Заполняет матрицу случайными числами от -99 до 99.
- Выводит на экран полученную матрицу.
- Принимает на вход матрицу
- Процедура
SwapLines
:- Принимает на вход две строки типа
TLine
-x
иy
. - Переменная
z
временно хранит значениеx
. - Присваивает
x
значениеy
иy
значениеz
(получаем обмен значений междуx
иy
).
- Принимает на вход две строки типа
- Основная программа:
- Объявляется две матрицы
a
иb
типаTMatrix
. - Генерируются случайные матрицы
a
иb
с помощью процедурыGenerateMatrix
. - Если количество строк в матрице
a
больше 2, заменяются местами строки с индексами 1 и 2 с помощью процедурыSwapLines
. - Выводится новая матрица
a
с измененными строками. - Аналогично, если количество строк в матрице
b
больше 3, заменяются местами строки с индексами 1 и 3. - Выводится новая матрица
b
с измененными строками.
- Объявляется две матрицы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д