16.編寫VB程序,實(shí)現(xiàn)如下功能:在文本框Text1中輸入一個整數(shù),單擊“查找”按鈕,找出該整數(shù)的全部的連續(xù)整數(shù)固定和,并將它們顯示在列表框List1中.所謂一個數(shù)n的連續(xù)整數(shù)固定和,就是指存在a1,a2,…,an,其中ai+1比ai大1,使得a1+a2+…+an=n.這樣a1,a2,…,an稱為n的一個連續(xù)整數(shù)固定和.例如27的全部的連續(xù)整數(shù)固定和有3組,運(yùn)行界面如圖所示,實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯,請改正. Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,sum As Integer Dim n As Integer n=Val(Text1.Text) sum=0 List1.Clear For i=1To n'① j=i-1 Do While sum<=n'② j=j+1 sum=sum+j Loop If sum=n Then List1.AddItem Str(i) &“+…+“& Str(j) &“=“& Str(n) End If sum=0 Next i End Sub.
17.某移數(shù)字游戲的規(guī)則如下:有一個如圖a所示的包含9個圓圈的數(shù)陣.將1~8這8個數(shù)字隨機(jī)地填寫到該數(shù)陣的外層圓圈中,只剩下中間的一個空圓圈.規(guī)定每個數(shù)字只能按照數(shù)陣中的直線從一個圓圈移動到另一個空的圓圈中.通過若干步的移動,要求將該數(shù)陣中的數(shù)字移動成為如圖b所示的狀態(tài). 小張編寫了一個VB程序來解這個游戲,功能如下:點(diǎn)擊“初始化”按鈕Command1初始化游戲,程序隨機(jī)地將1~8這8個整數(shù)填入到數(shù)陣的外層圓圈中,同時將該狀態(tài)下的數(shù)陣顯示在列表框List1中.點(diǎn)擊“開始”按鈕Command2,程序開始移數(shù)字,并將移動過程中的每一步輸出在列表框List2中,最后統(tǒng)計總移動步數(shù)到標(biāo)簽Label1中.為了清楚地描述輸出數(shù)字在數(shù)陣中的每一步移動步驟,小張給數(shù)陣中的每一個圓圈都進(jìn)行了編號,具體編號方法如圖c所示,因此1號圈中的數(shù)字移動到2號圈可以表示為“1#-->2#”.程序運(yùn)行界面如圖d所示. 實(shí)現(xiàn)上述功能的VB代碼如下. (1)請在橫線處填入合適代碼 Dim a(1To 8)As String Private Sub Command1_Click ( ) Dim temp As Integer,i As Integer,j As Integer Dim flag(1To 8)As Boolean For i=1To 8
Next i Randomize For i=1To 8 temp=Int(Rnd ( )*8+1)'生成1~8之間的隨機(jī)整數(shù) Do While flag(temp) temp=Int(Rnd ( )*8+1)'生成1~8之間的隨機(jī)整數(shù) Loop a(i)=temp flag(temp)=True Next i List1.Clear List1.AddItem“初始狀態(tài):“ PrintCircle End Sub Private Sub Command2_Click ( ) Dim i As Integer,j As Integer,temp As String,n As Integer,moveStep As String moveStep=““ List2.Clear n=0 For i=1To 7'使用冒泡排序?qū)A圈中的數(shù)字進(jìn)行移動 For j=1To
If a(j)>=a(j+1)Then temp=a(j):a(j)=a(j+1):a(j+1)=temp moveStep=Str(j) &“#-->0#“ moveStep=moveStep &““& Str(j+1)&“#-->“& Str(j) &“#“moveStep=moveStep &““&“0#-->“& Str(j+1)&“#“ List2.AddItem moveStep n=n+1 End If Next j Next i List1.AddItem“移動數(shù)字后:“ PrintCircle Label1.Caption=“總移動步數(shù):“&
End Sub '在列表框List1中輸出當(dāng)前的數(shù)陣狀態(tài) Function PrintCircle ( ) List1.AddItem“-------------------------“ List1.AddItem“[“& a(1)&“]-[“& a(2)&“]-[“& a(3)&“]“ List1.AddItem“|\|/|“ List1.AddItem“[“& a(8)&“]-[“&““&“]-[“& a(4)&“]“ List1.AddItem“|/|\|“ List1.AddItem“[“& a(7)&“]-[“& a(6)&“]-[“& a(5)&“]“ List1.AddItem“-------------------------“ End Function (2)分析代碼和游戲規(guī)則,事件處理過程“Command2_Click”中的冒泡排序