中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

高中信息技術綜合庫——算法實例的程序實現1

資源下載
  1. 二一教育資源

高中信息技術綜合庫——算法實例的程序實現1

資源簡介

高中信息技術綜合庫——算法實例的程序實現1
一、高中信息技術綜合庫——算法實例的程序實現1
1.有如下VB程序段:
Dim a(1 to 5) as Integer, i as Integer, c as Integer
a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5
c = 0
For i = 3 to 5
If a(i - 2) + a(i - 1) = a(i) Then c = c + 1
Next i
Text1.Text = Str(c)
該程序運行后,文本框text1中顯示的內容是(  )
A.1 B.2 C.3 D.4
2.某倉庫物品代碼格式為“X-XXX-XXXXX-Y”,其中“X”和“Y”均為0到9之間的數字,“Y”為校驗碼。校驗碼由前面9個X計算得到,計算方法為:從左邊開始,第1個數字乘以1 加上第2個數字乘以2……依此類推,直到加上第9個數字乘以9,將該結果除以10,所得余數即為校驗碼。
小吳設計一個根據校驗碼校驗物品代碼的VB程序,功能如下:在文本框Text1中輸入物品代碼,單擊“校驗”按鈕Command1,如果輸入的校驗碼與計算所得的校驗碼一致,則輸出“校驗通過。”(如下左圖所示),否則輸出“校驗不通過!”(如下右圖所示)。
Dim s As String '用于存儲輸入的物品代碼
Dim t As String
Dim i As Integer, j As Integer
Dim sum As Integer '用于存儲計算校驗碼的累加和
Dim check_old As Integer '用于存儲輸入物品代碼中的校驗碼Y
Dim check_new As Integer '用于存儲按照前面9個數字X計算所得的新校驗碼
Dim a(1 To 10)As Integer
Private Sub Command1_Click()
'從物品代碼中取出9個數字X依次存儲到a(1)到a(9)中,取出校驗碼Y存儲到a(10)中
s= Text ①
j=0
For i=1 To 13
t=Mid(s, i, 1)
If(t>="0")And(t<="9") Then
j=j+1
a(j)=Val(t)
End If
Next i
'計算新的校驗碼并和輸入的校驗碼進行比較
sum=0
For i=1 To 9
sum=sum+ ②
Next i
check_new= ③
check_old=a(10)
If check_old=check_new Then
Label1.Caption="校驗通過。"
Else
Label1.Caption="校驗不通過! "
End If
End Sub
實現上述功能的VB程序如下,加框處代碼有錯,請改正。
3.對一個n×n的矩陣以“行”為單位進行升序排序,如下表所示是一個4×4的矩陣以行為單位進行升序排序。
小杜編寫了實現上述功能的程序,程序功能如下:程序運行時,在文本框Text1中輸入n(1<=n<=10),單擊“產生”按鈕Command1產生n×n個隨機數,隨機數的范圍為[0,9],隨機存儲在數組a中,并以矩陣的形式在列表框List1上顯示單擊“排序”按鈕Command2,對矩陣以“行”為單位進行升序排序,并在列表框List2輸排序后的矩陣。在程序運行界面如下圖所示,實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
Dim n As Integer
Dim a(1 To 100) As Integer
‘隨機生成數并存儲在List1中,代碼略
Private Sub Command1_Click() ‘按行排序
Dim i As Integer, j As Integer, t As Integer
Dim s As String
s=“”
For i=1 To   
k=i
For j=i+1 To    
If a(j)Next j
If k<> i Then t = a(k): a(k)=a(i): a(i)=t
If I Mod n=0 Then List2.AddItem s: s=“”
Next i
End Sub
Private Sub Command2_Click() ‘按列排序
Dim i As Integer, j As Integer, t As Integer
Dim s As String
s= “”
For i=1 To i-1
k=i
For j= i+n To    
If a(j)Next j
If k<> i Then t=a(k): a(k)=a(i): a(i)=t
If I Mod n=0 Then List2.AddItem s: s= “”
Next i
End Sub
4.小巖設計了一個順時針旋轉矩陣的程序,其功能為:運行程序時,在文本框Text1中輸入矩陣規(guī)模n,點擊“產生矩陣”按鈕Command1,在列表框List1中顯示一個n*n的矩陣,該矩陣數據由從1開始的連續(xù)自然數組成。點擊“旋轉矩陣”按鈕Command2,該矩陣順時針旋轉90度并顯示在列表框List2中,此后每點一次“旋轉矩陣”按鈕Command2,列表框List2中顯示的矩陣順時針旋轉90度。請完成程序填空。
Dim n As Integer
Dim st As String
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Private Sub Command1_Click()
'產生矩陣,代碼略
End Sub
Private Sub Command2_Click() '旋轉矩陣
For i=1 To n '行
st= “”
For j= 1 To n '列
b((i-1)*n+j)=    
st=st+adj(Str(b((i-1)*n+j)),3)
Next j
List2.AddItem st
Next i
End Sub
Function adj(a As String, n As Integer) As String
'在字符串a前加入適當的空格,使a的長度為n位,代碼略
End Function
5.在美國國家信息交換碼中,ASCII值從32到127是可以打印并顯示的字符,把這96個字符隨機調整次序,生成密碼本。根據輸入的密鑰和明文,單擊“加密”按鈕Command1,輸出密文。基本算法如下:
1)用數組mab分別記錄1~96個字符的ASCII值,用數組zm記錄對應字符在密碼本中位置,如mab(9)=65,表示密碼本中第9個字符是“A”,則對應的zm(65)=9;
2)把密鑰中每個字符的ASCII值的各個數字進行累加(如Hi分別為(7+2)+(1+0+5)),將累加的和除以9取余數后加7,作為將密碼本轉換成二維表的列數;
3)每個明文在轉換后二維表中位置作為密文,該位置是用十六進制表示的行號和列號。
程序運行的界面如下圖所示:
實現上述功能的VB程序如下,請回答以下問題:
(1)若輸入密鑰為“AB”,則根據算法及密碼本,字母“A”加密后的密文是   。
(2)請在劃線處填入合適的代碼。
Dim Mab(96) As Integer '存儲密碼本中每個字符的ASCII值
Dim zm(127) As Integer '存儲ASCII值32至127的字符在密碼本數組mab中的下標
Private Sub Form_Load()
'產生密碼本及96個字符在密碼本中位置,代碼略。
End Sub
Function p(s As String) As Integer
Dim i As
Integer, t1 As Long
Dim sum As
Integer, s1 As String
t1=0
i=1
Do While i<=Len(s)
s1=Mid(s,
i, 1)
t1=Asc(s1)
   
