学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
数轴上有n个开区间(ai,bi),其中ai,bi都是正整数,开区间不含端点。现要挑选出尽量多的区间,使得任意两个区间都没有公共部分,如有公共部分即为相交。选择区间的算法设计如下:
例如有开区间:(7,12)、(10,12),(2,6),(11,15)
(1)排序。按照bi从小到大排序,当bi相同时,按照ai从大到小排序。
排序结果:(2,6)、(10,12)、(7,12)、(11,15)
(2)挑选。第一个区间必选,然后依次选出与前面已选的区间不相交的区间。
挑选结果:(2,6)、(10,12)
根据上述算法描述,设计程序界面如图所示,在文本框Text1中按格式输入原始区间,点击“计算”按钮后,在文本框Text2中按顺序输出最多的没有公共部分的区间。

依据上述描述设计如下VB程序:
Const n=10                        '程序最多处理10个区间
Dim a(1 To 2 * n)As Integer
'a(1),a(2)存放第1区间的下限和上限,a(3),a(4)存放第2区间的下限和上限
Private Sub Command1_Click()
Dim i As Integer,j As Integer,k As Integer,c As Integer
Dim pl As Integer,p2 As Integer
Dim s As String
'读取文本框Text1中的区间数据,按要求存入数组a中
s="":ss="":j=1
For i=1 To Len(Textl.Text)
S=Mid(Text1.Text,i,1)
If s>="0"And s<="9"Then
ss=ss+s
Else
If ss<>""Then
a(j)= Val(ss)
ss=""
j=j+1
End If
End If
Next i
'排序
c=(j-1)/2         '区间个数
For i=1 To c-1
k=i
For j=i+1 To c
If    Or a(2 * k)=a(2 * i)And a(2 * k-1)<a(2 * j-1)Then
k-j

End If

Next j
If k<>i Then
t=a(2 * i-1):a(2 * i-1)=a(2 * k-1):a(2 * k-1)=t
t=a(2 * i):a(2 * i)=a(2 * k):a(2 * k)=t
End If
Next i
'挑选
pl=1:p2=2
res="("+Str(a(1))+","+Str(a(2))+")"    '第一个区间必选
Do While p2<=c

If NotIn(pl,p2)Then

res=res+"、("+Str(a(2 * p2-1))+","Str(a(2 * p2))+")"
p1=    
p2=p2+1
Else
p2=p2+1
End If
Loop
Text2.Text=res
End Sub
Function NotIn(m As Integer,n As Integer)As Boolean   '检查区间不相交
If    Then
NotIn= True
Else
NotIn= False
End If
End Function
请回答下列问题:
(1)对于给定区间(5,9)、(12,17)、(10,20)、(1,5)、(7,9)、(3,6)则选择的第2个区间是________________________________________。
(2)请在划线处填入合适的代码。
①_______________________________
②_______________________________
③_______________________________
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

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
我要答疑
编写解析
解析:

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

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