MichaelQwerty
05-02-2008, 08:55
سلام
من به برنامه از 1 تا 10 به ترتیب عدد میدم وقتی که میخوام یه عدد مثلا 4 رو جستجو کنه
پیام میده که تو لیست نیست؟
عددی که باید جستجو بشه رو آخر کار می گیره
اینم سورسش:
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer
Dim find As Boolean
Dim high, low, mid1 As Integer
Dim i As Integer
Dim value As Integer
Dim r As String
List1.Clear
For i = 1 To 10
a(i) = InputBox("Enter number" + Str(i), "Input data")
Next i
value = InputBox("Enter a number to search:", "Input data")
low = 1
high = 10
find = False
While low < high And find = False
mid1 = (high + low) \ 2
If a(mid1) = value Then
find = True
ElseIf value < a(mid1) Then
high = mid1 - 1
Else
low = mid1 + 1
End If
Wend
For i = 1 To 10
List1.AddItem Str(a(i))
Next i
If find Then
r = MsgBox("The value" + Str(value) + "Exist in list", 68, "Message box")
Else
r = MsgBox("The value" + Str(value) + "Not exist in list", vbOKOnly + vbQuestion, "Message box")
End If
End Sub
Private Sub Command2_Click()
End
End Sub
من به برنامه از 1 تا 10 به ترتیب عدد میدم وقتی که میخوام یه عدد مثلا 4 رو جستجو کنه
پیام میده که تو لیست نیست؟
عددی که باید جستجو بشه رو آخر کار می گیره
اینم سورسش:
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer
Dim find As Boolean
Dim high, low, mid1 As Integer
Dim i As Integer
Dim value As Integer
Dim r As String
List1.Clear
For i = 1 To 10
a(i) = InputBox("Enter number" + Str(i), "Input data")
Next i
value = InputBox("Enter a number to search:", "Input data")
low = 1
high = 10
find = False
While low < high And find = False
mid1 = (high + low) \ 2
If a(mid1) = value Then
find = True
ElseIf value < a(mid1) Then
high = mid1 - 1
Else
low = mid1 + 1
End If
Wend
For i = 1 To 10
List1.AddItem Str(a(i))
Next i
If find Then
r = MsgBox("The value" + Str(value) + "Exist in list", 68, "Message box")
Else
r = MsgBox("The value" + Str(value) + "Not exist in list", vbOKOnly + vbQuestion, "Message box")
End If
End Sub
Private Sub Command2_Click()
End
End Sub