题目

无重叠区间。在若干个区间中,删除重复区间,使得剩余区间互不重叠(区间[1,2]和[2,3]虽有边界值2相等,但不认为是重叠区间)。小李设计VB程序,在文本框Text1中输入用逗号分隔的整数,相邻两个整数表示一个区间(任意区间的左边数据小于右边数据)。如图中所示为区间[1,2],[2,3],[3,4],[2,4]。点击“判断”按钮Command1后,删除重复区间[2,4],在文本框Text2输出满足无重复区间时需要删除的最小区间数量。运行界面如图所示。 (1) 若输入的区间集合为[2,4],[1,3],[3,4],[5,6],则需要删除区间的最小数量为。 (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 答案: 【1】1 【1】a((j- 1)*2- 1)> a(j*2-1)【2】a(i*2-1)<ed【3】a(i*2)
信息技术 试题推荐
最近更新