SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Programming C++ en Domingo 21 de Febrero de 2010, 18:48

Título: Ordenar una matriz
Publicado por: Programming C++ en Domingo 21 de Febrero de 2010, 18:48
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
  1. Private Sub Form_Load()
  2. MSFlexGrid1.TextMatrix(0, 0) = 5
  3. MSFlexGrid1.TextMatrix(0, 1) = 8
  4. MSFlexGrid1.TextMatrix(0, 2) = 4
  5. MSFlexGrid1.TextMatrix(0, 3) = 13
  6. MSFlexGrid1.TextMatrix(1, 0) = 21
  7. MSFlexGrid1.TextMatrix(1, 1) = 53
  8. MSFlexGrid1.TextMatrix(1, 2) = 90
  9. MSFlexGrid1.TextMatrix(1, 3) = 9
  10. MSFlexGrid1.TextMatrix(2, 0) = 2
  11. MSFlexGrid1.TextMatrix(2, 1) = 1
  12. MSFlexGrid1.TextMatrix(2, 2) = 0
  13. MSFlexGrid1.TextMatrix(2, 3) = 57
  14. MSFlexGrid1.TextMatrix(3, 0) = 56
  15. MSFlexGrid1.TextMatrix(3, 1) = 7
  16. MSFlexGrid1.TextMatrix(3, 2) = 20
  17. MSFlexGrid1.TextMatrix(3, 3) = 18
  18. MSFlexGrid1.TextMatrix(4, 0) = 10
  19. MSFlexGrid1.TextMatrix(4, 1) = 15
  20. MSFlexGrid1.TextMatrix(4, 2) = 27
  21. MSFlexGrid1.TextMatrix(4, 3) = 34
  22.  
  23. MSFlexGrid2.TextMatrix(0, 0) = 8
  24. MSFlexGrid2.TextMatrix(1, 0) = 6
  25. MSFlexGrid2.TextMatrix(2, 0) = 20
  26. MSFlexGrid2.TextMatrix(3, 0) = 11
  27. MSFlexGrid2.TextMatrix(4, 0) = 5
  28.  
  29. End Sub
  30.  
