16.有序序列合并. 將兩個不下降有序序列合并為一個不下降有序序列.下面程序模擬該功能,程序界面如圖所示,單擊“生成序列一”按鈕Command1生成10個有序數(shù)字,并在List1中顯示,單擊“生成序列二”按鈕Command2生成10個有序數(shù)字,并在List2中顯示,單擊“序列合并”按鈕Command3,將兩組數(shù)據(jù)進(jìn)行合并,并在List3中顯示. 序列一中的數(shù)據(jù)存儲在a數(shù)組中,序列二中的數(shù)據(jù)存儲在b數(shù)組中,合并后的數(shù)據(jù)存儲在c數(shù)組中. 實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯,請改正. Dim a(1To 10)As Integer Dim b(1To 10)As Integer Dim c(1To 20)As Integer Private Sub Command1_Click
'生成10個不下降有序數(shù)字,存儲在a(1)到a(10)中,并在List1中顯示 '代碼略 End Sub Private Sub Command2_Click
'生成10個不下降有序數(shù)字,存儲在b(1)到b(10)中,并在List2中顯示 '代碼略 End Sub Private Sub Command3_Click
'將數(shù)a組和b數(shù)組合并,存儲在c數(shù)組中 Dim i As Integer,j As Integer,k As Integer i=1'變量i表示a數(shù)組中第1個未處理的數(shù) j=1'變量j表示b數(shù)組中第1個未處理的數(shù) t=0'變量t表示c數(shù)組中已加入的數(shù)的個數(shù) Do While'第(1)處錯誤 t=t+1 If a(i)<b(j)Then c(t)=a(i) i=i+1 Else c(t)=b(j) j=j+1 End If Loop
If i<=10Then For k=i To 10 t=t+1 '第(2)處錯誤 Next k End If If j<=10Then For k=j To 10 t=t+1 c(t)=b(k) Next k End If List3.Clear For i=1To 20 List3.AddItem(Str(c(i))) Next i End Sub.
17.小明想用VB編程制作一個名次計算器,首先將同學(xué)的成績錄入到計算機(jī)中,同時存放在數(shù)組a中,顯示在左邊列表框中.點(diǎn)擊“排序”按鈕后,程序會將成績從高到低依次排序顯示在右邊的列表框中.運(yùn)行界面如圖所示,請在兩個橫線處填入代碼. Dim a(1To 100)As Single Dim shu As Integer Private Sub Command1_Click Dim i,j,k As Integer Dim t As Single For i=1To shu-1 k=i For j=i+1 To shu If ①
Then t=a(j):a(j)=a(k):a(k)=t End If Next j Next i For i=1 To shu List2.AddItem“第“& Str(i) &“名:“& Str(a(i)) Next i End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Dim cj As Single If KeyAscii=13Then cj=Val(Text1.Text) If cj>0Then ②
List1.AddItem Str(shu) &“:“& Str(cj) a(shu)=cj End If Text1.Text=““ End If End Sub.