课件23张PPT。第八课 综合运用(附P37练一练及乘法练习的VB源程序)九年级信息技术(VB)学习目标
掌握随机数产生的方法
熟练运用选择结构设计程序
熟练运用循环结构设计程序复习选择结构循环结构任务分析单击“出题”命令按钮,随机产生10以内的乘法练习题。运行效果如图所示随机函数Rnd产生一个大于等于0且小于1的小数。
生成某个范围内的随机整数,可使用以下公式:
Int(Rnd*(Max-Min+1)+Min)
(其中Max为数据范围的上限,Min为下限)试一试用Rnd函数表示产生范围为1~9之间的随机整数
Private Sub Command1_Click()
Dim a As Integer
Max = 9
Min = 1
Randomize ’随机种子初始化
a = Int(Rnd * (Max - Min + 1) + Min)
Print a;
End Sub
界面设计Label2Label1Command1属性设计编写代码Private Sub Command1_Click()
Dim s As String
Dim a, b As Integer
Label2.Caption = "" '清空显示内容
Randomize '随机种子初始化
For i = 0 To 19
a = Int(Rnd * 9 + 1) ‘产生乘数
b = Int(Rnd * 9 + 1) ‘产生乘数
s = a & “-” & b & “=” ‘产生一个乘法练习式
Label2.Caption = Label2.Caption & s & " " '写入显示框
If i Mod 4 = 3 Then '一行显示4个练习式
Label2.Caption = Label2.Caption & vbCrLf
End If
Next i
End Sub
试一试将例子改为10以内的减法练习,要求被减数大于等于减数
Private Sub Command1_Click()
Dim s As String
Dim a, b As Integer
Label2.Caption = "" '清空显示内容
Randomize '随机种子初始化
For i = 0 To 19
a = Int(Rnd * 9 + 1) '产生减数(或被减数)
b = Int(Rnd * 9 + 1) '产生减数(或被减数)
If a >= b Then
s = a & "-" & b & "=" '产生一个减法练习式
ElseIf a < b Then
s = b & "-" & a & "="
End If
Label2.Caption = Label2.Caption & s & " " '写入显示框
If i Mod 4 = 3 Then '一行显示4个练习式
Label2.Caption = Label2.Caption & vbCrLf
End If
Next i
End Sub
效果如下一张PPT减法练习效果图补充知识1、Mod 运算符,用来对两个数作除法并且只返回余数。属算术运算符. Mod 运算符示例 本示例使用 Mod 运算符来对两数作除法运算,但返回其余数而非商数。如果两数中有一数为浮点数,该数会先被四舍五入成整型后再进行运算。
10 Mod 5 = 0。
10 Mod 3 = 1。
12 Mod 4.3 = 0。
12.6 Mod 5 = 3。
2、vbCrLf的含义是:
vbCr=Chr(13) 回车符vbLf=Chr(10) 换行符vbCrLf=Chr(13) & Chr(10) 回车+换行符 小结一、随机函数初始化:randomize
二、Rnd产生一个大于等于0且小于1的小数。
生成某个范围内的随机整数,可使用以下公式:
Int(Rnd*(Max-Min+1)+Min)
(其中Max为数据范围的上限,Min为下限)
如:要产生1~9的数字,可用Int(Rnd*9+1)
四、循环结构:
当循环次数确定时,可以用For…Next语句,格式为:
For 循环变量=初值 To 终值[Step 步长]
循环体
Next 循环变量
三、选择结构:
If 条件 Then 语句1[Else 语句2]
End If
或
If 条件 Then
语句1
[Else
语句2]
End ifThank You!练一练1 题目设计一个猜数游戏。程序自动产生一个数(不显示),让用户进行猜测,程序给出反馈:“大了”、“小了”或“相等”。参考答案一界面Private Sub Command1_Click()
Randomize
Dim a As Integer
Dim b As Integer
Dim s As String
a = Int(Rnd * 100)
s = "请输入"
For I = 1 To 10
b = Val(InputBox(s, "猜一猜"))
If b > a Then
s = "太大了,请重新输入"
ElseIf b < a Then
s = "太小了,请重新输入"
Else
MsgBox "相等,恭喜你,在第" & I & "次猜中了", vbInformation, "猜一猜"
Exit For
End If
Next I
If I > 10 Then '猜题结束
MsgBox "很遗憾,(答案是" & a & ")" & vbCrLf & "猜题结束", vbInformation, "猜一猜"
End If
End Sub
参考答案一源程序参考答案二界面 Dim i As Integer
Private Sub Command1_Click()
Dim a As Integer
Randomize '初始化随机种子
a = Int(100 * Rnd) '随机产生一个100以内的整数
Text1.Text = a '把随机数的值赋给文本框1.
i = 10
End Sub
Private Sub Command2_Click()
Text1.Visible = True
End Sub
Private Sub Command3_Click()
Text1.Visible = False
End Sub
Private Sub Command4_Click()
Dim a, b As Integer
a = Text1.Text '获取系统产生的随机数,并赋给变量a
b = Val(Text2.Text) '把用户输入的值赋给变量b
If b < a Then
i = i - 1
Label3.Caption = "猜小了,改大点,再试试"
ElseIf b > a Then
i = i - 1
Label3.Caption = "猜大了,改小点,再试试"
Else: Label3.Caption = "恭喜你,你猜对了!你可以点击显示答案按钮"
End If
If i = 1 Then MsgBox "注意:你猜测的次数已经超过10次了!", 2 + vbExclamation, "错误提示"
End Sub
参考答案二源程序随机产生10个不同的两位数(10~99),并输出练一练2 参考答案一注:这个题目要求太高,要用到数组。所以不合适。练一练2 参考答案一VB源程序Private Sub Command1_Click()
Cls
Dim a(1 To 10) As Integer
For i = 1 To 10
Randomize
a(i) = Int(Rnd * 90 + 10)
For j = 1 To i - 1
If a(i) = a(j) Then
i = i - 1
Exit For
End If
Next j
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
注:降低要求把题目改为:随机产生10个两位数(10~99),并输出。
练一练2 参考答案二Private Sub Command1_Click()
Dim a As Integer
Randomize
For i = 1 To 10
a = Int(Rnd * 90 + 10)
Print a
Next i
End Sub
练一练2 参考答案二VB源程序