当前位置: 高中信息技术 / 综合题
  • 1. (2022·浙江模拟) 有多人在不同楼层要乘坐同一部电梯,所有人都是去往更高楼层,电梯初始位置为第一批用户出发的楼层位置。电梯在运行时,上升一层需耗时3秒,在某一层停留时(含电梯初始位置和电梯结束位置),不论有多少人进出都算8秒。小马同学利用,上述算法编写了一个VB程序,在列表框list1中显示所有人的出发与到达楼层,按照出发楼层升序(出发楼层相同按到达楼层升序)排序,在列表框list2中输出排序后结果,最后在文本框Text1 中输出电梯本次运行的总时间。程序运行界面如图所示,回答下列问题:

    1. (1) 若有5批用户出发与到达楼层分别是“10-25、5-15、15-20、15-30、5-10”,按照上述电梯运行规则,则电梯本次运行的总时间为秒,
    2. (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+1 Step -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

微信扫码预览、分享更方便