友情提示:380元/半年,儿童学编程,就上码丁实验室。
VB代码:
(2016年4月_浙江)16.某地1900-1999年的平均降水量数据保存在数据库中。现要求找出相邻两年年平均降水量变化(即本年度与上年度“年平均降水量”差值的绝对值)最大的年份区间。如果多个符合要求的年份区间,只输入距今最近的。小吴为此编写了VB程序,程序运行时,单击按钮Command1后,在文本框Text1中输出运行结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim w(1 To 100) AsSingle ‘依次存储1900-1999年的年平均降水量数据
Const n = 100
Private SubForm_Load()
‘本过程从数据库中按1900-1999年依次读取年平均降水量数据,并存储在数组w中
‘代码略
End Sub
Private SubCommand1_Click()
Dim i As Integer,imax As Integer
imax =1
For i = 3 To n
If Abs(w(i) – w(i – 1)) >= Abs(w(i – 1) – w(i -2)) Then imax = i
Next i
Text1.Text = “年平均降水量变化最大的年份区间是” + Str(imax + 1898)+ “-” + Str(imax + 1899)
End Sub
参考答案:
(1)2
(2)abs(w(imax)-w(imax-1))
Python代码:
w=[1756,1754,1875,962,1690,1897,1789,1768,1478,1945,1364,1234,1256,1456,1423,1756,1878,1456,1878,1787,1987,1654,1635,1536,1765,1980,1850,1765,1720,1743,1756,1746,1748,1789,1788,1488,1758,1756,1479,1423,1523,1543,1546,1523,1258,1359,1357,1356,1456,1459,1457,1458,1578,1579,1574,1576,1546,1548,1574,1678,1687,1698,1655,1623,1624,1654,1652,1678,1657,1644,1899,1399,1389,1356,1359,1357,1375,1367,1364,1988,1855,1457,1689,1788,1356,1235,1987,1568,1699,1654,1235,1238,1247,1599,1245,1356,1258,1345,1322,1222,]
n=len(w)
imax = 1
for i in range(2,n):
if abs(w[i] – w[i - 1]) >=abs(w[imax]-w[imax-1]):
imax = i
print(“年平均降水量变化最大的年份区间是” + str(imax + 1899) + “-” + str(imax + 1900))
Python代码运行结果如下:
年平均降水量变化最大的年份区间是1902-1903
>>>