|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

103.- Producto de matrices. InputBox.

- Multiplicación de matrices.

Vamos a ver cómo podemos introducir datos en dos matrices y multiplicarlas, esto es un ejercicio típico en clases de bachilleratos de ciencia y primer curso universitario.

Aquí solo vamos a adaptar uno de tantos código de C+, Visual Basic, Java,... que vemos en internet sobre este tema.

Puedes ver una multiplicación de dos matrices en C++
http://msdn.microsoft.com/es-es/library/hh873134.aspx

Presento este código adaptado donde quiero exponer la manera de introducir los datos mediante una Subrutina InputBox construida con la librería Dialog y la presentación de datos en Label1 acumulativo, es decir cada vez que se produce una escritura en el Label1, se mantiene lo que ya estaba escrito, por eso de...

Label1.Text = Label1.Text & lo_nuevo

Creamos un Layout llamado "Layout", introducimos dos botones, a uno lo llamamos btnIntroducir y al otro btnCalcular.
También situamos un Label1 que ocupe gran parte de la pantalla, en su propiedad TextStyle HorizontalAlignement ponemos TOP, para que comience a escribir desde arriba.

 

Copia y pega este código en un nuevo proyecto
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com

' diciembre 2014 (adaptado)
End Sub

Sub Globals
    Dim a(10, 10), b(10, 10) As Long
    Dim i, j, h As Int
    Dim producto As Long
    Dim filas, filcolum, columnas As Int
    Dim Label1 As Label
    Dim id As InputDialog
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub btnIntroducir_Click

        filas = InputBox("¿Cuántas filas en la matriz A?", "Crear Matriz A", "", "")
        filcolum = InputBox("¿Cuántas columnas en la matriz A?, _ 
 Recuerde que el número de columnas que ingrese aquí será igual al número de FILAS de la siguiente matriz", "Crear Matriz A", "", "")
        columnas = InputBox("¿Cuántas columnas en la matriz B?", "Crear Matriz B", "", "")

        For i = 1 To filas
            For j = 1 To filcolum
                a(i, j) = InputBox("Introduce un número entero", "MATRIZ A Posición: " & i & "," & j, "", "")
            Next 
        Next 

        For i = 1 To filcolum
            For j = 1 To columnas
                b(i, j) = InputBox("Introduce un número entero", "MATRIZ B Posición: " & i & "," & j, "", "")
            Next 
        Next 

        Label1.Text = Label1.Text & "Datos en la Matriz A:" & CRLF
        For i = 1 To filas
             Label1.Text = Label1.Text & " "  & CRLF
            For j = 1 To filcolum
                 Label1.Text = Label1.Text & a(i, j) & " "
            Next 
        Next 

         Label1.Text = Label1.Text & CRLF & CRLF
         
         Label1.Text = Label1.Text & "Datos en la Matriz B:"  & CRLF
        For i = 1 To filcolum
             Label1.Text = Label1.Text & " "  & CRLF
            For j = 1 To columnas
                 Label1.Text = Label1.Text & b(i, j) & " "
            Next 
        Next 
End Sub

Sub btnCalcular_Click
     Label1.Text = Label1.Text & CRLF
        Label1.Text = Label1.Text & CRLF & "El producto de las matrices es: "

        For i = 1 To filas
            Label1.Text = Label1.Text & CRLF
            For h = 1 To columnas
                For j = 1 To filcolum
                    producto = producto + (a(i, j) * b(j, h))
                Next 
                 Label1.Text = Label1.Text & producto & " " 
                producto = 0
            Next 
        Next 
End Sub

Sub InputBox(Prompt As String, Title As String, Default As String, Hint As String) As String
    Dim id As InputDialog
    Dim ret As String
    id.HintColor = Colors.ARGB(196, 255, 140, 0)
    id.Hint = Hint ' Valor escrito en el casillero
    id.Input = Default ' Valor por defecto en el casillero
    ' Cambiar, Borrar, Cancelar son los botones, si quieres quitar alguno: ""
    id.InputType = id.INPUT_TYPE_NUMBERS 
    ret = id.Show(Prompt, Title, "Aceptar", "", "", Null)
    If ret = -1 Then Return id.Input ' El valor del casillero es la salida
    If ret = -3 Then Return ""
    If ret = -2 Then Return
End Sub

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información