學校“電腦周“活動已經結束,林敏在班里舉行了一個“我最關注的競賽項目“的投票活動,她設計了一個Visual Basic程序,把所有同學的投票情況輸入到電腦里,先將各項目得票數(shù)和項目名分別保存在數(shù)組a和數(shù)組b中,第i個項目的得票數(shù)保存在a(i)中,對應的項目名保存在b(i)中。
程序界面如圖所示,左邊列表框List1中顯示同學評選的原始數(shù)據(jù),單擊“得票統(tǒng)計“按鈕(Command1),所有得票數(shù)從高到低顯示在列表框List2中。
解決此問題的算法流程圖如圖所示,排序部分的程序段如下:
Dim a(1To n) As Single
Dim b(1To n) As String
Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer,k As Integer,x As Single,y As String
For i=1To n-1'假設共有n個競賽項目
k=i
For j=i+1To n
If a(k)<a(j) Then ①
Next j
If k<>i Then
x=a(i)
a(i)=a(k)
a(k)=x
y=b(i)
b(i)=b(k)
b(k)=y
②
Next i
For i=1To n
List2.AddItem Str(a(i))+““+b(i)
Next i
End Sub
Private Sub Form_Load ( ?。?br />'此過程用于對數(shù)組a和數(shù)組b進行初始賦值,代碼略
End Sub
(1)解決此問題用的算法是
選擇排序
選擇排序
。 (選填:選擇排序 或 冒泡排序)
在程序①和②橫線處,填入適當?shù)恼Z句或表達式,把程序補充完整:
(2)程序中①橫線處應填入
k=j
k=j
。
(3)程序中②橫線處應填入
end if
end if
。