SoloCodigo
		Programación Específica => Diseño de Algoritmos => Mensaje iniciado por: aquilifer en Lunes  5 de Abril de 2010, 18:46
		
			
			- 
				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.