求数组a 中非降序数列的方法,算法描述如下:
⑴用数组依次存储每个非降序数列中最大的元素(查找过程中的最大值),初始时b(1)为数组a第1个元素。
⑵加入方法:将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)中。
⑶若数组a各元素的值为:12,36,16,36,27,18时,则3个非降序数列分别为:“12,36,36”,“16,27”,“18”。
程序运行界面如下图所示:
小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)
代码"List1.Clear"中的 Clear 是 。(单选,填字母: A .对象名 /B .事件名 /C .属性名 /D
.方法名)
(2)
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const
m=15
Dim
a(1 To m) As Integer Private Sub Form_Load()
‘读取m个数据,依次存储到 a(1)、a(2)、……a(m)中,代码略End
Sub
Private
Sub Command1_Click()
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(b(n)) = Str(a(i)) End If Next i For i = 1 To bn List1.AddItem c(i) Next i Text2.Text = "数列中共有" + Str(bn) + "个非降序序列" End Sub ① ② ③
(3)
程序中加框处代码有错,请改正。
答案: 【1】D
【1】bn=1【2】a(i)>=b(j)【3】b(bn)=a(i)
c(j)=c(j)+str(a(i))