В каждой из матриц поменять местами две строки - 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
с измененными строками.
- Объявляется две матрицы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д