1.某數(shù)據(jù)壓縮方法描述如下:
(1)原始數(shù)據(jù)中,某數(shù)不為0且相鄰無重復,壓縮數(shù)據(jù)用該數(shù)據(jù)表示;
(2)原始數(shù)據(jù)中,某數(shù)為0且相鄰無重復,壓縮數(shù)據(jù)用兩個數(shù)表示,第1個位0,第2個為0;
(3)原始數(shù)據(jù)中,某數(shù)據(jù)相鄰有重復,壓縮數(shù)據(jù)用3個數(shù)表示:第1個位0,第2個為重復數(shù)的個數(shù),第3個為該數(shù)本身;
根據(jù)上述壓縮方法,對應的解壓縮方法示例如圖a所示.
小明編寫了一個解壓送VB程序,功能如下:窗體加載時,自動讀取壓縮數(shù)據(jù),依次存儲在數(shù)組元素a(1)、a(2)、a(3)…中,壓縮數(shù)據(jù)的個數(shù)存儲在變量n中,壓縮數(shù)據(jù)顯示在文本框Text1中.單擊“解壓縮”按鈕Command1,程序?qū)嚎s數(shù)據(jù)依次進行解壓縮處理,解壓縮數(shù)據(jù)顯示在文本框Text2中.程序運行界面如圖b所示.
(1)如果壓縮數(shù)據(jù)為“23,0,21,66,0,0,77,0,5,0”,則解壓縮數(shù)據(jù)的個數(shù)是
.
(2)實現(xiàn)上述功能的VB程序如下.請在橫線處填入合適代碼.
Dim a(1To 100)As Integer'存儲壓縮數(shù)據(jù),最大處理個數(shù)為100
Dim b(1To 1000)As Integer'存儲解壓縮數(shù)據(jù),最大處理個數(shù)為1000
Dim n As Integer'存儲壓縮數(shù)據(jù)的個數(shù)
Private Sub Form_Load ( ?。?br />'壓縮數(shù)據(jù)由上述壓縮方法生成
'本過程用于讀取壓縮數(shù)據(jù)并存儲在數(shù)組a,壓縮數(shù)據(jù)個數(shù)存儲在變量n中
'代碼略
End Sub
Private Sub Command1_Click ( )
Dim pa As Integer'存儲壓縮數(shù)組當前處理位置
Dim pb As Integer'存儲解壓縮數(shù)組當前處理位置
Dim firstdata As Integer,count As Integer,i As Integer
pa=1:pb=1
Do While pa<=n
firstdata=a(pa)
If firstdata<>0Then'示例1情況處理
b(pb)=firstdata
pa=pa+1:pb=pb+1
Else
count=a(pa+1)
If count=0Then'示例2情況處理
b(pb)=0
pa=
①:pb=pb+1
Else'示例3情況處理
For i=1To count
②Next i
pa=pa+3:pb=pb+count
End If
End If
Loop
Text2.Text=Str(b(1))
For i=2To
③Text2.Text=Text2.Text+“,“+Str(b(i))
Next i
End Sub.