i=i+1
Loop
p=sum Mod 9+7
End Function
Private Sub Command1_Click()
Dim i As
Integer, t As Integer, hang As Integer
Dim s As
String, s1 As String, Lie As Integer
List1.Clear
s1=Text1.Text
t=p(s1)
Label5.Caption=
“將密碼本換成一張”+Str(t)+ “列的二維表”
i=1
Do While i<=96
s=s+Chr(Mab(i))+
“”
If i Mod
t=0 Or i=96 Then
List1.AddItem
s
s= “”
End If
i=i+1
Loop
wz=
“123456789ABCDEF”
s=Text2.Text
For i =1 To
Len(s)
s1=Mid(s,
i, 1)
   
hang=(t1-1)\t+1
lie=(t1-1)
Mod t+1
s2=
   
Next i
Text3.Text=s2
End Sub
6.數組a中存放著1到20間的正整數,要求對其中的元素進行分段排序,在文本框Text2中輸入每段元素的個數,在文本框Text3中顯示每段降序排序后的數據,其中多余的元素不做處理。具體界面如下圖所示:
實現該功能的VB程序如下,請在劃線處填入合適的代碼:
Dim a (0 To 100) As Integer
Const high=16
Private Sub Form_Load()
'產生high個隨機數,并顯示在文本框Text1,代碼略
End Sub
Private Sub Command1_Click()
Dim p As Integer, q As Integer, t As Integer
Dim m As Integer, n As Integer, k As Integer
m=Val(Text2.Text)
For i=1 To    
c=“”
For j=1 To m-1
   
