求數組a 中非降序數列的方法,算法描述如下: (1)用數組依次存儲每個非降序數列中最大的元素(查找過程中的最大值),初始時 b(1)為數組 a 第 1 個元素。 (2)加入方法:將 a(i)與數組 b 中的每個元素依次逐個比較: 若 a(i)不比 b(j)小就用 a(i)替換 b(j)中的值;將 a(i)添加到第 j 個非降序數列中,并連接到 c 數組的 c(j)中。 若 a(i)比 b(j)都小,則在數組 b 最后添加新的元素值為 a(i),即將 a(i)添加到第 j+1 個下降數列中,并連接到 c 數組的 c(j+1)中。 (3)若數組a 各元素的值為:12,36,16,36,27,18 時,則 3 個非降序數列分別為:“12,36,36”,“16,27”,“18”。 程序運行界面如圖所示: 小明依據上述描述設計了如下 VB 程序。請回答下列問題: (1)代碼“List1.Clear“中的 Clear 是
D
D
。(單選,填字母:A.對象名/B.事件名/C.屬性名/D.方法名) (2)實現上述功能的 VB 程序如下,請在橫線處填上合適的代碼。 ①
bn=1
bn=1
②
a(i)>=b(j)
a(i)>=b(j)
③
b(bn)=a(i)
b(bn)=a(i)
(3)程序中加框處代碼有錯,請改正。 改正:
c(j)=c(j)+str(a(i))
c(j)=c(j)+str(a(i))
Const m=15 Dim a(1 To m) As Integer Private Sub Form_Load
1
1
'讀取m 個數據,依次存儲到 a(1)、a(2)、…a(m)中,代碼略End Sub Private Sub Command1_Click
1
1
Dim b(1 To m) As Integer'存儲數列最大的值Dim c(1 To m) As String'存儲非降序數列Dim i As Integer Dim bottom As Integer Dim j As Integer Dim bn As Integer'存儲非降序數列的個數List1.clear b(1)=a(1) ① c(1)=Str(a(1)) For i=2 To m For j=1 To bn If ②Then b(j)=a(i) Exit For End If Next j If j>bn Then bn=bn+1 ③ c(bn)=Str(a(i)) End If Next i For i=1 To bn List1.AddItem c(i) Next i Text2.Text=“數列中共有“+Str(bn)+“個非降序序列“ End Sub