学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
数轴上有n个闭区间,现要删除尽可能少的区间,使剩下的区间都不相交。若区间与另一区间之间仅有端点是相同的,不算做区间相交,例如,[1,2]和[2,3]是不相交区间。解决该问题的算法思想:(1)首先对所有区间进行排序:右端点为主要关键字,左端点为次要关键字都升序排序;(2)然后在排序后的结果中依次统计不相交的区间个数,最后根据不相交的区间个数计算需删掉的区间个数。
编写VB程序,实现上述功能:程序运行时,随机产生n个闭区间(保证左端点值<右端点值),并排序后显示在列表框List1中。单击“计算”按钮后,在列表框List2中显示最终区间情况,在文本框Text1中显示删除区间的个数。程序运行界面如图所示。
请回答下列问题:
(1)界面中“计算”按钮的对象名为________________。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。

Const n=5
Dim a(1 To 2*n)As Integer
Dim d(1 To 2*n)As Integer
Private Sub Form_Load()
’随机产生n个闭区间,a(1)、a(2)为第1个
区间的左端点和右端点,a(3)、a(4)为第2
个区间的左端点和右端点,…a(2*n-1)、
a(2*n)为第n个区间的左端点和右端点。
For i=1 To n-1
For j=i+1 To n
If a(2*i)〉a(2*j)0r___________________Then
t=a(2*i):a(2*i)=a(2*j):a(2*j)=t
t=a(2*i-1):a(2*i-1)=a(2*j-1):a(2*j-1)=t
End If
Next j
Next i
’排序后的区间情况显示在列表框List1中,代码略。
End Sub
Private Sub Cmdl_Click()
Dim k As Integer,i As Integer,c As Integer
c=1
List2.Addltem"["+Str(a(1))+","+Str(a(2))+"]"
k=_______________
For i=2 To n
If 2*i-1 >k ________Then
c=c+1
k=a(2*i)
List2.AddItem"["+Str(a(2*i-1))+","+Str(a(2*.i))+"]"
End If
Next i
Text1.Text="删除"+_________________+"个区间"
End Sub
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交