Sub rrr()
Const Nmin = 7 ' Минимальная размерность матриц
Const Nmax = 15 ' Максимальная размерность матриц
Const R1A = "C6" ' Адрес ячейки с элементом A11
Const R1B = "T6" ' Адрес ячейки с элементом B11
Const RN = "B3" ' Адрес ячейки для отображения размерности матрицы N
Const RDA = "H3" ' Адрес ячейки для отображения определителя ||A||
Const RDB = "X3" ' Адрес ячейки для отображения определителя ||B||
Dim N, i, j, k
Dim RRA, RRB
Randomize
N = Int((Nmax - Nmin + 1) * Rnd + Nmin) ' Определение размерности матрицы случайным образом
RRA = R1A + ":" + Range(R1A).Offset(N - 1, N - 1).Address
RRB = R1B + ":" + Range(R1B).Offset(N - 1, N - 1).Address
ReDim A(1 To N, 1 To N)
ReDim B(1 To N, 1 To N)
For i = 1 To N ' Заполнение матрицы A
k = 1
For j = 1 To N
If j < i Then
A(i, j) = 0
Else
k = k + 1
A(i, j) = k
End If
Next
Next
Call Matrix(A, A, B, N)
Call Matrix(B, A, B, N)
Call Matrix(B, A, B, N)
Range(R1A + ":" + Range(R1A).Offset(Nmax - 1, Nmax - 1).Address).ClearContents
Range(R1B + ":" + Range(R1B).Offset(Nmax - 1, Nmax - 1).Address).ClearContents
Range(RN) = N
Range(RRA) = A
Range(RRB) = B
Range(RDA) = Application.WorksheetFunction.MDeterm(A)
Range(RDB) = Application.WorksheetFunction.MDeterm(B)
End Sub
Sub Matrix(M1, M2, M12, N) ' Процедура перемножения квадратных матриц.
ReDim TMP(1 To N, 1 To N)
Dim i, j, k
For i = 1 To N
For j = 1 To N
TMP(i, j) = 0
For k = 1 To N
TMP(i, j) = TMP(i, j) + M1(i, k) * M2(k, j)
Next
Next
Next
For i = 1 To N
For j = 1 To N
M12(i, j) = TMP(i, j)
Next
Next
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.