• Viernes 11 de Octubre de 2024, 13:36

Autor Tema:  Ordenar una matriz  (Leído 8841 veces)

Programming C++

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Ordenar una matriz
« en: Domingo 21 de Febrero de 2010, 18:48 »
0
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.  

Programming C++

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Ordenar una matriz
« Respuesta #1 en: Martes 23 de Febrero de 2010, 18:05 »
0
nadie ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  :bad:

droezva

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Ordenar una matriz
« Respuesta #2 en: Miércoles 24 de Febrero de 2010, 09:58 »
0
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++

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Ordenar una matriz
« Respuesta #3 en: Miércoles 24 de Febrero de 2010, 15:58 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Ordenar una matriz
« Respuesta #4 en: Jueves 25 de Febrero de 2010, 03:46 »
0
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!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Programming C++

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Ordenar una matriz
« Respuesta #5 en: Jueves 25 de Febrero de 2010, 18:43 »
0
gracias me sirvio :D  :good:  :D

allangmr

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Ordenar una matriz
« Respuesta #6 en: Jueves 2 de Agosto de 2012, 00:40 »
0
Amigo que metodo se utilizo aqui, el burbuja, el quicksort¿?

es que necesito explicarlo en clases grax :)

naugthall

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Ordenar una matriz
« Respuesta #7 en: Sábado 13 de Octubre de 2012, 17:05 »
0
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.......