16.小劉編寫了一個求序列所有子序列和的程序。程序能夠輸 出所有的子序列的和,同時輸出最大的子序列和。如序列中有三個元素 a(1),a(2),a(3),其子序列包括“a(1),a(2)”,“a(1),a(2),a(3)”,“a(2),a(3)”。 程序運行界面如圖所示。 實現(xiàn)上述功能的VB程序如下(數(shù)組每一項的值都為[-100,100]內(nèi)的隨機整數(shù)),請將程序代碼補充完整。 Private Sub Command1_Click ( ) Dim a(1To10)AsInteger Dim b(10)AsInteger Dim i As Integer,j As Integer Dim k As Integer,max As Integer Randomize max=-32768 List1.Clear List2.Clear b(0)=0 Fori=1To10 a(i)=
17.在一個文檔中,每行包含一個字符串。現(xiàn)使用如下規(guī)則對其壓縮:壓縮時,對于每個字符串求其與前一字符串的公共前綴,然后使用公共前綴的長度和字符串的剩余部分(以空格隔開)表示該字符串,每個空格和字符都會占用一個字節(jié)空間。圖a所示為該壓縮規(guī)則示意圖。小明為此編寫了VB程序,功能如下:運行程序時,在列表框List1中顯示原字符串內(nèi)容,單擊“壓縮”按鈕Command1,在列表框List2中顯示壓縮后字符串,并在標(biāo)簽Label2中顯示壓縮后容量。程序運行界面如圖b所示。 實現(xiàn)上述功能的 VB 代碼如下,但橫線處代碼有錯,請改正。 Dim word(3000)As String,pre(3000)As String Const n=2000 Private Sub Form_Load ( ) '該過程的作用是從數(shù)據(jù)庫讀取 n 個單詞,按字典順序存儲在數(shù)組 word 中,并在 Label1輸出單詞數(shù)量和容量 '代碼略 End Sub Private Sub Command1_Click ( ) Dim conp As Integer'存儲壓縮后的容量 Dim f As Boolean,m As Integer,k As Integer'k 存儲公共前綴的長度 conp=0 For i=1To n k=0 If i=1Then f=False Else f=True '(1) Do While k<m And f=True If Mid(word(i),1,k+1)=Mid(word(i-1),1,k+1)Then ′(2) Else f=False End If Loop pre(i)=CStr(k)+““+Mid(word(i),k+1,Len(word(i))) 'Cstr ( )函數(shù)能夠?qū)?shù)字類型的值轉(zhuǎn)換為字符類型的值,并卻掉前導(dǎo)空格。 List2.AddItem pre(i) '(3) Next i Label2.Caption=“壓縮后容量為“+Str(conp)+“字節(jié)“ End Sub