16.查找峰值問題:隨機生成n個正整數(假設n=20,取值范圍為0~100),存儲于數組a 中,將這些數按順序映射在坐標軸上,相鄰的數用直線相連,構建了類似于“心電圖”的折線: 編寫VB程序統計所有的峰值(peak)、峰值數量( count)和最高點(high)。 實現上述功能的ⅤB程序如下,橫線處的代碼有錯誤,請改正。 Const n=20 Dim a(l To n)As Integer Private Sub Form_Load( ) “隨機生成n個數,存儲于數組a中,并輸出在Listl中。 “代碼略。 End sub Private Sub Command1_Click( ) Dim count As Integer Dim high As Integer Dim peak As Integer Dim i As Integerj As Integer count=0 if a(1)>a(2)then count=1 high=-1 i=1 Do While i<n-1 j=i+1 If a(j)>a(j-1)Then Do While a(j)>a(j-1) j=j+1 Lop count=count+1 ① List2.AddItem“第“+Str(count)+“個峰值:“+Str(peak) If peak>high Then high=peak ② Else i=i+1 End If Loop List2.AddItem“共有:““+Str(coun+)+“個峰值:“+Str(peak) List2.AddItem“最高點是:“+Str(high) End Sub
17.波波同學一直夢想買彩票中500萬大獎,他收集了最近100期“雙色球”開獎信息,存儲于 data.accdb文件中,并使用VB軟件編寫了“雙色球投注建議”程序,程序根據最近100期開獎信息統計出現概率最低的6個紅色球號碼和1個藍色球號碼,給出投注建議。如果藍色球有多個概率最低的號碼,則輸出多個,紅色球不考慮并列概率最低情況。 注:福彩“雙色球”玩法:在1-33個紅色球號碼中隨機生成6個號碼,在1-16個藍色球號碼中隨機生成1個號碼,共計6+1個號碼開獎。 程序運行界面如圖所示: (1)實現上述功能的VB程序如下請完善橫線處的代碼。 Dim red(1 To 600)As Integer“用于存儲100*6紅色球信息 Dim blue(1 To 100)As Integer“用于存儲100*1藍色球信息 Private Sub Form_Load( ) “本過程用于從數據庫 data.accdb中讀取最近100期雙色球開獎信息 “將100*6個紅色球開獎信息依次存儲在數組red( )中 “將100*1個藍色球開獎信息依次存儲在數組blue( )中 “將最近100期開獎信息格式化后顯示在列表框Listl中 “本過程代碼略 End Sub Private Sub Commandl_Click( ) Dim min As Integer Dim s As string Dim f(1 To 33)As Integer “------以下開始處理藍色球部分--------- For b=1 To 100 f(blue(b))=f(blue(b))+1 Next b min=100 For i=1 To 16 If f(i<min Then min=f(i) Next i For i 1 To 16 If f (i)=min Then s=①
f(i)=0 Next i List2.AddItem“藍色球重點買入:“+s “---------以下開始處理紅色球部分-------- For r=1 To 600 ②
Next r ③
For i=1 To 6“查找概率最低的6個紅球數字 k=1 For j=2 To 33 if f(j)<f(k) Then k=j Next j s=s+Str(k) f(k)=100 Next i list2.AddItem“紅色球重點買入:“+s“第(2)題紅球購買建議 End Sub