q=i*m
k=sort(p, q)
If a(k)<>a(q) Then
t=a(p): a(p)=a(k): a(k)=t
End If
   
Next j
Text3.Text=Text3.Text+ “”+c
Next i
End Sub
Function sort(f As Integer, g As Integer) As Integer
s=f
For i=f+1 To g
If a(i)>a(s) Then
   
End If
Next i
sort=s
End Function
7.LZW編碼是一種自適應詞典編碼,通過建立一個字典,實現字符的編碼。假設輸入的字符串中僅有小寫字母和空格,編碼方法如下:
⑴初始時,建立一個空字典,把26
個小寫字母加入字典中。26 個小寫英文字母編碼為 1-26,字母“a”的編碼為 1,字母“b”的編碼為2,其它字母的編碼依次增加。
⑵從字符串第一個位置開始掃描,若遇到空格(空格用“*”表示),則得到一個單詞,截取該單詞并存入變量中。
⑶若該單詞在字典中,則取出該單詞在字典中的編碼值;否則,依次取出該單詞中各字母在字典中的編碼值,(編碼值之間用一個空格分隔),同時產生該單詞的編碼(編碼為字典中的最大編碼值加1),加入字典中。
⑷繼續(xù)掃描字符串,截取單詞,并按照步驟⑶的方法進行處理,直至整個字符串編碼完畢。字符串“ab ab”LZW編碼過程如圖所示。
(1)如果字符串為“ab bb bb”,則其LZW編碼為   。
(2)請在劃線處填入合適的代碼。
Dim pos As Integer, a(1 To 100)As String
Private Sub Form_Load()
'將字母“a”至“z”依次存入數組元素a(1)到a(26)
End Sub
Function judge(ss As String) As Integer '判斷字典中是否有ss這個單詞
Dim i As
Integer judge = 0
For i = 27 To
pos
If a(i)
=   Then judge = i
Exit For
End If
Next i
End Function
Private Sub Command1_Click()
Dim s As
String, i As Integer, j As Integer, k As Integer, ch As String, word As String,
result As String, Dim id As Integer, idletter As Integer
s = Text1.Text
pos = 26: i = 1
Do While i <=
Len(s)
j = i
Do While
Mid(s, j, 1) <> " "
j
= j + 1
If j >
Len(s) Then Exit Do
Loop
word =
Mid(s, i, j - i)
If
Len(word) = 1 Then '單個字母的單詞
result
= result + Str(Asc(word) -Asc("a") + 1)
Else
id =
judge(word)
If id
= 0 Then '新的單詞
For
k = 1 To Len(word) '依次處理該單詞中的各個字母編碼
ch = Mid(word, k, 1)
   
Next
k
pos
= pos + 1 '對該單詞編碼
a(pos)
= word
Else '詞典中存在該單詞
result
= result + Str(id) End If
End If
If j <
Len(s) Then result = result + " *"
   
