Hago una aplicacion para multiplicar matrices. Me estoy valiendo de arreglos y ciclos anidados. Aqui abajo tengo lo que creo es el codigo. ¿Me pueden decir si está bien o si este código iría en el botón que me genere el producto de matrices, o sea, en el boton "Multiplicar matrices"?
'este sub es para probar la funcion
Private Sub Prueba_de_producto()
Dim A(,) As Decimal = {{1, 2, 3}, {3, 2, 1}}
Dim B(,) As Decimal = {{1, 2}, {3, 1}, {2, 1}}
Dim R(,) As Decimal = Producto(A, B)
MessageBox.Show(String.Format("{0} {1}" _
& ControlChars.CrLf & "{2} {3}", _
R(0, 0), R(0, 1), R(1, 0), R(1, 1)))
End Sub
'funcion de multiplicacion matricial
Public Function Producto(ByVal A(,) As Decimal, ByVal B(,) As Decimal) As Decimal(,)
'Comprobamos que las matrices cumplen los requisitos
If A.GetUpperBound(1) B.GetUpperBound(0) Then
Exit Function
End If
Dim i, j, k As Short
'Creamos la matriz producto
Dim R(A.GetUpperBound(0), B.GetUpperBound(1)) As Decimal
Dim T(A.GetUpperBound(1), 1) As Decimal
'Los dos primeros bucles For
'sirven para ir visitando
'todas las posiciones de la matriz R
For i = 0 To R.GetUpperBound(0)
For j = 0 To R.GetUpperBound(1)
'i contiene el primer índice de R
'se aumente el índice desde cero
'hasta el número de columnas de A,
'que coincide con el de filas de B
For k = 0 To A.GetUpperBound(1)
T(k, 0) = A(i,k)
Next
'j contiene el segundo índice de R
'vamos aumentando el índice desde cero
'hasta el número de filas de B,
'que coincide con el de columnas de A
For k = 0 To B.GetUpperBound(0)
T(k, 1) = B(k, j)
Next
'Multiplicamos cada pareja del array T
'y vamos acumulando los resultados.
'El resultado final lo colocamos en su posición
'en la matriz producto R
For k = 0 To T.GetUpperBound(0)
R(i, j) += T(k, 0) * T(k, 1)
Next
Next
Next
Return R
End Function