友情提示:380元/半年,儿童学编程,就上码丁实验室。
VB代码:
(2016年10月_浙江)14.编写“加法练习题生成器”程序,实现如下功能:在文本框Text1中输入题数n,单击“生成”按钮Command1,在列表框List1中显示n个两数之和小于100的加法练习题。程序运行界面如图a所示。
图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元素个数的话会报错。