Visual Basic - Una mano por fa

Life is soft - evento anual de software empresarial
 
Vista:

Una mano por fa

Publicado por Josnathan (1 intervención) el 26/03/2011 01:30:21
Buenas Tengo que hacer un programa con tres botones y tres listas..

el primer boton me muestra una lista de numeros
el segundo me los organiza
y el tercero me muestra al azar uno de los numeros de la lista. (busqueda Binaria)

ya los primeros dos los tengo listos, pero no logro unir el algoritmo de la busqueda binaria con los archivos de la lista, si alguien me puede dar una mano se lo agradeceria..

aqui el codigo completo:

Option Strict Off
Option Explicit On
Friend Class Form1
Inherits System.Windows.Forms.Form

Dim x, p, c, h, a, Listadatos(12) As Integer
Dim midv As Integer = 0
Dim value As Integer
Dim low As Integer
Dim high As Integer

Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click

' Call Randomize
Call lstOriginal.Items.Clear()
System.Array.Clear(Listadatos, 0, Listadatos.Length)

Listadatos(0) = 17
Listadatos(1) = 20
Listadatos(2) = 3
Listadatos(3) = 250
Listadatos(4) = 7
Listadatos(5) = 18
Listadatos(6) = 360
Listadatos(7) = 277
Listadatos(8) = 5
Listadatos(9) = 4
Listadatos(10) = 23
Listadatos(11) = 6
Listadatos(12) = 18

For x = LBound(Listadatos) To UBound(Listadatos)
' Listadatos(x) = 1 + Int(100 * Rnd())
Call lstOriginal.Items.Add(CStr(Listadatos(x)))
Next x

Call lstSorted.Items.Clear()
Call lstBusq.Items.Clear()

Command2.Enabled = True
Command3.Enabled = False

End Sub

Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click

Call lstSorted.Items.Clear()
Call BubbleSort(Listadatos)

For x = 1 To UBound(Listadatos)
Call lstSorted.Items.Add(CStr(Listadatos(x)))
Next x

Command3.Enabled = True
End Sub

Public Sub BubbleSort(ByRef Lista() As Integer)

For p = 1 To (UBound(Lista) - 1)
For c = 1 To (UBound(Lista) - 1)
If Lista(c) > Lista(c + 1) Then
h = Lista(c)
Lista(c) = Lista(c + 1)
Lista(c + 1) = h
End If
Next c
Next p
End Sub
Private Sub Command3_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command3.Click
Call lstBusq.Items.Clear()

BinarySearch(Listadatos)
Call lstBusq.Items.Add(x)
End Sub
Private Sub Command4_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command4.Click


If MsgBox("Realmente deseas salir?", vbInformation Or vbYesNo) = vbYes Then
MsgBox("Vuelva Pronto")
End
End If
End Sub

Private Function BinarySearch(ByRef x() As Integer) As Integer
While (low <= high)
midv = (low + high) / 2

If (x)(midv > value) Then
high = midv - 1.0

ElseIf (x)(midv < value) Then
low = midv + 1

Else
Return midv
End If
End While
End Function

Private Sub Frame1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Frame1.Enter
Command2.Enabled = False
Command3.Enabled = False
End Sub
End Class

Gracias de Antemano
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
Imágen de perfil de A.H.H

Una mano por fa

Publicado por A.H.H (116 intervenciones) el 26/03/2011 20:51:08
Hola creo que este no es el sitio para ese codigo, ya que eso no es visual basic 6
ese codigo es mas bien Visual Basic .Net
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