Loop
Text2.Text =
result
End Sub
8.小李編寫VB程序,實現如下功能:在文本框Text1中輸入年份,點擊開始命令,在Label2標簽中顯示判斷平年閏年的結果。(閏年判斷條件:①普通閏年:能被4整除但不能被100整除的年份;②世紀閏年:能直接被400整除的年份)程序運行界面如下圖所示。
(1)在文本框中輸入1860,輸出結果是   。
(2)實現上述功能的VB程序如下,請在花線處填入合適代碼。
Private Sub Command1_Click()
Dim year As Integer
year =   
If     Or (year Mod 400 = 0) Then
Label2.Caption = Str(year) & "是閏年"
Else
Label2.Caption = Str(year) & "是平年"
End If
End Sub
答案解析部分
1.【答案】B
【知識點】循環(huán)結構語句及程序實現
【解析】【解答】分析程序:
當i=3時,a(1)+a(2)=2+ 1=3=a(3),執(zhí)行c=c+1=1;
當i=4時,a(2)+a(3)=1+3=4=a(4),執(zhí)行c=c+1=2;
當i=5時,a(3)+a(4)=3+4=7<>a(5),不執(zhí)行c=c+1,C=2。
故答案選B。
【分析】本題考查的是VB循環(huán)語句。for語句通過遍歷序列中的元素實現循環(huán),并通過序列的元素數量來控制循環(huán)次數,即循環(huán)過程中,序列中的每個元素都會依次被賦值給變量,并分別執(zhí)行一次循環(huán)體。
2.【答案】①處改為“Text1”;②處改為“a(i)*1”;③處改為“sum mod 10”
【知識點】分支結構語句及程序實現;循環(huán)結構語句及程序實現
3.【答案】n-1;(i- 1)\n*n;(n-1)*n+ (i-1) Modn +1 step n
【知識點】常見數據類型、數組;分支結構語句及程序實現;循環(huán)結構語句及程序實現
4.【答案】a(i+(n-j)*n)
【知識點】常見數據類型、數組;過程與自定義函數;循環(huán)結構語句及程序實現
5.【答案】(1)23
(2)sum=sum+t1\10+t1 Mod 10;t1=zm(Asc(s1));s2 + Mid(wz, hang, 1)+ Mid(wz, lie, 1)
【知識點】過程與自定義函數;循環(huán)結構語句及程序實現
6.【答案】high\m或int(high/m);p=(i-1)*m+j;C=C+ Str(a(p));s=i
【知識點】過程與自定義函數;排序算法及程序實現;循環(huán)結構語句及程序實現
7.【答案】(1)12*22*28
(2)ss;result=result +str(Asc(ch)-Asc("a")+ 1)或result=result +str(Asc(ch)-96);i=j+1
【知識點】過程與自定義函數;常用標準函數
8.【答案】(1)1860是閏年
(2)val(Text1.Text);year Mod 4=0 And year Mod 100<>0
【知識點】分支結構語句及程序實現
1 / 1高中信息技術綜合庫——算法實例的程序實現1
一、高中信息技術綜合庫——算法實例的程序實現1
1.有如下VB程序段:
Dim a(1 to 5) as Integer, i as Integer, c as Integer
a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5
c = 0
For i = 3 to 5
If a(i - 2) + a(i - 1) = a(i) Then c = c + 1
Next i
Text1.Text = Str(c)
該程序運行后,文本框text1中顯示的內容是(  )
A.1 B.2 C.3 D.4
【答案】B
【知識點】循環(huán)結構語句及程序實現
【解析】【解答】分析程序:
當i=3時,a(1)+a(2)=2+ 1=3=a(3),執(zhí)行c=c+1=1;
當i=4時,a(2)+a(3)=1+3=4=a(4),執(zhí)行c=c+1=2;
當i=5時,a(3)+a(4)=3+4=7<>a(5),不執(zhí)行c=c+1,C=2。
故答案選B。
【分析】本題考查的是VB循環(huán)語句。for語句通過遍歷序列中的元素實現循環(huán),并通過序列的元素數量來控制循環(huán)次數,即循環(huán)過程中,序列中的每個元素都會依次被賦值給變量,并分別執(zhí)行一次循環(huán)體。
2.某倉庫物品代碼格式為“X-XXX-XXXXX-Y”,其中“X”和“Y”均為0到9之間的數字,“Y”為校驗碼。校驗碼由前面9個X計算得到,計算方法為:從左邊開始,第1個數字乘以1 加上第2個數字乘以2……依此類推,直到加上第9個數字乘以9,將該結果除以10,所得余數即為校驗碼。
小吳設計一個根據校驗碼校驗物品代碼的VB程序,功能如下:在文本框Text1中輸入物品代碼,單擊“校驗”按鈕Command1,如果輸入的校驗碼與計算所得的校驗碼一致,則輸出“校驗通過。”(如下左圖所示),否則輸出“校驗不通過!”(如下右圖所示)。
Dim s As String '用于存儲輸入的物品代碼
Dim t As String
Dim i As Integer, j As Integer
Dim sum As Integer '用于存儲計算校驗碼的累加和
Dim check_old As Integer '用于存儲輸入物品代碼中的校驗碼Y
Dim check_new As Integer '用于存儲按照前面9個數字X計算所得的新校驗碼
Dim a(1 To 10)As Integer
Private Sub Command1_Click()
'從物品代碼中取出9個數字X依次存儲到a(1)到a(9)中,取出校驗碼Y存儲到a(10)中
s= Text ①
j=0
For i=1 To 13
t=Mid(s, i, 1)
If(t>="0")And(t<="9") Then
j=j+1
a(j)=Val(t)
End If
Next i
'計算新的校驗碼并和輸入的校驗碼進行比較
sum=0
For i=1 To 9
sum=sum+ ②
Next i
check_new= ③
check_old=a(10)
If check_old=check_new Then
Label1.Caption="校驗通過。"
Else
Label1.Caption="校驗不通過! "
End If
End Sub
實現上述功能的VB程序如下,加框處代碼有錯,請改正。
【答案】①處改為“Text1”;②處改為“a(i)*1”;③處改為“sum mod 10”
【知識點】分支結構語句及程序實現;循環(huán)結構語句及程序實現
3.對一個n×n的矩陣以“行”為單位進行升序排序,如下表所示是一個4×4的矩陣以行為單位進行升序排序。
小杜編寫了實現上述功能的程序,程序功能如下:程序運行時,在文本框Text1中輸入n(1<=n<=10),單擊“產生”按鈕Command1產生n×n個隨機數,隨機數的范圍為[0,9],隨機存儲在數組a中,并以矩陣的形式在列表框List1上顯示單擊“排序”按鈕Command2,對矩陣以“行”為單位進行升序排序,并在列表框List2輸排序后的矩陣。在程序運行界面如下圖所示,實現上述功能的VB程序如下,請在劃線處填入合適的代碼。
Dim n As Integer
Dim a(1 To 100) As Integer
‘隨機生成數并存儲在List1中,代碼略
Private Sub Command1_Click() ‘按行排序
Dim i As Integer, j As Integer, t As Integer
Dim s As String
s=“”
For i=1 To   
k=i
For j=i+1 To    
If a(j)Next j
If k<> i Then t = a(k): a(k)=a(i): a(i)=t
If I Mod n=0 Then List2.AddItem s: s=“”
Next i
End Sub
Private Sub Command2_Click() ‘按列排序
Dim i As Integer, j As Integer, t As Integer
Dim s As String
s= “”
For i=1 To i-1
k=i
For j= i+n To    
If a(j)Next j
If k<> i Then t=a(k): a(k)=a(i): a(i)=t
If I Mod n=0 Then List2.AddItem s: s= “”
Next i
End Sub
【答案】n-1;(i- 1)\n*n;(n-1)*n+ (i-1) Modn +1 step n
【知識點】常見數據類型、數組;分支結構語句及程序實現;循環(huán)結構語句及程序實現
4.小巖設計了一個順時針旋轉矩陣的程序,其功能為:運行程序時,在文本框Text1中輸入矩陣規(guī)模n,點擊“產生矩陣”按鈕Command1,在列表框List1中顯示一個n*n的矩陣,該矩陣數據由從1開始的連續(xù)自然數組成。點擊“旋轉矩陣”按鈕Command2,該矩陣順時針旋轉90度并顯示在列表框List2中,此后每點一次“旋轉矩陣”按鈕Command2,列表框List2中顯示的矩陣順時針旋轉90度。請完成程序填空。
Dim n As Integer
Dim st As String
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Private Sub Command1_Click()
'產生矩陣,代碼略
End Sub
Private Sub Command2_Click() '旋轉矩陣
For i=1 To n '行
st= “”
For j= 1 To n '列
b((i-1)*n+j)=    
st=st+adj(Str(b((i-1)*n+j)),3)
Next j
List2.AddItem st
Next i
End Sub
Function adj(a As String, n As Integer) As String
'在字符串a前加入適當的空格,使a的長度為n位,代碼略
End Function
【答案】a(i+(n-j)*n)
【知識點】常見數據類型、數組;過程與自定義函數;循環(huán)結構語句及程序實現
5.在美國國家信息交換碼中,ASCII值從32到127是可以打印并顯示的字符,把這96個字符隨機調整次序,生成密碼本。根據輸入的密鑰和明文,單擊“加密”按鈕Command1,輸出密文。基本算法如下:
1)用數組mab分別記錄1~96個字符的ASCII值,用數組zm記錄對應字符在密碼本中位置,如mab(9)=65,表示密碼本中第9個字符是“A”,則對應的zm(65)=9;
2)把密鑰中每個字符的ASCII值的各個數字進行累加(如Hi分別為(7+2)+(1+0+5)),將累加的和除以9取余數后加7,作為將密碼本轉換成二維表的列數;
3)每個明文在轉換后二維表中位置作為密文,該位置是用十六進制表示的行號和列號。
程序運行的界面如下圖所示:
實現上述功能的VB程序如下,請回答以下問題:
(1)若輸入密鑰為“AB”,則根據算法及密碼本,字母“A”加密后的密文是   。
(2)請在劃線處填入合適的代碼。
Dim Mab(96) As Integer '存儲密碼本中每個字符的ASCII值
Dim zm(127) As Integer '存儲ASCII值32至127的字符在密碼本數組mab中的下標
Private Sub Form_Load()
'產生密碼本及96個字符在密碼本中位置,代碼略。
End Sub
Function p(s As String) As Integer
Dim i As
Integer, t1 As Long
Dim sum As
Integer, s1 As String
t1=0
i=1
Do While i<=Len(s)
s1=Mid(s,
i, 1)
t1=Asc(s1)
   
