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