Visual Basic - Ordenar

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Ordenar

Publicado por ricaurte (313 intervenciones) el 13/09/2006 17:49:43
Tengo una matriz de cierto tamano, pero los elementos estan en desorden, y no logro conseguir ordenarlos, alguien tiene algun codigo que me sirva para eso?

ejemplo, digamos numeros del 1 al 10 pero en desorden y necesito ordenarlos en la matriz, como puedo hacer??? es urgente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar

Publicado por Marino (15 intervenciones) el 13/09/2006 18:14:36
Hay muchas formas de ordenar un array, la mas sencilla es mediante un bucle For x = 1 To Ubound(ElArray) e ir comparando cada uno de los items del array y si es menor que el anterior lo pones delante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ordenar

Publicado por ricaurte (313 intervenciones) el 13/09/2006 18:40:07
bueno ahi esta el dilema, si empiezo digamos que primero busco el menor valor y lo pongo en la primera posicion y empiezo a comparar desde ahi, si encuentra digamos el 5, el lo va a colocar de segundo, pero luego busca y encuentra el 2, lo pone luego que el 5, y el enredo es ese, como lo hago , es una especie de sort, pero no se como hacerlo mediante codigo para una matrix
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar

Publicado por The Emulator (96 intervenciones) el 13/09/2006 21:17:27
Hola

Bueno la solucion es como te comentaban anteriormente eshacer un cilco e ir comparando cada elemento para determinar si es mayor al que le sigue por ejemplo teniendo tres datos
(1)=2
(2)=3
(3)=1

el ciclo empresaria a mirar la primer posicion en este caso (1)=2 se toma el valor y se compara con la siguinte posicion aqui se mira si el primero es mayor a la segunda posicion

si (1)>(2) entonces (Si el primer dato es mayor al segundo se intercambian los valores)esto se hace con una variable temporal
t=(2)
(2)=(1)
(1)=t

luego tomaria la poscion 2 y la compara con la 3 y asi suceciva mente una vez que el siclo termina vuelve a empezar para mirar los numeros que hacen flata por ordena
ya que en nuestro ejemplo al terminar el pimer ciclo los datos quedarian asi
(1)=2
(2)=1
(3)=3

como vemos solo se ha ordenado la segunda y tercera posicion hace falta ahora primera y segunda.Es por esta razon que ese proceso se realiza con un ciclo infinito(un while) del cualsaldra hasta que los datos esten ordenado

A continuacion te coloco el codigo que hace lo que te mencione anteriormente esta cuadrado para cuadro datos

--------------------------------------------
Dim Numeros(1 To 4) As Integer
Dim Salir As Boolean
Dim X As Integer
Dim TempNumero As Integer

Numeros(1) = 3
Numeros(2) = 2
Numeros(3) = 4
Numeros(4) = 1

While Salir = False
Salir = True
For X = 1 To 3
If Numeros(X) > Numeros(X + 1) Then
TempNumero = Numeros(X + 1)
Numeros(X + 1) = Numeros(X)
Numeros(X) = TempNumero
Salir = False
End If
Next
Wend
--------------------------------------------

NOTA:
Ese codigo lo hize para mostrarte la logica de como ordenar los numero(intercambiando valores) yo lo probe solo para 4 datos pero deberia funcionar para mas. el codigo se puede optimazar aun mas.
PUEDE QUE TENGA ERORRES pero recuerda que era para ilustar no mas

Saludos
http://www.theemulator.tk
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar

Publicado por Marino (15 intervenciones) el 13/09/2006 22:30:09
el codigo que te pusieron antes, si tiene errores, pero para ilustrate está bien.
la explicación está perfectamente razonada, espero que ya lo hayas entendido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar