小明编写了一个有关整数闭区间合并操作的VB程序:从数据库读取闭区间数据(左端点和右端点),存储在数组a中,按区间数据左端点升序排序,然后进行合并操作,操作结果存储在数组b中。
例如,读取的数据为2、3、15、25、10、14、1、5、30、60、15、25,过程是:
⑴设置区间信息为[2,3],[15,25],[10,14],[1,5],[30,60],[15,25];
⑵按区间左端点升序排序,得到J区间信息为[1,5],[2,3],[10,14],[15,25],[15,25],[30,60],[15,25];
⑶合并区间,得到[1,5],[10,25],[30,60]。说明:区间[1,5]和[2,3]合并为[1,5],区间[10,14]和[15,25]合并为[10,25],区间[10,25]和[15,25]合并为[10,25],因此合并后的结果为:[1,5],[10,25],[30,60]三个区间。
程序功能如下:单击“读数据库”按钮Command1,程序从数据库读取数据,输出在文本框Text1中;单击“开始处理”按钮Command2,程序进行区间排序,并进行区间合并操作,操作后的结果输出在文本框Text2中。程序运行结果如图所示。
实现上述功能的VB程序如下,请回答下列问题:
(1)
Private Sub
Command1_CIick()中的Click()是(单选,填字母:A .对象名;B .属性名;C .事件名;D .事件处理过程名)
(2)
从数据库中读入的区间为[1,10],[15,20],[6,18],[25,30],[31,200],则合并操作后的区间为。
(3)
请在划线处填入合适的代码。
Dim a(1 To
100) As Integer ′数组a存储合并前的区间
Dim b(1 To
100) As Integer ′数组b存储合并后的区间
Dim n As
Integer ′n表示区间个数
Private Sub
Command1_Click()
Dim s1 As String, i As Integer
'读取数据,并存储到数组a中,并输出在文本框Text1中,代码略
End Sub
Private Sub
Command2_CIick()
Dim s2 As String, i As Integer, j As
Integer, k As Integer
Dim n
As Integer, t As Integer, x As Integer
For i=1
To n-1
For j=1
To 2 * n-2 * i Step 2
If
Then
t=a(j): a(j)=a(j+2): a(j+2)=t
t=a(j+1): a(j+1)=a(j+3): a(j+3)=t
End
If
Next
j
Next
i
k=2
b(1)=a(1):
b(2)=a(2)
i=2:
j=3
Do
While j <=2 * n
If
b(i) >=a(j) Then
If
b(i) <=a(j+1) Then
Else
If b(i)+1=a(j) Then
b(k)=a(j+l)
Else
k=k+1:
k=k+1:
b(k)=a(j+1)
i=i+2
End If
j=j+2
Loop
For x=1
To k-2 Step 2
s2=s2
& "[" & b(x) & "," &b(x+1) & "]"
& ","
Next
x
s2=s2
& "[" & b(x) & "," & b(x+1) & "]"
Text2.text=s2
End Sub
答案: 【1】C
【1】[1,20] [25,200]
【1】a(j)>a(j+2)【2】b(k)=a(j+ 1)【3】b(k)= a(j)