Что не так? Помогите чайнику(
Вот Код:
Private Sub Form_Load()
Dim pMatrix(1, 1) As Double
pMatrix(0, 0) = 0.93
pMatrix(0, 1) = -0.14
pMatrix(1, 0) = -0.12
pMatrix(1, 1) = 0.9
[COLOR="Red"]MakeUnMatrix (pMatrix)[/COLOR]
End Sub
Public Sub MakeUnMatrix(ByRef pMatrix() As Double)
Dim i As Long, j As Long
Dim UnMatrix() As Double, Matrix() As Double
Dim k As Long
Dim n As Long
Matrix = pMatrix
n = UBound(Matrix, 1) + 1
If UBound(Matrix, 2) + 1 <> n Then
Err.Raise 116, "MakeUnMatrix", "No inverse matrix."
End If
ReDim UnMatrix(0 To n - 1, 0 To n - 1)
For i = 0 To n - 1
UnMatrix(i, i) = 1
Next i
'Stage 1. make the low-daig elems 0
For i = 0 To n - 1
'search for non-zero line
For j = i To n - 1
If Matrix(j, i) <> 0 Then
Exit For
End If
Next j
If j = n Then
Err.Raise 116, "MakeUnMatrix", "No inverse matrix."
End If
AddRow Matrix, UnMatrix, i, j, (1 - Matrix(i, i)) / Matrix(j, i)
Matrix(i, i) = 1
'make zeros under i,i
For j = i + 1 To n - 1
AddRow Matrix, UnMatrix, j, i, -Matrix(j, i)
Matrix(j, i) = 0
Next j
Next i
'Stage 2. Make upper diag elems 0's
For j = n - 1 To 1 Step -1
For i = 0 To j - 1
AddRow Matrix, UnMatrix, i, j, -Matrix(i, j)
Matrix(i, j) = 0
Next i
Next j
pMatrix = UnMatrix
End Sub
Private Sub AddRow(ByRef Matrix1() As Double, ByRef Matrix2() As Double, ByVal IDest As Long, ByVal ISrc As Long, Multiplier As Double)
Dim i As Long
For i = 0 To UBound(Matrix1, 2)
Matrix1(IDest, i) = Matrix1(IDest, i) + Matrix1(ISrc, i) * Multiplier
Matrix2(IDest, i) = Matrix2(IDest, i) + Matrix2(ISrc, i) * Multiplier
Next i
End Sub
Возникает ошибка (выделил красным): Type mishmatch: array or user - defined type expected
Не нравится ему массив pMatrix что я отправляю в функцию :(:(:(
[COLOR="Navy"]В чём дело? Что не так и как правильно?[/COLOR] Сами исходники функции нахождения обратной матрицы из сети и стопудово работают!!!
Я в VB полный чайник и вижу его сейчасвторой раз в жизни((( Очень надо просто...
[COLOR="Blue"]Заранее огромное спасибо за подсказки[/COLOR]
Вы вообще где этот код взяли?
Погуглил и нашёл этот код((( больше ничего толкового и небыло(
Нет ни у кого исходничка? Нужен код функции: [COLOR="Navy"]отправляешь в неё матрицу любой размерности, а в ответ получаешь обратную[/COLOR]
Был бы очень благодарен)))