Tema: FAQ's de VB6
Ver Mensaje Individual
  #169 (permalink)  
Antiguo 06/12/2007, 14:23
Avatar de culd
culd
 
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 21 años, 1 mes
Puntos: 19
Re: FAQ's de VB6

Ejemplo de como Ordenar de Mayor a Menor numeros de un vector con el metodo Bubuja.

¿Para que te sirve?

- Para aprender como se ordena, de una forma facil, rapida y efectiva.

- Para aprender a usar InputBox ;)

- Para aprender una especie de "Modo Consola" sin necesidad de agregar TexBox, Labels, etc.

EL CODIGO:

Código:
'---------- EJEMPLO PARA ORDENAR UN VECTOR DE MAYOR A MENOR CON METODO BURBUJA -----------
'---------------------- PROGRAMADO POR CULD, PARA FOROSDELWEB ----------------------------
'NOTA: Para hacerlo mas simple, use InputBox para captar los numeros, asi no hay que
'agregar ningun TextBox
'----------------------------------------------------------------------------------------

Private Sub Form_Load()
Dim X As Integer                'Variable para los FOR
Dim Vector(1 To 10) As Double   'El vector (se puede ampliar)
Dim Auxiliar As Double          'Variable auxiliar
Dim Escribio As String          'El InputBox solo admite String, asi que guardamos aca lo que escribe
Dim Modifico As Boolean         'Es una "MARCA" para saber si ya termino de ordenar

For X = 1 To 10                 'Realizo 10 cargas
    Escribio = InputBox("Ingrese un Numero (" & X & "/10)", "Ejemplo Ordenar Vector (BURBUJA)")
    Vector(X) = CDbl(Escribio)  'Como lo que escribe es STRING tengo que pasarlo a Double
Next X

Modifico = True                 'Asigno la marca para que realice por lo menos 1 vez
Do While Modifico = True        'Mientras se ordena hay que dar una vuelta mas
    Modifico = False            'Asigno la marca suponiendo que no va a ordenar
    For X = 1 To 9              'Recorro el vector (pongo 9 por que 10+1 es 11 y seria overflow)
        If Vector(X + 1) > Vector(X) Then   'Ya se entiende
            Auxiliar = Vector(X)            'Guardo Vector(X) ya que se va a modificar
            Vector(X) = Vector(X + 1)       'Modifico Vector(X)
            Vector(X + 1) = Auxiliar        'A Vector(X+1) le asigno Vector(X) que guarde en Auxiliar
            Modifico = True                 'Pongo la marca que se ordeno
        End If
    Next X
Loop

Dim Mensaje As String           'Esta variable la uso para mostrar un solo TextBox
Mensaje = "A continuacion se ordenan los numeros de Mayor a Menor" & vbNewLine  'El titulo

For X = 1 To 10                 'Recorro el vector
    Mensaje = Mensaje & vbNewLine & Vector(X)   'Pongo el valor dejando un renglon
Next X
Mensaje = Mensaje & vbNewLine & vbNewLine & "- - - EJEMPLO PRACTICO PARA ORDENAR VECTOR CON METODO BUBUJA - - -" & vbNewLine & vbNewLine & "Programador por CULD, para ForosDelWeb"
MsgBox Mensaje, , "Ejemplo Ordenar Vector (BURBUJA)"    'Muestro el mensaje
End                             'Finalizo
End Sub