جستجوی مقدار در ارایه به صورت دودوئی


 یکی از دوستان پیام داده اند که جستجوی یک عدد در ارایه به صورت دودوئی را بیان کنیم.

 - قدم اولی که باید انجام دهید این است که باید ارایه را تعریف کنید.

 در قسمت ( 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