10.張強編寫了一個Visual Basic程序,用于查找所有相同身高的同學(xué)編號。程序運行界面如圖所示,在列表框List1中顯示所有同學(xué)的編號和身高(按身高從低到高排列),在文本框Text1中輸入需要查找的身高,單擊“查找”按鈕Command1,在列表框List2中顯示所有此身高的同學(xué)編號。數(shù)組a和數(shù)組b分別存儲同學(xué)的編號和對應(yīng)的身高(身高已從低到高排列)。 解決此問題的程序代碼如下: Const n As Integer=10'n為學(xué)生數(shù) Dim a(1To n) As String'數(shù)組a用于存儲學(xué)生的編號 Dim b(1To n) As Integer'數(shù)組b用于存儲學(xué)生的身高 Private Sub Command1_Click ( ) '此過程用于在列表框List2中顯示給定身高的所有學(xué)生的編號,代碼略。 End Sub '以下函數(shù)用于查找給定身高的學(xué)生的相關(guān)信息 Private Function FindEx(k As Integer) As Integer Dim f As Boolean,i As Integer,j As Integer,m As Integer i=1:j=n f=False Do While (i<=j) And Not (f) m=Fix((i+j)/2) If k=b(m) Then f=①
Else If k<b(m) Then j=m-1 Else ②
End If End If Loop If f Then FindEx=m Else FindEx=0'找到返回m,否則返回0 End Function Private Sub Form_Load
'此過程用于對數(shù)組a和數(shù)組b進行賦值,并把數(shù)據(jù)顯示在列表框List1中。代碼略 End Sub (1)FindEx函數(shù)主要采用的算法是