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

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

VB代码:

(2016年10月_浙江)14.写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Command1,在列表框List1中显示n个两数之和小于100的加法练习题。程序运行界面如图a所示。

                                          

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

    

       图a                             图b

(1)在设程序界面时,使应使用b示“件工具箱     (填相应编号)添加生成”按钮

2实现上述功能的VB程序如下,在划线处入合适的代码。

Private SubCommand1_Click()

  Dim n As Integer, i As Integer, a As Integer,b As Integer

  Randomize

  n = Val(Text1.Text)

i =    ① 

  Do While i<= n

     a = Int(Rnd * 100)

     b = Int(Rnd * 100)

     If    ②    Then

        List1.AddItem “(” + Str(i) +”)” + Str(a) + “+” + Str(b) + “=”

i = i + 1

    End If

  Loop

End Sub

(3)运行该程序,在文本框中输入5,单击“生成”按钮后,对语句a = Int(Rnd * 100)执行次数的描述,最合理的是       (单选,填字母:A.执行次数等于5 B.执行次数大于等于5  C.执行次数小于等于5)

 

参考答案:

(1)3  

(2)①1 ②a+b<100

(3)B

解析:本题功能是生成n个100以内的加法练习题,应思考两个问题:(1)如何控制生成指定数目的加法练习题?(2)如何使两数之和小于100。

第(1)题考查对象的添加,1为标签,2为文本框,3为命令按钮,4为列表框,生成”是按钮控件,图中控件工具箱中标识3为按钮控件。

在填写第(2)题第①个空格时,应联系上下文代码,上一行输入了变量n的值,下一行循环条件为i<=n,可以得出变量i存储的是练习题的题号,说明①处一定要为变量i赋初值,那么初值是0还是1呢,通过验证可知初值为1合理;填空②处表示当符合该条件表达式时,输出该加法练习题,题干中明确说明两数之和小于100,两个加数分别为a和b,故该条件表达式为a+b<100

第(3)题考查对程序功能的理解,在产生两个数时,存在不符合要求的情况(a+b)>=100时),由变量i负责对符合要求的题目计数,符合要求时,变量i增加1。不符合要求则i不计数,“a=int(rnd*100)”和“b=int(rnd*100)”再重新产生两个数。所以如果产生5个题,“a=int(rnd*100)”执行的次数可能大于或等于5次。

解答本题时要把握三要素,循环的范围是什么,如何判断是正确的解及解的输出形式。

在对变量进行赋初值时,要考虑初值的合理性。

Python代码:

import random

n=int(input(‘题数:n’))

i=1

while i<=n:

    a=random.randint(0,99)

    b=random.randint(0,99)

    if a+b<100:

        print(“(” +str(i) + “)” + str(a) + “+” + str(b) + “=”)

        i=i+1

Python代码运行结果:

题数:

5

(1)93+3=

(2)30+29=

(3)76+20=

(4)27+66=

(5)20+12=

>>> 

延伸阅读:

python中的随机函数

需要导入random模块

1、random.random

random.random()用于生成一个0到1的随机浮点小数: 0 <= n < 1.0

>>> random.random()        # Random float x,

2、random.uniform

random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a < b,则生成的随机数n: a <= n <= b。如果a >b, 则 b <= n <= a。

>>> random.uniform(1, 10)  #Random float x,

3、random.randint

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a <= n <= b

>>> random.randint(10, 100)

4、random.randrange

random.randrange的函数原型为:random.randrange([start], stop[,step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10,100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与random.choice(range(10, 100, 2) 等效。

随机选取0到100间的偶数:

>>> import random

>>> random.randrange(0, 101, 2)

5、random.choice

random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。

>>> random.choice(‘abcdefg&#%^*f’)  #随机字符

‘d’

>>> random.choice ( ['apple', 'pear', 'peach','orange', 'lemon'] ) #随机选取字符串:

‘lemon’

6、random.shuffle

random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:

p = ["Python", "is", "powerful","simple", "and so on..."] 

random.shuffle(p) 

print p 

#结果(因为随机,所以你的结果可能不一样。) 

#['powerful', 'simple', 'is', 'Python', 'and soon...'] 

p = ["Python", "is", "powerful","simple", "and so on..."]

7、random.sample

random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。 如果k大于sequence元素个数的话会报错。