Anda di halaman 1dari 4

Ejemplo 1

Este ejemplo ordena un array o vector usando el mtodo de ordenacin llamado


Burbuja o Bubble Sort.

Nota importante. Este algottmo no es el mas indicado para realizar ordenacin de


datos, ya que en comparacin a otros mtodos es lento. Lo que si es un mtodo fcil
de entender. ( Al final de la pgina hay enlaces para utilizar otros mtodos). Tambin
puedes mirar esta pgina donde hay una tabla que demuestra algunos conceptos a la
hora de poder elegir entre los mtodos de ordenacin mas convenientes segn la tarea
que debamos realizar: Ver pgina web
En el cdigo, se utiliza un control Listbox para cargar algunos valores no numricos y a
la vez se asignan estos a un vector. Luego al llamar a la rutina Ordenar, se ordenar
en forma alfabtica y ascendente. Por ltimo se cargan los datos ordenados en un
List2.

Ejemplo

Colocar un List1

Un List2

Dos botones (Command1 y Command2 )

Cdigo en un Fom
Texto planoCopiar cdigo fuenteImprimir
1. Option Explicit
2.
3. ' -- Vector para los datos
4. Dim Vector() As Variant
5.

6. ' ------------------------------------------------------------------------------7. ' \\ -- Inicio


8. ' ------------------------------------------------------------------------------9. Private Sub Form_Load()
10.
Command1.Caption = " Ordenar Vector "
11.
Command2.Caption = " Cargar Vector "
12.
Command1.Enabled = False
13. End Sub
14.
15. ' ------------------------------------------------------------------------------16. ' \\ -Botn para Ordenar el array y cargar los valores en el List2
17. ' ------------------------------------------------------------------------------18. Private Sub Command1_Click()
19.
Dim i As Integer
20.
21.
Call Ordenar
22.
List2.Clear
23.
24.
For i = 0 To UBound(Vector)
25.
List2.AddItem Vector(i)
26.
Next i
27.
Command1.Enabled = False
28. End Sub
29.
30. ' ------------------------------------------------------------------------------31. ' \\ -- Cargar valores en el List1
32. ' ------------------------------------------------------------------------------33. Private Sub Command2_Click()
34.
Command2.Enabled = False
35.
Command1.Enabled = True
36.
37.
Call Cargar_Array
38. End Sub
39. ' ------------------------------------------------------------------------------40. ' \\ -- BubbleSort - Sub para ordenar el vector
41. ' ------------------------------------------------------------------------------42. Private Sub Ordenar()
43.
44.
Dim iMin
As Long
45.
Dim iMax
As Long
46.
Dim Vectemp As String
' -- variable temporal
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.

Dim Pos
Dim i

As Long
As Long

iMin = LBound(Vector)
iMax = UBound(Vector)
While iMax > iMin
Pos = iMin
For i = iMin To iMax - 1
If Vector(i) > Vector(i + 1) Then

57.
Vectemp = Vector(i + 1)
58.
Vector(i + 1) = Vector(i)
59.
Vector(i) = Vectemp
60.
Pos = i
61.
End If
62.
Next i
63.
iMax = Pos
64.
Wend
65. End Sub
66.
67. ' -------------------------------------------------------------------------------68. ' \\ -Sub cargar valores de ejemplo en el array y en el control de lista
69. ' -------------------------------------------------------------------------------70. Private Sub Cargar_Array()
71.
Dim i As Integer
72.
73.
' -- Listbox
74.
With List1
75.
.AddItem "A"
76.
.AddItem "H"
77.
.AddItem "B"
78.
.AddItem "G"
79.
.AddItem "C"
80.
.AddItem "F"
81.
.AddItem "D"
82.
End With
83.
84.
' -- Array
85.
ReDim Vector(List1.ListCount - 1)
86.
For i = 0 To List1.ListCount - 1
87.
Vector(i) = List1.List(i)
88.
Next i
89. End Sub
Option Explicit
' -- Vector para los datos
Dim Vector() As Variant
' -------------------------------------------------------------' \\ -- Inicio
' -------------------------------------------------------------Private Sub Form_Load()
Command1.Caption = " Ordenar Vector "

Ejemplo 2

Proyecto enviado por Juan Paz, similar al visto anteriormente, donde primeramente
se cargan en forma aleatoria unos nmeros en un array y al mismo tiempo en un
listbox ( el de la izquierda ).
Luego para ordenar se llama a la rutina Bubble sort , enviando como argumento el
vector anterior para ordenarlo.
Descargar proyecto vb

Anda mungkin juga menyukai