جستجوی دودوئی
جستجوی مقدار در ارایه به صورت دودوئی
یکی از دوستان پیام داده اند که جستجوی یک عدد در ارایه به صورت دودوئی را بیان کنیم.
- قدم اولی که باید انجام دهید این است که باید ارایه را تعریف کنید.
در قسمت ( General) :
Dim Arry(1 to 10) as Integer ---------------------------------- ما ارایه ای به طول 10 و از نوع عددی تعریف کردیم
- قدم دوم باید اعداد را داخل ارایه بریزیم.
یک (CommandButton) برروی فرم بگزارید و کد زیر را درون آن کپی کنید.
Private Sub Command1_Click()
For i = 1 To 10
Arry(i) = InputBox("Enter Number:")
Next
End Sub
- قدم سوم ، بایدقبل از عملیات جستو عملیات مرتب سازی انجام گردد ( قسمت مرتب سازی با جستو داخل
یک دکمه ). یک (CommandButton ) دیگر برروی فرم درگ کرده و کد زیر را در آن کپی کنید.
Private Sub Command2_Click()
For k = 1 To 10
For l = k + 1 To 9
If arry(k) > arry(l) Then
temp = arry(l)
arry(l) = arry(k)
arry(k) = temp
End If
Next
Next
----- تا اینجا عملیات مرتب سازی انجام شد.
Value = InputBox("Enter Number For Search:")
low = 1
high = 10
find = False
While high > low And find = False
mid1 = (high + low) \ 2
If arry(mid1) = Value Then
find = True
ElseIf Value > arry(mid1) Then
low = mid1 + 1
Else
high = mid1 - 1
End If
Wend
----- عملیات جستجو پایان یافته و کد های زیر برای نمایش پیغام به کاربر می باشد.
If find = True Then
MsgBox "Number Find."
Else
MsgBox "Number NotFind."
End If
End Sub