当前位置: 高中信息技术 / 综合题
  • 1. (2020·杭州模拟) 小明编写了一个有关整数闭区间合并操作的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. (1) Private Sub Command1_Click()中的Click()是(单选,填字母:A .对象名、B .属性名 、C .事件名、D .事件处理过程名)
    2. (2) 从数据库中读入的区间为[1,10],[15,20],[6,18],[25,30],[31,200],则合并操作后的区间为
    3. (3) 请在划线处填入合适的代码。

      Dim a(l To 100) As Integer ′数组a存储合并前的区间

      Dim b(l 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

微信扫码预览、分享更方便