• Viernes 29 de Marzo de 2024, 15:03

Autor Tema:  Problema con array  (Leído 1518 veces)

aquilifer

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema con array
« en: Lunes 5 de Abril de 2010, 18:46 »
0
Hola, tengo que hacer una aplicación en Visual Basic que permita ordenar las columnas de una matriz con un
número de filas y un número de columnas variable, el caso es que me lió mucho.

Mi código es:

Public Class Formulario
    Dim X(,) As Double 'X es un array bidimensional dinámico
    Dim dato() As Double 'Vector dinámico
    Dim Fil, Col As Integer 'Variables para almacenar las dimensiones de X

    Private Sub Formulario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub ButtonDatos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonDatos.Click
        Dim i, j As Integer, Mensaje As String
        Dim aux As Integer
        Explica.Text = "Tendrá que especificar el número de filas y de columnas"
        Fil = InputBox("Introduzca el número de filas", "Dimensiones de la matriz")
        Col = InputBox("Introduzca el número de columnas", "Dimensiones de la matriz")
        'Las dim de la matriz empiezan a contar desde 0
        'redimensionamos la matriz X hasta Fil-1 y Col-1
        ReDim X(Fil - 1, Col - 1)
        Explica.Text = "Ahora se le piden los elementos de la matriz"
        'Pide los elementos de la matriz X usando InputBox
        For i = 0 To Fil - 1
            For j = 0 To Col - 1
                Mensaje = "Introduzca X(" & i & "," & j & ")"
                X(i, j) = InputBox(Mensaje, "Elementos de la matriz")
            Next j
        Next i

        ReDim dato(Col - 1)
        For j = 0 To Col - 1
            For i = 0 To Fil - 1
                If dato(j) > dato(j + 1) Then
                    aux = dato(j)
                    dato(j + 1) = dato(j)
                    dato(j) = aux
                End If
            Next i
        Next j
        'Se imprimen los resultados en el control Resultado
        Etiqueta2.Visible = True
        Resultado.Visible = True
        For j = 0 To Col - 1
            Resultado.Text = Resultado.Text & vbCrLf & dato(j)
            'vbCrLf es un salto de linea
        Next j
        Explica.Text = "Este programa ordena matrices por columnas. Para introducir los datos pulse en el botón DATOS"
    End Sub

    Private Sub ButtonSalir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonSalir.Click
        End
    End Sub
End Class

LO que pretendo hacer es para ordenar las columnas de la matriz :
Almacenar el contenido de una columna en un vector(dato(j))
Ordenar mediante un bucle ese vector
Regresar el contenido ordenado del vector a la columna de la matriz

Pero al intentar almacenar los datos de las columnas de la matriz en el vector no lo hace, ahí se para, no recorre j  no hace nada se bloquea el programa.