Programación General > Visual Basic 6.0 e inferiores
Ordenar una matriz
Programming C++:
Me podrian ayudar como ordenar esta matriz ya he probado varios codigo y no me ordena. Los numero deben quedar de menor a mayor
--- Código: Text ---Private Sub Form_Load()MSFlexGrid1.TextMatrix(0, 0) = 5MSFlexGrid1.TextMatrix(0, 1) = 8MSFlexGrid1.TextMatrix(0, 2) = 4MSFlexGrid1.TextMatrix(0, 3) = 13MSFlexGrid1.TextMatrix(1, 0) = 21MSFlexGrid1.TextMatrix(1, 1) = 53MSFlexGrid1.TextMatrix(1, 2) = 90MSFlexGrid1.TextMatrix(1, 3) = 9MSFlexGrid1.TextMatrix(2, 0) = 2MSFlexGrid1.TextMatrix(2, 1) = 1MSFlexGrid1.TextMatrix(2, 2) = 0MSFlexGrid1.TextMatrix(2, 3) = 57MSFlexGrid1.TextMatrix(3, 0) = 56MSFlexGrid1.TextMatrix(3, 1) = 7MSFlexGrid1.TextMatrix(3, 2) = 20MSFlexGrid1.TextMatrix(3, 3) = 18MSFlexGrid1.TextMatrix(4, 0) = 10MSFlexGrid1.TextMatrix(4, 1) = 15MSFlexGrid1.TextMatrix(4, 2) = 27MSFlexGrid1.TextMatrix(4, 3) = 34 MSFlexGrid2.TextMatrix(0, 0) = 8MSFlexGrid2.TextMatrix(1, 0) = 6MSFlexGrid2.TextMatrix(2, 0) = 20MSFlexGrid2.TextMatrix(3, 0) = 11MSFlexGrid2.TextMatrix(4, 0) = 5 End Sub
Programming C++:
nadie ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa :bad:
droezva:
Fijate que he estado viendo el problema nada mas que no entiendo como deseas ordenar la matriz, si deseas que cada columna quede ordenada o cada fila o que se ordenen los numeros segun lo muestras, si me explicas un poco mas te prodría ayudar!!
Saludos!!
Programming C++:
un ejemplo
la bidimensional debe quedar :
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
la unidmesional :
20
10
5
1
0
todo esto con un boton ordenar que al dar click se ordene las 2 matrices
droezva:
Hola, pues aqui esta mi ayuda!! espero y te sirva y sea lo que necesitabas.
Cualquier duda o comentario me comentas.
--- Código: Visual Basic --- 'Funcion para saber hacia donde se ordenaran los elementos de los vectoresFunction CondicionDireccion(v1 As Integer, v2 As Integer, D As String) As BooleanDim R As Boolean If "ASC" = UCase(D) Then If v1 > v2 Then R = True Else R = False End IfElseIf "DES" = UCase(D) Then If v1 < v2 Then R = True Else R = False End IfEnd IfCondicionDireccion = REnd Function 'los parametros son'M as MSFlexGrid el componente donde se encuentra los datos'FI as Integer es el valor de la fila donde inician los datos'FF as Integer es el valor de la fila donde finalizan los datos'CI as Integer es el valor de la columna donde inician los datos'CI as Integer es el valor de la columna donde finaliza los datos'Direccion as String es el valor que indica la direccion de Ordenamiento ASC o DESSub OrdenarMatrix(M As MSFlexGrid, FI As Integer, FF As Integer, CI As Integer, CF As Integer, Direccion As String)Dim vector() As IntegerDim longVector As IntegerlongVector = ((FF - FI + 1) * (CF - CI + 1))ReDim vector(longVector - 1) As IntegerDim index As IntegerDim temp As Integer 'Los datos de la matriz son ingresados a un vector mediante'el recorrido fila columnaindex = 0For i = FI To FF For j = CI To CF vector(index) = M.TextMatrix(i, j) index = index + 1 Next jNext i 'El vector es ordenado por medio del Método de la BurbujaFor i = 0 To longVector - 2 For j = i + 1 To longVector - 1 If CondicionDireccion(vector(i), vector(j), Direccion) = True Then temp = vector(i) vector(i) = vector(j) vector(j) = temp End If Next jNext i 'El vector ya ordenado es vaciado a la matrixindex = 0For i = FI To FF For j = CI To CF M.TextMatrix(i, j) = vector(index) index = index + 1 Next jNext iEnd Sub Private Sub btnOrdenar_Click()OrdenarMatrix MSFlexGrid1, 0, 4, 0, 3, "ASC"OrdenarMatrix MSFlexGrid2, 0, 4, 0, 0, "DES"End Sub Private Sub Form_Load() MSFlexGrid1.TextMatrix(0, 0) = 5 MSFlexGrid1.TextMatrix(0, 1) = 8 MSFlexGrid1.TextMatrix(0, 2) = 4 MSFlexGrid1.TextMatrix(0, 3) = 13 MSFlexGrid1.TextMatrix(1, 0) = 21 MSFlexGrid1.TextMatrix(1, 1) = 53 MSFlexGrid1.TextMatrix(1, 2) = 90 MSFlexGrid1.TextMatrix(1, 3) = 9 MSFlexGrid1.TextMatrix(2, 0) = 2 MSFlexGrid1.TextMatrix(2, 1) = 1 MSFlexGrid1.TextMatrix(2, 2) = 0 MSFlexGrid1.TextMatrix(2, 3) = 57 MSFlexGrid1.TextMatrix(3, 0) = 56 MSFlexGrid1.TextMatrix(3, 1) = 7 MSFlexGrid1.TextMatrix(3, 2) = 20 MSFlexGrid1.TextMatrix(3, 3) = 18 MSFlexGrid1.TextMatrix(4, 0) = 10 MSFlexGrid1.TextMatrix(4, 1) = 15 MSFlexGrid1.TextMatrix(4, 2) = 27 MSFlexGrid1.TextMatrix(4, 3) = 34 MSFlexGrid2.TextMatrix(0, 0) = 8 MSFlexGrid2.TextMatrix(1, 0) = 6 MSFlexGrid2.TextMatrix(2, 0) = 20 MSFlexGrid2.TextMatrix(3, 0) = 11 MSFlexGrid2.TextMatrix(4, 0) = 5End Sub
Nos vemos Exito. :)
Ahi te adjunto el proyecto!!
Navegación
[#] Página Siguiente
Ir a la versión completa