Программа
'A=B=C
QuantityString% = 4 ' Количество строк матрицы
QuantityColumn% = 4 ' Количество солбцов матрицы
DIM A(QuantityString%, QuantityColumn%) ' Матрица
DIM B(QuantityString%, QuantityColumn%) ' Матрица
DIM C(QuantityString%, QuantityColumn%) ' Матрица
'D*E=F
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()) ' Транспонирование матрицы
s$=input$(1)
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()) ' Вывод матрицы
s$=input$(1)
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(2), B(2), C(2)) ' Процедура сложения матриц
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(2), Column1, Column2)
' Процедура перестановки столбцов матрицы
FOR i% = 1 TO UBOUND(B(1)) ' Цикл перестановки элементов матрицы
SWAP B(i%, Column1), B(i%, Column2) ' Перестановка элемента
NEXT i%
END SUB
SUB ChangeStringMatrix (B(2), String1, String2)
' Процедура перестановки строк матрицы
FOR j% = 1 TO UBOUND(B(2)) ' Цикл перестановки элементов матрицы
SWAP B(String1, j%), B(String2, j%) ' Перестановка элемента
NEXT j%
END SUB
SUB CopyMatrix (A(2), B(2)) ' Процедура копирования матрицы
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(2), 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(2)) ' Процедура ввода матрицы
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(2), B(2), C(2)) ' Процедура умножения матриц
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(2)) ' Процедура вывода матрицы
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(2)) ' Процедура обработки матрицы
FOR i% = 1 TO UBOUND(B(1)) ' Цикл просмотра строк матрицы
FOR j% = 1 TO UBOUND(B(2)) ' Цикл просмотра элементов матрицы
NEXT j%
NEXT i%
END SUB
SUB TransponatorMatrix (B(2)) ' Процедура транспонирования матрицы
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
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию