有多人在不同楼层要乘坐同一部电梯,所有人都是去往更高楼层,电梯初始位置为第一批用户出发的楼层位置。电梯在运行时,上升一层需耗时3秒,在某一层停留时(含电梯初始位置和电梯结束位置),不论有多少人进出都算8秒。小马同学利用上述算法编写了一个VB程序,在列表框list1中显示所有人的出发与到达楼层,按照出发楼层升序(出发楼层相同按到达楼层升序)排序,在列表框list2 中输出排序后结果,最后在文本框Text1中输出电梯本次运行的总时间。程序运行界面如图所示,回答下列问题:
(1)
若有5批用户出发与到达楼层分别是“10-25、5-15、15-20、15-30、5-10”,按照上述电梯运行规则,则电梯本次运行的总时间为秒。
(2)
给划线处填上合适代码,使程序完整。
Dim a(1 To 10) As Integer, b(1 To 10) As Integer
Private Sub Command1_Click( )
Dim i As Integer, time As Integer, k As Integer
Dim c(1 To 20) As Integer, nc As Integer
c(1)=a(1):nc=1
For i=1 To 9 '删除起点重复数据后添加到数组c
If a(i)<>a(i+1) Then
nc=nc+ 1
End If
Next i
For i=1 To 10 '删除终点重复数据后添加到数组c
k=nc
Do While b(i) < c(k)
k=k- 1
Loop
If Then '非重复数据( 新停靠楼层)添加到数组c
For j=nc Tok+ 1Step-1
c(j+1)=c(j)
Next j
nc=nc+ 1
c(j+1)=b(i)
End If
Next i
time= (c(nc)-c(1))* 3+ nc* 8
Text1.Text="总时间-" + Str(time)+"秒"
End Sub
Private Sub Form_ Load( )
'生成10批人的起止楼层,分别给数组a和b,并在列表框list1输出,代码略。
For i=1 To 9
For j=10 To i+1 Step-1
If a(j)<a(j- 1) Or Then
t=a(j):a(j)=a(j-1):a(j- 1)=t
t=b(j):b(j)=b(j-1):b(j- 1)=t
End If
Next j
Next i
For i=1 To 10
List2.Addtem Str(a(i)+Str(b(i))
Next i
End Sub
答案: 【1】123
【1】c(nc) = a(i + 1)【2】b(i) <> c(k) 或 b(i) > c(k)【3】a(j) = a(j - 1) And b(j) < b(j - 1)