15.為方便習題講解,需對某次考試中選擇題得分率數據進行統計分析,找出選擇題得分率最低的前m 項對應的題號及考點(若有與第 m 項得分率相同的,一并選取)。 編寫 VB 程序,實現上述功能。運行程序時,先讀取每個選擇題的題號、得分率和考點,顯示在列表框 List1 中。在文本框 Text1 中輸入得分率最低的前 m 項值,單擊“統計”按鈕,按照得分率從小到大升序排序,并在列表框 List2 中輸出得分率最低前 m 項的題號、得分率及考點。程序運行界面如圖所示。 請回答下列問題: (1)“統計”按鈕的事件過程名是
。 (2)實現上述功能的 VB 程序如下,請在橫線處填入合適的代碼。 (3)程序中加框處代碼有錯,請改正。 Dim n As Integer Dim th(0 To 100)As Integer,df(0 To 100)As Single,kd(1 To 100)As String Private Sub Form_Load( ) '讀取題號、得分率和考點分別存入數組 th、df 和 kd 數組,在列表框 List1 中顯示,代碼略 '選擇題的個數存入變量 n,代碼略End Sub Function dq(x As String,k As Integer) As String '固定數據的位數 dq=x Do While①
dq=dq+““ Loop End Function Private Sub Select_Click( ) Dim m As Integer,i As Integer,j As Integer,p As Integer,t As Integer,mm As Integer List2.Clear m=Val(Text1.Text) i=1 Do While i<=n-1 p=i For j=i+1 To n If ②
Then p=j Next j If p<>i Then t=th(i):th(i)=th(p):th(p)=t End If If Then Exit Do'改 錯 i=i+1 Loop ③
For i=1 To mm List2.AddItem dq(Str(th(i)),6)+dq(Str(df(th(i))),8)+dq(kd(th(i)),12) Next i End Sub
。(注:兩個數字之間請用逗號“”,隔開) (2)小李根據上述描述,設計了一個查找最大的空正方形起始位置和邊長的算法。算法的 VB 程序如下請在橫線處填入合適的代碼。 Const w=10 Const h=8 Dim d(1 To w*h) As Integer Private Sub Form_Load( ) '數組初始化,無障礙物的位置對應數組元素值為 0,有障礙物的位置對應數組元素數值為 1 End Sub Private Sub Command1_Click( ) Dim i As Integer,length As Integer,maxw As Integer Dim max As Integer max=0 For i=1 To w*h If i Mod w<>0 Then'判斷該位置是否需要查找 ①
If length>max Then max=length:maxw=i End If Next i '輸出最大空正方形的起始位置和邊長,代碼略。End Sub Function scan(k As Integer) As Integer Dim j As Integer Dim t As Integer,s As Integer Dim dw As Integer t=1 Do While k\w+1+t<h And②
s=0 dw=k+w+1 For j=1 To t^2 s=s+d(dw+w*((j-1)\t)+(j-1)Mod t) Next j If③
Then Exit Do'退出循環 Else t=t+1 End If Loop scan=t End Function