当前位置: 高中信息技术 / 综合题
  • 1. (2022·浙江模拟) 无重叠区间。在若干个区间中,删除重复区间,使得剩余区间互不重叠(区间[1,2]和[2,3]虽有边界值2相等,但不认为是重叠区间)。小李设计VB程序,在文本框Text1中输入用逗号分隔的整数,相邻两个整数表示一个区间(任意区间的左边数据小于右边数据)。如图中所示为区间[1,2],[2,3],[3,4],[2,4]。点击“判断”按钮Command1后,删除重复区间[2,4],在文本框Text2输出满足无重复区间时需要删除的最小区间数量。运行界面如图所示。

    1. (1) 若输入的区间集合为[2,4],[1,3],[3,4],[5,6],则需要删除区间的最小数量为
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Private Sub Command1_Click( )

          Dim a(1 To 100) As Integer

          Dim i As Integer, j As Integer

          Dim temp As Integer, k As Integer

          Dim res As Integer, ed As Integer

          '从文本框Text1中读入整数存储到数组a中,整数的个数存放在变量k中,代码略

          For i=1 Tok\ 2-1   '以区间左边数据为主要关键字升序排序

              For j=k\2 To i+1 Step-1

                  If  Then

                      temp=a(j*2-1):a(j*2-1)=a((j-1)*2-1):a((j-1)*2-1)=temp.

                      temp=a(j*2):a(j*2)=a((j-1)*2):a((j-1)*2)=temp

                  End If

              Next j

          Next i

          ed=a(2)

          res= 0

          For i=2 To k\2     '计算需要删除区间的最小数量

              If  Then

                  res=res+1

                  ed= min(ed, )

              Else

                  ed=a(i * 2)

              End If

          Next i

          Text2. Text= Str(res)

      End Sub

      Function min(x As Integer, y As Integer) As Inte-ger    '函数功能:返回x与y的最小值

      '代码略

      End Function

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