Программа
DECLARE SUB ChangeStringMatrix (B!(), String1!, String2!)
DECLARE SUB ChangeColumnMatrix (B!(), Column1!, Column2!)
DECLARE SUB GetMinMaxElementMatrix (B!(), Min!, Max!)
DECLARE SUB InputMatrix (B!())
DECLARE SUB OutputMatrix (B!())
DECLARE SUB TransponatorMatrix (B!())
DECLARE SUB AddMatrix (A!(), B!(), C!())
DECLARE SUB CopyMatrix (A!(), B!())
DECLARE SUB MultiplyMatrix (A!(), B!(), C!())
QuantityString% = 4 ' Количество строк матрицы
QuantityColumn% = 4 ' Количество солбцов матрицы
DIM A(QuantityString%, QuantityColumn%) ' Матрица
DIM B(QuantityString%, QuantityColumn%) ' Матрица
DIM C(QuantityString%, QuantityColumn%) ' Матрица
QuantityStringD% = 4 ' Количество строк матрицы
QuantityColumnD% = 3 ' Количество солбцов матрицы
QuantityStringE% = QuantityColumnD% ' Количество строк матрицы
QuantityColumnE% = 2 ' Количество солбцов матрицы
QuantityStringF% = QuantityStringD% ' Количество строк матрицы
QuantityColumnF% = QuantityColumnE% ' Количество солбцов матрицы
DIM D(QuantityStringD%, QuantityColumnD%) ' Матрица
DIM E(QuantityStringE%, QuantityColumnE%) ' Матрица
DIM F(QuantityStringF%, QuantityColumnF%) ' Матрица
PRINT ' Пропуск строки
CALL InputMatrix(A()) ' Ввод матрицы
PRINT ' Пропуск строки
PRINT " Исходная матрица: " ' Вывод заголовка
CALL OutputMatrix(A()) ' Вывод матрицы
CALL ChangeStringMatrix(A(), 1, 4) ' Перемена строк в матрице
PRINT ' Пропуск строки
PRINT " Перемена строк: " ' Вывод заголовка
CALL OutputMatrix(A())' Вывод матрицы
CALL ChangeColumnMatrix(A(), 2, 1) ' Перемена столбцов в матрице
PRINT ' Пропуск строки
PRINT " Перемена столбцов: " ' Вывод заголовка
CALL OutputMatrix(A()) ' Вывод матрицы
CALL TransponatorMatrix(A()) ' Транспонирование матрицы
STOP
PRINT ' Пропуск строки
PRINT " Транспонированная матрица: " ' Вывод заголовка
CALL OutputMatrix(A()) ' Вывод матрицы
CALL GetMinMaxElementMatrix(A(), Min, Max)
' Получение минимального и максимального элементов матрицы
PRINT ' Пропуск строки
PRINT "Min="; Min; " Max="; Max ' Вывод минимального и максимального элементов матрицы
CALL CopyMatrix(A(), B()) ' Копирование матрицы
CALL TransponatorMatrix(B()) ' Транспонирование матрицы
PRINT ' Пропуск строки
PRINT " Транспонированная матрица: " ' Вывод заголовка
CALL OutputMatrix(B()) ' Вывод матрицы
CALL AddMatrix(A(), B(), C()) ' Сложение матриц
PRINT ' Пропуск строки
PRINT " Сумма матриц: " ' Вывод заголовка
CALL OutputMatrix(C()) ' Вывод матрицы
STOP
CALL InputMatrix(D()) ' Ввод матрицы
PRINT ' Пропуск строки
PRINT " Матрица D: " ' Вывод заголовка
CALL OutputMatrix(D()) ' Вывод матрицы
CALL InputMatrix(E()) ' Ввод матрицы
PRINT ' Пропуск строки
PRINT " Матрица E: " ' Вывод заголовка
CALL OutputMatrix(E()) ' Вывод матрицы
CALL MultiplyMatrix(D(), E(), F()) ' Умножение матриц
PRINT ' Пропуск строки
PRINT " Произведение матриц: " ' Вывод заголовка
CALL OutputMatrix(F()) ' Вывод матрицы
END
SUB AddMatrix (A(), B(), C()) ' Процедура сложения матриц
FOR i% = 1 TO UBOUND(A, 1) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(A, 2) ' Цикл прсмотра элементов матрицы
C(i%, j%) = A(i%, j%) + B(i%, j%)
NEXT j%
NEXT i%
END SUB
SUB ChangeColumnMatrix (B(), Column1, Column2)
' Процедура перестановки столбцов матрицы
FOR i% = 1 TO UBOUND(B, 1) ' Цикл перестановки элементов матрицы
SWAP B(i%, Column1), B(i%, Column2) ' Перестановка элемента
NEXT i%
END SUB
SUB ChangeStringMatrix (B(), String1, String2)
' Процедура перестановки строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл перестановки элементов матрицы
SWAP B(String1, j%), B(String2, j%) ' Перестановка элемента
NEXT j%
END SUB
SUB CopyMatrix (A(), B()) ' Процедура копирования матрицы
FOR i% = 1 TO UBOUND(A, 1) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(A, 2) ' Цикл прсмотра элементов матрицы
B(i%, j%) = A(i%, j%) ' Копирование элемента
NEXT j%
NEXT i%
END SUB
SUB GetMinMaxElementMatrix (B(), Min, Max)
' Процедура поиска максимального и минимального элементов матрицы
Max = B(1, 1) ' Начальное определение максимального элемента
Min = B(1, 1) ' Начальное определение минимального элемента
FOR i% = 1 TO UBOUND(B, 1) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл прсмотра элементов матрицы
IF B(i%, j%) > Max THEN Max = B(i%, j%) ' Если текущий элемент
' превосходит максимальный, то - переопределение максимального
IF B(i%, j%) < Min THEN Min = B(i%, j%)' Если текущий элемент меньше
' минимального, то - переопределение минимального
NEXT j%
NEXT i%
END SUB
SUB InputMatrix (B()) ' Процедура ввода матрицы
FOR i% = 1 TO UBOUND(B, 1) ' Цикл ввода строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл ввода элементов матрицы
PRINT "Введите элемент ["; i%; ","; j%; "]";
' Вывод приглашения ввести элемент матрицы
INPUT " ", B(i%, j%) ' Ввод элемента матрицы
NEXT j%
NEXT i%
END SUB
SUB MultiplyMatrix (A(), B(), C()) ' Процедура умножения матриц
FOR i% = 1 TO UBOUND(A, 1) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл прсмотра элементов матрицы
C(i%, j%) = 0 ' Обнуление элемента
FOR k% = 1 TO UBOUND(A, 2)
' Цикл формирования элементов матрицы произведения
C(i%, j%) = C(i%, j%) + A(i%, k%) * B(k%, j%)
NEXT k%
NEXT j%
NEXT i%
END SUB
SUB OutputMatrix (B()) ' Процедура вывода матрицы
FOR i% = 1 TO UBOUND(B, 1) ' Цикл вывода строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл вывода элементов матрицы
PRINT B(i%, j%); " "; ' Вывод элемента матрицы
NEXT j%
PRINT ' Вывод конца строки
NEXT i%
END SUB
SUB ProcessMatrix (B()) ' Процедура обработки матрицы
FOR i% = 1 TO UBOUND(B, 1) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(B, 2) ' Цикл просмотра элементов матрицы
NEXT j%
NEXT i%
END SUB
SUB TransponatorMatrix (B()) ' Процедура транспонирования матрицы
FOR i% = 1 TO UBOUND(B, 1) ' Цикл просмотра строк матрицы
FOR j% = i% TO UBOUND(B, 2) ' Цикл прсмотра элементов матрицы
SWAP B(i%, j%), B(j%, i%) ' Перестановка элементов:
NEXT j%
NEXT i%
END SUB
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию