最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

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

Python 少儿编程 2043浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

VB代码:(2018年8月金丽衢12校)16.【加试题】小李统计2017年各国在浙江省旅游人数,设计了一个程序。程序运行时在列表框List1中输出已经按照大洲类别分类的信息,在文本框Text1中输入“大洲类别”如:欧洲,单击“查找排序”按钮Command2,将在列表框List2中输出该“大洲类别”旅游人数从低到的高信息。程序运行界面如第16题图所示:

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

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim k As Integer ‘k变量用来存放国家的个数
Private Sub Form
Load()
‘从数据库中读取数据并存储在相关变量中。aa()数组用来存放国家名称,bb()数组用来存放大洲类别, cc()数组用来存放旅游人数。
‘代码略
End Sub
Private Sub Command2_Click()
Dim zb(1 To 10) As String ‘用来存放大洲类别
Dim wz(1 To 10) As Integer ‘用来存放每类大洲开始的位置
Dim cd(1 To 10) As Integer ‘用来存放每类大洲的国家个数
Dim c As String, pos As Integer, ld As Integer
zb(1) = bb(1): wz(1) = 1: cd(1) = 1
n = 1
c = Text1.Text
For i = 2 To k  

    If bb(i) = zb(1) Then ①   

        cd(n) = cd(n) + 1  

    Else  

        n = n + 1  

        zb(n) = bb(i): cd(n) = 1: wz(n) = i  

    End If
Next i
For i = 1 To n  

    If zb(i) = c Then pos = wz(i): ld = cd(i)
Next i
For i =
pos To ld ②   

    For j = pos + ld – 1 To i + 1 Step -1  

        If cc(j) < cc(j – 1) Then  

            t = aa(j – 1): aa(j – 1) = aa(j): aa(j) = t

            t = cc(j – 1): cc(j – 1) = cc(j): cc(j) = t

        End If  

    Next j
Next i
For i = pos To pos + ld – 1  

    List2.AddItem aa(i) + ” ” + bb(i) + ” ” + Str(cc(i))
Next i
End Sub
程序中①处改为
        。(1分)
程序中②处改为
        。(2分)

参考答案如下:

(1)程序中(1)处应改为 bb(i) = zb(n)   (1分)

(2)程序中(2)处应改为 pos To pos + ld – 2 (2分)

        pos To pos + ld – 1 (1分)

Python代码如下:

aa=['菲律宾','韩国','日本','泰国','新加坡','印度','德国',
'俄罗斯','法国','荷兰','瑞典','瑞士','西班牙','意大利','英国','加拿大','美国']
bb=['亚洲','亚洲','亚洲','亚洲','亚洲','亚洲','欧洲','欧洲','欧洲',
'欧洲','欧洲','欧洲','欧洲','欧洲','欧洲','美洲','美洲']
cc=[61038,738539,717114,125147,168995,110701,158434,62749,123699,
19878,8052,28171,121332,194011,135582,121858,419638]
zb=['亚洲','欧洲','美洲']
wz=[0,0,0]
cd=[0,0,0]
zb[0] = bb[0]
wz[0] = 1
cd[0] = 1
n=0
c=input(‘请输入大洲类别:n’)
for i in range(1,17):  

    if bb[i]==zb[n]:  

        cd[n]=cd[n]+1  

    else:  

        n+=1  

        zb[n]=bb[i]  

        cd[n]=1  

        wz[n]=i
for i in range(n):  

    if zb[i]==c:  

        pos=wz[i]  

        ld = cd[i]
for i in range(pos,pos+ld-1+1):  

    print(aa[i]+’  ’+bb[i]+’  ’+str(cc[i]))
print(‘
*************‘)
for i in range(pos,pos+ld-2+1):  

    for j in range(pos+ld-1,i,-1):  

        if cc[j]<cc[j-1]:

aa[j],aa[j-1]=aa[j-1],aa[j]

cc[j],cc[j-1]=cc[j-1],cc[j]

for  i in  range(pos,pos+ld-1+1):

print(aa[i]+’  ’+bb[i]+’ ’+str(cc[i]))

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

VB_Python代码对照算法百题(024)Python代码运行结果如下:

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

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