16.鄭均收集了某公司生豬生長各階段的產(chǎn)肉比數(shù)據(jù),他設(shè)計(jì)了如下Visual Basic程序進(jìn)行數(shù)據(jù)處理.程序運(yùn)行界面如圖所示,左邊列表框List1中顯示生豬生長的各階段編號及對應(yīng)的產(chǎn)肉比,單擊“排序”按鈕Command1后,右邊的列表框List2中顯示按產(chǎn)肉比從高到低排序后的數(shù)據(jù).所收集到的不同生長階段編號和對應(yīng)的產(chǎn)肉比數(shù)據(jù)已分別保存在數(shù)組a和數(shù)組b中. 排序部分程序如下: Dim a(1To 10)As String′數(shù)組a用于存儲階段編號 Dim b(1To 10)As Single′數(shù)組b用于存儲產(chǎn)肉比 Private Sub Command1-Click ( ?。?br />Dim i As Integer,j As Integer,k As Integer,t As Single,s As String For i=1To 9 k=i For j=i+1To 10 If ① Then k=j Next j If k<>i Then s=a(i):a(i)=a(k):a(k)=s t=b(i):②:b(k)=t End If Next i For i=1To 10 List2.AddItem a(i)+””+Str(b(i)) Next i End Sub Private Sub Form Load ( ?。浯诉^程用于對數(shù)組a和數(shù)組b進(jìn)行賦值,并顯示在List1中,代碼略 End Sub (1)解決此問題采用的算法是
17.編寫VB程序,實(shí)現(xiàn)如下功能:在文本框Text1中輸入一個(gè)整數(shù),單擊“查找刪除”按鈕Command1,采用對分查找法在數(shù)組A中刪除該數(shù)(該數(shù)后面的數(shù)組元素都前移一位),并在標(biāo)簽Label2中顯示刪除后的結(jié)果(運(yùn)行效果如圖所示);否則,在標(biāo)簽Label2中顯示“該數(shù)沒有找到”. 實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯(cuò),請改正. Dim A(1To 10)As Integer′用于保存10個(gè)按從小到大順序排列的整數(shù) ′Form-Load事件過程產(chǎn)生10個(gè)整數(shù),按升序保存在數(shù)組A中,并在標(biāo)簽Label1中顯示 Private Sub Form-Load ( ) ′代碼略 End Sub Private Sub Command1-Click ( ?。?br />Dim I As Integer,j As Integer,m As Integer,k As Integer Dim x As Integer,f As Boolean′變量f用于標(biāo)記是否在數(shù)組中找到x x=Val(Text1.Text) i=1:j=10 f=False Do While (i<=j)And (f=False) m=Int((i+j)/2) If A(m)=x Then f=True If Then i=m+1Else j=m-1′(1) Loop If f=True Then For k=m To 9 ′(2) Next k Label2.Caption=”” For k=1to 9 Label2.Caption=Label2.Caption+Str(A(k))+”” Next k Else Label2.Caption=”該數(shù)沒有找到” End If End Sub.