i=i+1
Loop
p=sum Mod 9+7
End Function
Private Sub Command1_Click()
Dim i As
Integer, t As Integer, hang As Integer
Dim s As
String, s1 As String, Lie As Integer
List1.Clear
s1=Text1.Text
t=p(s1)
Label5.Caption=
“將密碼本換成一張”+Str(t)+ “列的二維表”
i=1
Do While i<=96
s=s+Chr(Mab(i))+
“”
If i Mod
t=0 Or i=96 Then
List1.AddItem
s
s= “”
End If
i=i+1
Loop
wz=
“123456789ABCDEF”
s=Text2.Text
For i =1 To
Len(s)
s1=Mid(s,
i, 1)
   
hang=(t1-1)\t+1
lie=(t1-1)
Mod t+1
s2=
   
Next i
Text3.Text=s2
End Sub
【答案】(1)23
(2)sum=sum+t1\10+t1 Mod 10;t1=zm(Asc(s1));s2 + Mid(wz, hang, 1)+ Mid(wz, lie, 1)
【知識點】過程與自定義函數;循環(huán)結構語句及程序實現
6.數組a中存放著1到20間的正整數,要求對其中的元素進行分段排序,在文本框Text2中輸入每段元素的個數,在文本框Text3中顯示每段降序排序后的數據,其中多余的元素不做處理。具體界面如下圖所示:
實現該功能的VB程序如下,請在劃線處填入合適的代碼:
Dim a (0 To 100) As Integer
Const high=16
Private Sub Form_Load()
'產生high個隨機數,并顯示在文本框Text1,代碼略
End Sub
Private Sub Command1_Click()
Dim p As Integer, q As Integer, t As Integer
Dim m As Integer, n As Integer, k As Integer
m=Val(Text2.Text)
For i=1 To    
c=“”
For j=1 To m-1
   
