学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
在一条直线道路上,起点和离起点L远(1≤L≤1000)的终点处均有一面旗子。在起点和终点之间有N(0≤N≤500)个标记点,每个标记点到起点的距离分别为ai(0<ai<L),在每个标记点上最多可插入一面旗子。现在需要在起点和终点之间插入t面旗子,使得道路上任意两面旗子之间的最小距离尽可能大。

若L=25,N=3,t=2时,3个标记点位罝到起点的距离分别为7、13、15,可将2面旗子插到3个标记点中任意两个位置上,各种插旗方案如图所示。


根据上述方案,可知旗子间最大的最小距离为7。
编写VB程序,实现上述功能。运行程序,在文本框Text1中输入终点位置L,在文本框Text2中输入起点和终点之间的标记点数量N,在文本框Text3中输入要求插入的旗子数t,单击“计算”按钮Command1后,在标签Label5中输出旗子间最大的最小距离。程序运行界面如图所示。

(1)若L=20,N=4,t=2,随机生成的4个标记点到起点的距离分别为2、9、15、16,则旗子间最大的最小距离为______。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Dim L As Integer,N As Integer,t As Integer
Dim a(501)As Integer
Private Sub Command1_Click( )
Dim i As Integer,j As Integer,m As Integer
L=Val(Text1.Text):N=Val(Text2.Text):t=Val(Text3.Text)
’随机生成[1,L-1]范围内N个不重复的整数,并赋值给数组元素a(1)~a(N),代码略a(0)=0:a(N+1)=L
For i=N-1 To 1 Step -1   ’对随机生成的标记点位罝进行升序排序
For j= ________
If a(j)>a(j+1)Then temp=a(j):a(j)=a(j+1):a(j+1)=temp
Next j
Next i
For i=0 To N+1
List1.AddItem Str(a(i))
Next i
i=1:j=a(N+1)-a(0)
Do While i<j
m=(i+j)\ 2
If _______ Then i=m+1 Else j=m
Loop
Label5.Caption="旗子间最大的最小距离是:"+Str(i-1)
End Sub
Function ok(m As Integer)As Integer
Dim p As Integer,c As Integer
p=a(0):c=0
For i=1 To N+1

If p+m>a(i)Then

c=c+1

Else

________

End If

Next i
ok=c
End Function
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

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

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

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