最新消息:

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

Python 少儿编程 1563浏览 0评论

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 =
         

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

>>> 

 

您必须 登录 才能发表评论!