16.六一兒童節時,幼兒園組織小朋友們進行“尋寶”活動:老師找來10個盒子分別編號1-10號,把禮物裝入其中的4個盒子中,并把這10個禮品盒擺成一個圈供小朋友們“尋寶”.小朋友們都很興奮,覺得自己都能找到,但是老師對每個小朋友的尋寶路線是有規定的:從10號盒子出發(10號盒不裝禮物),第一個小朋友到1號盒子找,第二個小朋友隔1個盒子找(即3號盒子),第三個小朋友隔2個盒子找(即6號盒子),依此類推,次數不限.小朋友們幾乎找了一上午,都沒有人找到禮物.問禮物到底藏在哪4個盒子中?模擬上述過程的程序如下,程序運行結果如圖,但加框處代碼有誤,請改正,加線處請補充完整. Const n=10 Dim h(10)As Integer'h數組模擬10個盒子 Dim I As Integer Private Sub Form_Load ( ) For i=1To 10 h(i)=0'h數組元素值為0,表示沒有被訪問到 Next i End Sub Private Sub Command1_Click ( ) Dim j As Integer,number As Long number=0 For j=1To 1000'假設小朋友們輪流總共找了1000次 number=number+1'① i=number Mod n If h(i)=0Then②'h數組元素值為1,表示被訪問到 Next j For i=1To n-1'顯示裝有禮物的盒子 If h(i)=0Then List1.AddItem Str(i)+“號盒子“ End If Next i End Sub 加框處①有錯,應改為
Dim w(1to 17)As Integer'存放加權因子 Dim y(1to 10)As String'存放驗證碼 Dim sf As String'存放身份證號 Dim ks As Boolean'考生信息是否在考生庫
Private Sub Command1_Click( ) sf=Tex_1.Text If Then'① Lab_1.Caption=“驗證結果:正確的身份證號” If ks=True Then Lab_2.Caption=“正確的考生信息” Else Lab_2.Caption=“錯誤的考生信息” End If Else Lab_1.Caption=“驗證結果:錯誤的身份證號” End If End Sub
'yzsf函數用于驗證身份證號是否正確 Function yzsf(sfzh As String ) As Boolean Dim i As Integer,n As Integer w(1)=7:w(2)=9:w(3)=10:w(4)=5:w(5)=8 w(6)=4:w(7)=2:w(8)=1:w(9)=6:w(10)=3 w(11)=7:w(12)=9:w(13)=10:w(14)=5:w(15)=8 w(16)=4:w(17)=2 y(0)=”1”:y(1)=”0”:y(2)=”X”:y(3)=”9”:y(4)=”8” y(5)=”7”:y(6)=”6”:y(7)=”5”:y(8)=”4”:y(9)=”3” y(10)=”2” If Len(sfzh)=18Then n=0 For i=1to 17 n=n+② Next i n=n mod 11 If Mid(sfzh,n,1)=y(n) Then yzsf=True Else yzsf=Flase End IF Else MsgBox(“請輸入18位身份證號”) End IF End Function
Private Sub Form_Load( )'本過程用于驗證考生是否在考生庫中 Dim conn As New ADODB.Connection,rs As New ADODB.Recordset Dim intSQL As Long conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=“+App.Path+“\③“ conn.Open intSQL=“SELECT score FROM Integral“ Set rs.ActiveConnection=conn rs.CursorType=adOpenStatic rs.Open intSQL '本過程其他語句略 End Sub (1)加框處①有錯,應改為