登录  注册

首页->2020年浙江高考技术

相关材料:

16.编写VB程序,功能是根据A城和B城同一时间段内的温度数据,计算两城温差(A城温度B城温度)A城数据和B城数据分别为包含若于个记录的序列,其中,A城每个记录包含温度及其截止时间,B城每个记录包含温度及其持续时长。两城温差计算结果表示为若干个记录的序列,每个记录包含温差及其持续时长。持续时长是指同一温度(或温差)保持不变的最大时长。示例见下表。

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

表中,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。

(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 Command l__ 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)

pl = ta(i)

If     ②    Then i =i+1

If p1 >= tb (j) Then

pl = tb(i)

j=j+1

End if

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

n=n+l

h(n) = diff

t(n) = pl- p0

Else

③         

End If

p0=pl

Loop

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

End Sub


正确答案
(2)①tb(i)+tb(i-1) ②ta(i)<=tb(j)或p1<=tb(j)或等价表达式 ③t(n)=t(n)+pl-p0

查看答案

继续答题:下一题
微考学堂微考学社