Título: Re: Ordenar una matriz
Publicado por: Programming C++ en Martes 23 de Febrero de 2010, 18:05
nadie ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  :bad:
Título: Re: Ordenar una matriz
Publicado por: droezva en Miércoles 24 de Febrero de 2010, 09:58
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!!
Título: Re: Ordenar una matriz
Publicado por: Programming C++ en Miércoles 24 de Febrero de 2010, 15:58
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
Título: Re: Ordenar una matriz
Publicado por: droezva en Jueves 25 de Febrero de 2010, 03:46
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
  1.  
  2. 'Funcion para saber hacia donde se ordenaran los elementos de los vectores
  3. Function CondicionDireccion(v1 As Integer, v2 As Integer, D As String) As Boolean
  4. Dim R As Boolean
  5.  
  6. If "ASC" = UCase(D) Then
  7.     If v1 > v2 Then
  8.         R = True
  9.     Else
  10.         R = False
  11.     End If
  12. ElseIf "DES" = UCase(D) Then
  13.     If v1 < v2 Then
  14.         R = True
  15.     Else
  16.         R = False
  17.     End If
  18. End If
  19. CondicionDireccion = R
  20. End Function
  21.  
  22.  
  23. 'los parametros son
  24. 'M as MSFlexGrid el componente donde se encuentra los datos
  25. 'FI as Integer es el valor de la fila donde inician los datos
  26. 'FF as Integer es el valor de la fila donde finalizan los datos
  27. 'CI as Integer es el valor de la columna donde inician los datos
  28. 'CI as Integer es el valor de la columna donde finaliza los datos
  29. 'Direccion as String es el valor que indica la direccion de Ordenamiento ASC o DES
  30. Sub OrdenarMatrix(M As MSFlexGrid, FI As Integer, FF As Integer, CI As Integer, CF As Integer, Direccion As String)
  31. Dim vector() As Integer
  32. Dim longVector As Integer
  33. longVector = ((FF - FI + 1) * (CF - CI + 1))
  34. ReDim vector(longVector - 1) As Integer
  35. Dim index As Integer
  36. Dim temp As Integer
  37.  
  38. 'Los datos de la matriz son ingresados a un vector mediante
  39. 'el recorrido fila columna
  40. index = 0
  41. For i = FI To FF
  42.     For j = CI To CF
  43.         vector(index) = M.TextMatrix(i, j)
  44.         index = index + 1
  45.     Next j
  46. Next i
  47.  
  48. 'El vector es ordenado por medio del Método de la Burbuja
  49. For i = 0 To longVector - 2
  50.     For j = i + 1 To longVector - 1
  51.         If CondicionDireccion(vector(i), vector(j), Direccion) = True Then
  52.             temp = vector(i)
  53.             vector(i) = vector(j)
  54.             vector(j) = temp
  55.         End If
  56.     Next j
  57. Next i
  58.  
  59. 'El vector ya ordenado es vaciado a la matrix
  60. index = 0
  61. For i = FI To FF
  62.     For j = CI To CF
  63.         M.TextMatrix(i, j) = vector(index)
  64.         index = index + 1
  65.     Next j
  66. Next i
  67. End Sub
  68.  
  69. Private Sub btnOrdenar_Click()
  70. OrdenarMatrix MSFlexGrid1, 0, 4, 0, 3, "ASC"
  71. OrdenarMatrix MSFlexGrid2, 0, 4, 0, 0, "DES"
  72. End Sub
  73.  
  74. Private Sub Form_Load()
  75.  MSFlexGrid1.TextMatrix(0, 0) = 5
  76.  MSFlexGrid1.TextMatrix(0, 1) = 8
  77.  MSFlexGrid1.TextMatrix(0, 2) = 4
  78.  MSFlexGrid1.TextMatrix(0, 3) = 13
  79.  MSFlexGrid1.TextMatrix(1, 0) = 21
  80.  MSFlexGrid1.TextMatrix(1, 1) = 53
  81.  MSFlexGrid1.TextMatrix(1, 2) = 90
  82.  MSFlexGrid1.TextMatrix(1, 3) = 9
  83.  MSFlexGrid1.TextMatrix(2, 0) = 2
  84.  MSFlexGrid1.TextMatrix(2, 1) = 1
  85.  MSFlexGrid1.TextMatrix(2, 2) = 0
  86.  MSFlexGrid1.TextMatrix(2, 3) = 57
  87.  MSFlexGrid1.TextMatrix(3, 0) = 56
  88.  MSFlexGrid1.TextMatrix(3, 1) = 7
  89.  MSFlexGrid1.TextMatrix(3, 2) = 20
  90.  MSFlexGrid1.TextMatrix(3, 3) = 18
  91.  MSFlexGrid1.TextMatrix(4, 0) = 10
  92.  MSFlexGrid1.TextMatrix(4, 1) = 15
  93.  MSFlexGrid1.TextMatrix(4, 2) = 27
  94.  MSFlexGrid1.TextMatrix(4, 3) = 34
  95.  
  96.  MSFlexGrid2.TextMatrix(0, 0) = 8
  97.  MSFlexGrid2.TextMatrix(1, 0) = 6
  98.  MSFlexGrid2.TextMatrix(2, 0) = 20
  99.  MSFlexGrid2.TextMatrix(3, 0) = 11
  100.  MSFlexGrid2.TextMatrix(4, 0) = 5
  101. End Sub
  102.  
  103.  
  104.  

Nos vemos Exito.  :)

Ahi te adjunto el proyecto!!
Título: Re: Ordenar una matriz
Publicado por: Programming C++ en Jueves 25 de Febrero de 2010, 18:43
gracias me sirvio :D  :good:  :D
Título: Re:Ordenar una matriz
Publicado por: allangmr en Jueves 2 de Agosto de 2012, 00:40
Amigo que metodo se utilizo aqui, el burbuja, el quicksort¿?

es que necesito explicarlo en clases grax :)
Título: Re:Ordenar una matriz
Publicado por: naugthall en Sábado 13 de Octubre de 2012, 17:05
Amigo que metodo se utilizo aqui, el burbuja, el quicksort¿?

es que necesito explicarlo en clases grax :)

Osea que en lugar de pedir ayuda para saber como hacerlo tu, pides ayuda para que te hagan los deberes.......