16. 有多人在不同楼层要乘坐同一部电梯,所有人都是去往更高楼层,电梯初始位置为第一批用户出发的楼层位置。电梯在运行时,上升一层需耗时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 To k + 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.AddItem Str(a(i)) + Str(b(i))
Next i
End Sub