PDA

View Full Version : مبتدی: جست و جوی دودویی



mohammad1314
جمعه 10 آذر 1391, 01:48 صبح
سلام .
من میخوام یه برنامه بنویسم که صورت سوال به این صورت هست :
برنامه ای که نام و نمره 10 دانشجو را بگیرد و در دو لیست مجزا نمایش دهد . سپس نامی را در لیست به دو صورت خطی ودودویی جستجو کند . در صورت وجود ، گزینه ی مورد نظر در هر دو لیست باکس به حالت انتخاب شود و آدرس آن نیز در یک label نشان داده شود .
حالا من برنامه رو نوشتم فقط در قسمت جستجوی دودویی مشکل دارم . برنامه رو براتون گذاشتم . لطفا ببینین اشتباهم در کجاست ؟

mohammad1314
شنبه 11 آذر 1391, 17:34 عصر
یعنی واقعا کسی نیست جواب بده . قبلا این سایت خیلی بهتر عمل می کرد .

mohanad1993
یک شنبه 12 آذر 1391, 14:02 عصر
سلام
این کدا رو بزار توی باتون جست و جوی دودوییت
تشکر یادت نره:لبخندساده:

Private Sub CmdSearchBinary_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSearchBinary.Click
Dim StrTemp As String

Dim BytPass As Byte
Dim BytCounter As Byte

Dim IntLow As Integer
Dim IntHigh As Integer
Dim IntMid As Integer

Dim BlnFound As Boolean
Dim StrSearch As String

For BytPass = 1 To 10 - 1
For BytCounter = 1 To 10 - BytPass
If StrName(BytCounter) > StrName(BytCounter + 1) Then
StrTemp = StrName(BytCounter)
StrName(BytCounter) = StrName(BytCounter + 1)
StrName(BytCounter + 1) = StrTemp
End If
Next
Next


StrSearch = InputBox("Enter Name For Search :")
BlnFound = False
IntHigh = 10
IntLow = 1
While IntHigh >= IntLow And BlnFound = False
IntMid = (IntHigh + IntLow) \ 2

If StrName(IntMid) = StrSearch Then
BlnFound = True
Exit While
ElseIf StrSearch > StrName(IntMid) Then
IntLow = IntMid + 1
Else
IntHigh = IntMid - 1
End If
End While


If BlnFound = True Then
LstName.SelectedItem = StrSearch
LstNumber.SelectedIndex = LstName.SelectedIndex
LblSearchBinary.Text = Str(LstName.SelectedIndex) + 1
Else
LstName.SelectedItem = Nothing
LstNumber.SelectedItem = Nothing
LblSearchBinary.Text = "وجود ندارد"
End If
End Sub

mohammad1314
یک شنبه 12 آذر 1391, 15:30 عصر
ممنون که جواب دادین .