当前位置: 高中信息技术 / 综合题
  • 1. (2020·浙江) 编写VB程序,功能是根据A城和B城同一时间段内的温度数据,计算两城温差(A城温度B城温度)A城数据和B城数据分别为包含若于个记录的序列,其中,A城每个记录包含温度及其截止时间,B城每个记录包含温度及其持续时长。两城温差计算结果表示为若干个记录的序列,每个记录包含温差及其持续时长。持续时长是指同一温度(或温差)保持不变的最大时长。示例见下表。

    时间

    第1小时

    第2小时

    第3小时

    第4小时

    第5小时

    第6小时

    第7小时

    A城温度

    30

    30

    33

    33

    31

    31

    32

    A城数据

    温度

    30

    33

    31

    32

    截止时间

    2

    4

    6

    7

    B城温度

    20

    20

    20

    22

    21

    21

    22

    B城数据

    温度

    20

    22

    21

    22

    持续时长

    3

    1

    2

    1

    计算结果

    温差

    10

    13

    11

    10

    持续时长

    2

    1

    1

    3

    (时间单位:小时,温度单位:摄氏度)

    表中,A城数据有4个记录,其中第1个记录为(温度30,截止时间2),第2个记录为(温度33,截止时间4),这表明从开始到第2小时的温度都是30,此后到第4小时的温度都是33。B城数据有4个记录,其中第3个记录为(温度21,持续时长2),这表明第5、第6这2个小时的温度都是21。两城温差计算结果的第4个记录为(温差10,持续时长3),这表明第5第6、第7这3个小时的温差都是10。

    1. (1) 若将示例中A城数据修改为3个记录,依次是(温度30,截止时间4)、(温度31,截止时间6)、(温度32,截止时间7),B城数据不变,则两城温差计算结果中第1个记录为(温差10,持续时长)(填数值)。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Const m =1000                ‘温度数据和温差数据包含的记录数都少于1000

      Dim na As Integer, nb as integer   ‘A、B城数据分别有na和nb个记录

      Dim ha(m)As Integer        ‘ha(i)存储A城第i个记录中的温度

      Dim ta(m)As Integer          ‘ta(i)存储A城第i个记录中的截止时间

      Dim hb(m)As Integer          ‘hb(i)存储B城第i个记录中的温度

      Dim tb(m)As Integer          ‘tb(i)存储B城第i个记录中的持续时长

      Dim h(m)As Integer          ‘h(i)存储计算结果第i个记录中的温差

      Dim t(m)As Integer            ‘t(i)存储计算结果第i个记录中的持续时长

      Private Sub Command1_ Click( )

          Dim i As Integer, j As Integer

          Dim p0 As Integer, p1 As Integer, diff As Integer

          Dim n As Integer        ‘两城温差数据的记录个数

           ‘读取两城数据,存入变量ma,nb及数组ha,ta,hb,tb中,代码略

          For i=2 To nb

              tb(i)=    ‘将B城第i个记录中的持续时长转换为截止时间

          Next i

          i=1 : j=1

          n=0

          p0=0

          Do While i < na And i<= nb

              diff ha(i)-hb(j)

              p1 = ta(i)

              IfThen i =i+1

              If p1 >= tb (j) Then

                  p1 = tb(i)

                  j=j+1

              End if

              If n = 0 Or diff <> h(n) Then

                  n=n+1

                  h(n) = diff

                  t(n) = pl-p0

              Else

                 

              End If

              p0=pl

          Loop

           ‘输出两城温差数据,代码略

      End Sub

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