q=i*m
k=sort(p, q)
If a(k)<>a(q) Then
t=a(p): a(p)=a(k): a(k)=t
End If
   
Next j
Text3.Text=Text3.Text+ “”+c
Next i
End Sub
Function sort(f As Integer, g As Integer) As Integer
s=f
For i=f+1 To g
If a(i)>a(s) Then
   
End If
Next i
sort=s
End Function
【答案】high\m或int(high/m);p=(i-1)*m+j;C=C+ Str(a(p));s=i
【知識點】過程與自定義函數;排序算法及程序實現;循環(huán)結構語句及程序實現
7.LZW編碼是一種自適應詞典編碼,通過建立一個字典,實現字符的編碼。假設輸入的字符串中僅有小寫字母和空格,編碼方法如下:
⑴初始時,建立一個空字典,把26
個小寫字母加入字典中。26 個小寫英文字母編碼為 1-26,字母“a”的編碼為 1,字母“b”的編碼為2,其它字母的編碼依次增加。
⑵從字符串第一個位置開始掃描,若遇到空格(空格用“*”表示),則得到一個單詞,截取該單詞并存入變量中。
⑶若該單詞在字典中,則取出該單詞在字典中的編碼值;否則,依次取出該單詞中各字母在字典中的編碼值,(編碼值之間用一個空格分隔),同時產生該單詞的編碼(編碼為字典中的最大編碼值加1),加入字典中。
⑷繼續(xù)掃描字符串,截取單詞,并按照步驟⑶的方法進行處理,直至整個字符串編碼完畢。字符串“ab ab”LZW編碼過程如圖所示。
(1)如果字符串為“ab bb bb”,則其LZW編碼為   。
(2)請在劃線處填入合適的代碼。
Dim pos As Integer, a(1 To 100)As String
Private Sub Form_Load()
'將字母“a”至“z”依次存入數組元素a(1)到a(26)
End Sub
Function judge(ss As String) As Integer '判斷字典中是否有ss這個單詞
Dim i As
Integer judge = 0
For i = 27 To
pos
If a(i)
=   Then judge = i
Exit For
End If
Next i
End Function
Private Sub Command1_Click()
Dim s As
String, i As Integer, j As Integer, k As Integer, ch As String, word As String,
result As String, Dim id As Integer, idletter As Integer
s = Text1.Text
pos = 26: i = 1
Do While i <=
Len(s)
j = i
Do While
Mid(s, j, 1) <> " "
j
= j + 1
If j >
Len(s) Then Exit Do
Loop
word =
Mid(s, i, j - i)
If
Len(word) = 1 Then '單個字母的單詞
result
= result + Str(Asc(word) -Asc("a") + 1)
Else
id =
judge(word)
If id
= 0 Then '新的單詞
For
k = 1 To Len(word) '依次處理該單詞中的各個字母編碼
ch = Mid(word, k, 1)
   
