VB_Python代码对照算法百题(005)

VB_Python代码对照算法百题(005)

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

==================

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180904G1C3VI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励