Foros del Web » Programación para mayores de 30 ;) » .NET »

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 .NET 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:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
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, 06:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: No se darle la vuelta a este código...

¿No sería más sencillo que usaras el método .Sort de la clase Array, ya que estás usando uno?
De hecho, solamente tendrías que usar dos métodos: .Sort y .Reverse para obtener el resultado que buscas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/02/2010, 06:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: No se darle la vuelta a este código...

Pues si, he estado buscando ejemplos con Sort porque no tengo muy claro como hacerlo. Así que me he montado esta historia... jejejejjeje

Entonces está mal planteado no? No merece la pena molestarme en darle la vuelta??

Voy a ver como va lo de Sort, porque soy inexperta y no se como hacerlo.

Gracias por tu ayuda.
  #4 (permalink)  
Antiguo 05/02/2010, 06:08
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: No se darle la vuelta a este código...

Ejemplo:

Cita:
Dim myArray(2) As Integer
myArray(0) = 123
myArray(1) = 988
myArray(2) = 1
Array.Sort(myArray)
Array.Reverse(myArray)

For i As Integer = 0 To 2
MsgBox(myArray(i))
Next
Resultado:

Cita:
988
123
1
  #5 (permalink)  
Antiguo 05/02/2010, 06:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: No se darle la vuelta a este código...

Ahora si!! Muchas gracias por el ejemplo, como no entiendo mucho del tema hasta que no veo algo parecido no se como empezar.. jejejej

Voy a ver si puedo aplicarlo a mi problema.

Muchas gracias!!
  #6 (permalink)  
Antiguo 05/02/2010, 06:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: No se darle la vuelta a este código...

Ok, me ha venido de lujo el ejemplo. Muchas gracias!! Voy a ver si consigo aplicarlo porque soy principiante y me cuesta bastante. Un saludo !!
  #7 (permalink)  
Antiguo 05/02/2010, 06:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: No se darle la vuelta a este código...

En general es lo primero que debes hacer ante estos problemas simples: Busca en las propiedades y métodos de la clase, porque es muy probable que ya lo hayan implementado.
El problema entonces lo solucionas googleando un poco, o preguntando en algún foro, si la explicación del ayuda de Visual Studio no te resulta entendible...

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

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 03:48.