Next
k
pos
= pos + 1 '對該單詞編碼
a(pos)
= word
Else '詞典中存在該單詞
result
= result + Str(id) End If
End If
If j <
Len(s) Then result = result + " *"
   
Loop
Text2.Text =
result
End Sub
【答案】(1)12*22*28
(2)ss;result=result +str(Asc(ch)-Asc("a")+ 1)或result=result +str(Asc(ch)-96);i=j+1
【知識點】過程與自定義函數;常用標準函數
8.小李編寫VB程序,實現如下功能:在文本框Text1中輸入年份,點擊開始命令,在Label2標簽中顯示判斷平年閏年的結果。(閏年判斷條件:①普通閏年:能被4整除但不能被100整除的年份;②世紀閏年:能直接被400整除的年份)程序運行界面如下圖所示。
(1)在文本框中輸入1860,輸出結果是   。
(2)實現上述功能的VB程序如下,請在花線處填入合適代碼。
Private Sub Command1_Click()
Dim year As Integer
year =   
If     Or (year Mod 400 = 0) Then
Label2.Caption = Str(year) & "是閏年"
Else
Label2.Caption = Str(year) & "是平年"
End If
End Sub
【答案】(1)1860是閏年
(2)val(Text1.Text);year Mod 4=0 And year Mod 100<>0
【知識點】分支結構語句及程序實現
1 / 1

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 内黄县| 大丰市| 仁化县| 贡山| 安新县| 天柱县| 循化| 咸宁市| 什邡市| 灌阳县| 延吉市| 乌鲁木齐县| 温泉县| 霍林郭勒市| 宝清县| 正阳县| 咸丰县| 商洛市| 琼中| 酒泉市| 长丰县| 青阳县| 行唐县| 三河市| 嘉义市| 江北区| 惠水县| 鱼台县| 宿松县| 那曲县| 翁牛特旗| 南投市| 明溪县| 凭祥市| 昌黎县| 本溪市| 天津市| 元谋县| 中江县| 仙游县| 太仆寺旗|