当前位置: 高中信息技术 / 综合题
  • 1. (2022·浙江模拟) 冬奥会的成功举办,让国民爱上了冰雪运动。某滑雪场改建一条趣味障碍赛道,根据改建要求,障碍物只能设置在相对平缓赛段。为测试滑雪场赛道的相关指标数据,工作人员在赛道上每间隔一段距离设置一个监测点。若出现连续三个及以上赛段的首尾监测点高度差不超过20 m,则称该赛段为相对平缓赛段。计算最长相对平缓赛段的总长度,再根据设定的障碍物间隔距离,计算该赛段中最多可设置障碍物的数量(要求障碍物相互之间距离、障碍物与相对平缓赛段的起始点之间的间距相等,且不小于设定的间距值)。

    编写VB程序,实现上述功能。运行程序,在列表框List1中显示20个监测点的高度(赛段最高点和最低点分别为第1个和第20个监测点)。在文本框Text1中输入设置障碍间距值,单击“设置”按钮Command1,在标签Label5中显示最多设置障碍物数量,若赛道中不含有相对平缓赛段,则在标签Label5中显示0。程序运行界面如图所示。

    1. (1) 如图所示,如果相对平缓赛段的长度为146m,则最多设置障碍物数量为
    2. (2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

      Const n=20

      Dim a(1 To 2*n) As Integer

      Private Sub Form_Load()

          '在数据库中读取20个监测点名称和其高度值在List1中显示。读取监测点高度值和每个监测点距赛道起点的距离值,存入数组a,其中a(1)、a(3)、a(5)…a(2*i-1)存储监测点高度值,a(2)、a(4)、a(6)…a(2*i)存储每个监测点距赛道起点的距离值,代码略

      End Sub

      Private Sub Command1_Click()

          Dim i As Single, cnt As Integer, p As Integer

          Dim max As Integer, s As Integer

          s=Val(text1.Text)

          smax=0

          For i=1 To n

              cnt=1

              Do While

                  cnt=cnt+1

              Loop

              If cnt-1 >=3 And cnt-1 > max Then

                  max=cnt-1

                 

              End If

          Next i

          i=smax

          If i=0 Then

              Label5.Caption=″0″

          Else

              p=0

              Do While i >=s

                  p=p+1

                  i=i / (p+1)

              Loop

              Label5.Caption=Str(p-1)

          End If

      End Sub

      Function judge(x As Integer, y As Integer) As Boolean

          judge=False

          jmin=x: jmax=x

          For m=

              If a(2*m-1) < a(2*jmin-1) Then jmin=m

              If a(2*m-1) > a(2*jmax-1) Then jmax=m

          Next m

          If a(2*jmax-1)-a(2*jmin-1) <=20 Then judge=True

      End Function

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