Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

No se darle la vuelta a este código...

Estas en el tema de No se darle la vuelta a este código... en el foro de Visual Basic clásico en Foros del Web. Hola a todos. Tengo un problema con este código. Intento ordenar una lista indefinida de números , el código me funciona pero me los ordena ...
  #1 (permalink)  
Antiguo 05/02/2010, 05:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
Pregunta No se darle la vuelta a este código...

Hola a todos. Tengo un problema con este código. Intento ordenar una lista indefinida de números , el código me funciona pero me los ordena de Menor a Mayor , necesito que sea de Mayor a Menor pero al intentar darle la vuelta ya no me funciona nada. Estoy poniendo (i) donde va (j) y a la inversa pero no se bien como darle la vuelta... O es que el código está mal planteado???

Gracias por vuestra ayuda.


Public Sub ordenarDes(Numbers() As Integer, N As Integer)
' Se ordenan los números enteros de menor a mayor
Dim Temp As Integer
Dim i, j As Integer
For i = 1 To N - 1
For j = i + 1 To N
If Numbers(i) > Numbers(j) Then
Temp = Numbers(i)
Numbers(i) = Numbers(j)
Numbers(j) = Temp
End If
Next j
Next i
' se devuelve el argumento modificado
End Sub
  #2 (permalink)  
Antiguo 05/02/2010, 05:58
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: No se darle la vuelta a este código...

La clave está aquí:
Código vb:
Ver original
  1. If Numbers(i) > Numbers(j) Then
Ahora lo quieres al revés, así:
Código vb:
Ver original
  1. If Numbers(i) < Numbers(j) Then
Ten cuidado con este tipo de problemas, porque no son cuestión del lenguaje, sino del algoritmo. Procura hacer simulaciones, esto es, inventarte tú misma una secuencia de números y piensa (o escribe sobre papel) qué acciones se hacen después de cada instrucción. Haciéndolo así podrás ver mejor este tipo de cosas.
  #3 (permalink)  
Antiguo 05/02/2010, 11:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Visual Basic clásico

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.