Autor Tema: Multiplicación de matrices o arrays o arreglos bidimensionales en Visual Basic  (Leído 7373 veces)

wesker53

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
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"?

Código: [Seleccionar]
'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
« Última modificación: 28 de Noviembre 2015, 14:49 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Buenas cuando hagas una consulta indica con qué lenguaje estás trabajando, por lo que veo parece que es Visual Basic ¿es así? ¿cuál es la versión?

El procedimiento Prueba_de_producto lo que parece que hace es definir dos matrices, invocar la función que las multiplica y mostrar el resultado por pantalla.

La función Producto lo que parece que hace es realizar el producto de dos matrices que recibe como parámetros y devolver la matriz resultado (matriz multiplicación de las dos recibidas).

Para disparar el procedimiento Prueba_de_producto lo tendrás que hacer bien al pulsarse un botón o bien al cargar el formulario principal, no sé bien cuál es la duda que tienes  ::)

Si te fallan las bases recomendable seguir este curso: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".