16.每一本正式出版的圖書都有一個ISBM號碼與之對應,ISBN碼包括9位數字、1位識別碼和3位分隔符,格式如“x-xxx-xxxxx-x”,其中符號“-”是分隔符,最后一位是識別碼.識別碼的計算方法如下:首位數字乘以1加上次位數字乘以2…以此類推,用所得的結果除以11,所得的余數即為識別碼,如果余數為10,則識別碼為大寫字母X.例如ISBN號碼0-670-82162-4中的識別碼4是這樣得到的:對067082162這9個數字,從左至右,分別乘以1,2,…,9,再求和,即0×1+6×2+…+2×9=158,然后取158除以11的余數4作為識別碼. 小明用VB編寫了一個“驗證ISBN識別碼”的程序,界面如圖所示,在列表框List1中顯示ISBN碼,點擊“識別”按鈕Command1后,在List2中顯示出識別碼錯誤的ISBM碼. 實現上述功能VB代碼如下,但加框處代碼有錯,請改正. Dim a(1 To 100)As String'存儲ISBN號碼 Private Sub Command1_Click( ?。?br /> Dim st As String,ch As String,k As Integer,i As Integer Dim sum As Integer,number As Integer For i=1 To 100 st=a(i) k=0:s=0 For j=1 To '① ch=Mid(st,j,1) If ch>=“0“And ch<=“9“Then k=k+1 s=s+'② End If Next j number=s Mod 11 t=Mid(st,j+1,1) If t=“X“Then tnum=10 Else tnum=Val(t) End If If number<>tnum Then List2.AddItem“第“+Str(i)+“條“ End If Next i End Sub Private Sub Form_Load( ) '把所有的ISBN好保存在a數組中,代碼略 End Sub.
17.用VB編寫的英文單詞查找程序如圖所示,在文本框Text1中輸入文章,在Text2中輸入要查找的單詞,單擊“統計”按鈕Command1,在列表框List1顯示該單詞出現的位置及次數.算法如下: (1)將文本框Text1中的文章保存到字符串變量s中,Text2中的單詞保存到字符串變量s2中. (2)從左往右掃描字符串s,用字符串word存儲文章中依次出現的單詞,用整型變量b依次記錄文章中每個單詞的起始位置,用整型數組pos記錄匹配到的單詞的起始位置. 按如下方法掃描: ①從左往右掃描,當掃描到第i個字符時,如果是字母,繼續掃描,否則,跳轉到②,直至掃描結束; ②將b到i-1組成一個單詞word,與s2比較,如果相等,把該單詞的起始位置b記錄到pos數組中,并把b的值更新成下一個字符的位置,再跳轉到①. (3)將pos數組中的位置及出現的總次數依次顯示在列表框List1中. (1)實現上述功能的VB程序如下,請在橫線處填入合適的代碼. Private Sub Command1_Click( ?。?br /> Dim pos(1 To 1000)As Integer'存儲匹配到的單詞位置 Dim word As Srting'存儲每次掃描到單詞 Dim c As String,s As String,s2 As String Dim i As Integer,j As Integer,k As Integer b As Integer,slen As Integer s=Text1.Text slen=Len(s) s2=Text2.Text j=0'存儲每個單詞的長度 k=1'存儲匹配到第幾個單詞的下標 b=1'存儲每個單詞的起始位置 i=1 Do While i<=slen c=Mid(s,j,1) If c>=“a“And c>=“A“And c<=“Z“Then j=j+1 Else If j<>0 Then word=
If word=s2 Then pos(k)=b k=k+1 End If j=0 End If j=0 End If b=i+1 End If i=i+1 Loop List1.AddItem“單詞“+s2+“出現的位置為“ For i=1 To k-1 List1.AddItem Str(pos(i)) Next List1.AddItem“共出現“+
+“次 End Sub (2)根據本題算法,如圖所示,若在Text2中輸入“Your”單詞,查找結果