SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: JPVM en Viernes 22 de Abril de 2005, 22:44

Título: No Me Lo Ordena El Arreglo
Publicado por: JPVM en Viernes 22 de Abril de 2005, 22:44
Código: Text
  1. Public Sub ordena()
  2. Dim i, j As Integer
  3. Dim cant2 As Integer
  4. Dim aux As Integer
  5. cant2 = Val(txtcant.Text)
  6. i = 1
  7. j = 1
  8. Do While i < ((cant2 - 1))
  9.     Do While j <= ((cant2 - i))
  10.         If num(i - 1) > num(j) Then
  11.             aux = num(i - 1)
  12.             num(i - 1) = num(j)
  13.             num(j) = aux
  14.          End If
  15.          j = j + 1
  16.      Loop
  17.      j = i
  18.      i = i + 1
  19. Loop
  20.  
  21. End Sub
  22.  

tengo ese codigo para ordenar un arreglo numerico pero me ordena como los 2 primeros campos y luegos otros no y otros si
Título: Re: No Me Lo Ordena El Arreglo
Publicado por: fuhrer en Sábado 23 de Abril de 2005, 04:43
Hola que tal.

Creo que lo que esta mal es la condición de tu segundo ciclo:
Código: Text
  1. Do While j <= ((cant2 - i))
  2.  
con esto no terminas de comparar todo tu arreglo, deberia ser:
Código: Text
  1. Do While j <= ((cant2 - 1))
  2.  
ademas creo deberias cambiar esto:
Código: Text
  1.  
  2.    j = i
  3.     i = i + 1
  4.  
por esto:
Código: Text
  1.  
  2.     i = i + 1
  3.    j = i
  4.  
no es un error esto último, pero es lo correcto.

Espero te haya ayudado.

Hasta luego.