16.某活動要從 100 名參賽者中選出成績最高的前十名給予一定的獎勵。活動組織者編 寫了如下程序,功能是根據(jù)成績進行排序,程序中數(shù)組 a 保存所有參賽者的組次,數(shù)組 b 保存對應(yīng) 的成績,如第 1 位參賽者的組次 1 保存在 a(1)中,成績保存在 b(1)中。程序界面如圖所示,左邊 列表框 List1 中顯示原始數(shù)據(jù)(序號和相應(yīng)的成績),單擊“排序”按鈕(Command1),排序后的結(jié) 果按成績從高到低顯示前 10 名選手的序號和成績在列表框 List2 中,若最后一名成績有相同的也 一起輸出。界面如圖所示: 實現(xiàn)上述功能的 VB 程序如下,但加框處代碼有錯,請改正。 Const n=100 Dim a(1 To n) As Integer Dim b(1 To n) As Integer Private Sub Form_Load ( ?。?窗體被加載時 ‘獲取原始數(shù)據(jù),將參賽者序號和最后得分分別存在數(shù)組 a 和數(shù)組 b 內(nèi),并在列表框 List1 中 顯示。代碼略 End Sub Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer,k As Integer,temp As Integer List2.Clear For i=1 To 10 k=i ‘① If b(k)<b(j) Then k=j End If Next j If k<>i Then temp=b(i):b(i)=b(k):b(k)=temp temp=a(i):a(i)=a(k):a(k)=temp End If List2.AddItem Str(a(i))+““+Str(b(i)) Next i m=10 For i=11 To n Ifthen‘② m=m+1 List2.AddItem Str(a(i))+““+Str(b(i)) End If Next i Label3.Caption=“本次十佳歌手一共有“+Str(m)+“組“End Sub
。 (2)實現(xiàn)上述功能的 VB 程序如下。請在橫線處填入合適的代碼。 Function cc(n As Integer) As String Dim s As String s=“012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/“ ①
End Function Private Sub Command1_Click ( ?。?br />Dim n As Integer,s As String,i As Integer,ss As String Dim a1 As Integer,a2 As Integer Dim b1 As Integer,b2 As Integer,b3 As Integer s=Text1.Text n=Len(s) ss=““ For i=1 To nStep 2 a1=Asc(Mid(s,i,1)) ②
b1=a1\8 b2=③
b3=a2 Mod 64 ss=ss+cc(b1)+cc(b2)+cc(b3)Next i Text2.Text=ss End Sub