16.某活動(dòng)要從 100 名參賽者中選出成績最高的前十名給予一定的獎(jiǎng)勵(lì)。活動(dòng)組織者編 寫了如下程序,功能是根據(jù)成績進(jìn)行排序,程序中數(shù)組 a 保存所有參賽者的組次,數(shù)組 b 保存對(duì)應(yīng) 的成績,如第 1 位參賽者的組次 1 保存在 a(1)中,成績保存在 b(1)中。程序界面如圖所示,左邊 列表框 List1 中顯示原始數(shù)據(jù)(序號(hào)和相應(yīng)的成績),單擊“排序”按鈕(Command1),排序后的結(jié) 果按成績從高到低顯示前 10 名選手的序號(hào)和成績?cè)诹斜砜?nbsp;List2 中,若最后一名成績有相同的也 一起輸出。界面如圖所示: 實(shí)現(xiàn)上述功能的 VB 程序如下,但加框處代碼有錯(cuò),請(qǐng)改正。 Const n=100 Dim a(1 To n) As Integer Dim b(1 To n) As Integer Private Sub Form_Load ( )'窗體被加載時(shí) ‘獲取原始數(shù)據(jù),將參賽者序號(hào)和最后得分分別存在數(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)實(shí)現(xiàn)上述功能的 VB 程序如下。請(qǐng)?jiān)跈M線處填入合適的代碼。 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