选择嵌套多选择结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
If End If Else End If不能
If
9
练习:输入一个年份, 练习:输入一个年份,请判断该年 是否为闰年。 是否为闰年。
闰年的条件是: 1.该年可被4整除,但不能 被100整除。 2.如果能被100整除,再看 是否可以被400整除。
10
Y = InputBox("请输入您要判定的年份", "输入框") If Y Mod 4 = 0 And Y Mod 100<>0 _ Or Y Mod 400=0 Then Rn = "是闰年" Else Rn = "不是闰年" End If Print Y & Rn
11
开始
程序语句组
Y Y Y
Y能被100 整除吗?
Y能被4 整除吗?
N 不是闰年
Y能被400 整除吗?
N 是闰年
N 是闰年 不是闰年
输出是否闰年 结束
12
输入数据年份Y 否 Y可以被4整除吗? 是
Y可以被100整除吗?
否
是
Y可以被400 整除吗?
Y不是闰年 Y是闰年
是
否
Y是 闰年 输出计算结果
Y不是 闰年
13
Y = InputBox("请输入您要判定的年份", "输入框") If Y Mod 4 = 0 Then If Y Mod 100 = 0 Then If Y Mod 400 = 0 Then Rn = "是闰年" Else Rn = "不是闰年" End If Else Rn = "是闰年" End If Else Rn = "不是闰年" End If Print Y & Rn
6
先判断三个数据是否为正数。再判断 能否构成一个三角形,即任意二边之 和大于第三边。 如果能:按公式计算;如果不能,给出 不能构成三角形的信息,其它的给出出 错信息。
选择嵌套
从键盘上输入三个数据,求这三个数能否构成三角形, 从键盘上输入三个数据,求这三个数能否构成三角形,如果能请 计算其面积;如不能,给出不能构成三角形的信息,其它给出出 计算其面积;如不能,给出不能构成三角形的信息 其它给出出 错信息。 错信息。 S= r (r − a )(r − b)(r − c)
计算 数
选择嵌套
从键盘上输入三个数据,求这三个数能否构成三角形, 从键盘上输入三个数据,求这三个数能否构成三角形,如果能请 计算其面积;如不能,给出不能构成三角形的信息,其它给出出 计算其面积;如不能,给出不能构成三角形的信息 其它给出出 错信息。 错信息。 S= r (r − a )(r − b)(r − c)
7
8
不 能 交 叉
A=Val(Inputbox(“请输入第一条边:”)) B=Val(Inputbox(“请输入第二条边:”)) C=Val(Inputbox(“请输入第三条边:”)) If A > 0 And B > 0 And C > 0 Then If A + B > C And B + C > A And A + C > B Then P = (A + B + C) / 2 S = Sqr(P * (P - A) * (P - B) * (P - C)) Print “该三角形的面积为:” & S Else Print“不能构成三角形!” End If Else Print “输入 !” End If
24
25
作业
1 + sin x − x − 1 :Y= x
2 2
要求: 1. 写出伪代码。 2. 画出N-S图或流程图。 3. 利用Case多分支结构写出VB代码。 4. 上机时调试运行。
26
常见错误
1.在选择结构中缺少配对的结束语句 对多行式的If块语句中,应有配对的 End If语句 对多行式的If块语句中, If语句 If块语句中 结束。 结束。 多边选择ElseIf ElseIf关键字的书写和条件表达式的 2. 多边选择ElseIf关键字的书写和条件表达式的 表示 ElseIf 不要写成Else If; 不要写成Else If; Case语句的使用 3. Select Case语句的使用 Select Case 后不能出现多个变量;Case子句 后不能出现多个变量;Case子句 后不能出现变量
选择嵌套
1 例如:计算函数:Y= x
5
不 能 交 叉
x = Val(InputBox(“”,””)) If x<=0 Then If X=0 Then Print “x =“ & x & “ Else Print “x =“ & x & “ End If Else Print “y=” & 1/sqr(x) End If
程序语句组2
程序语句组m
18
以计算是否为闰年为例: 以计算是否为闰年为例:
Y = InputBox("请输入您要判定的年份", "输入框") If Y Mod 400 = 0 Then Rn = "是闰年" ElseIf Y Mod 100 = 0 Rn = "不是闰年" ElseIf Y Mod 4 = 0 Then Rn = "是闰年" Else Rn = "不是闰年" End If Print Y & Rn
按上述公式计算。
选择嵌套
1 例如:计算函数:Y= x
输入数据
4
X不能按 不能按 上式计算 时的处理
当x<=0时,是不能 按上述公式计算。那 么当x=0时,除数不 能为0。否则x为负数, 负数不能开方。
只有当x>0时,可以
否
X不小于0吗?
是 否
是 计算x的开方的倒数
X等于0吗?
按上述公式计算。
X为0不 X小于0 能做除数 不能开方 输出结果
1 例如:计算函数:Y= x
N 输入数据
3
X不能按 不能按 上式计算 时的处理
Y N X=0吗?
X<=0吗?
当x<=0时,是不能 按上述公式计算。那 么当x=0时,除数不 能为0。否则x为负数, 负数不能开方。
只有当x>0时,可以
计算 Y=1/sqr(x) Y X不能按上式计算 时的处理。 X不能做除数 X不能按上式 X不能开平方 计算
1 例如:计算函数:Y= x
x = Val(InputBox(“”,””)) Select Case x Case Is=0 Print “x =“ & x & “不能按上式计算。” Case Is<0 Print “x =“ & x & “负数不能开平方。” Case Else Print “y=” & 1/sqr(x) End Select
19
这种结构适合于根据条件进行多种可能的操作。
1 例如:计算函数:Y= x
Dim Y As Variant X=Val(InputBox(请输入一个 请输入一个 输入框” 数”,“输入框”) 输入框 If X > 0 Then Y=1/Sqr(X) ElseIf X<0 Y=X & “是一个负数, 是一个负数, 是一个负数 不能开方。 不能开方。” Else Y=“除数不能为零。” 除数不能为零。 除数不能为零 End If Print Y
当x>0时,可以按上 述公式计算。 当x=0时,除数不能 为0。 当x<0时,负数不能 开方。
20
作业
1 + sin x − x − 1 :Y= x
2 2
要求: 1. 写出伪代码。 2. 画出N—S图或流程图。 3. 利用多分支结构写出VB代码。 4. 上机时调试运行。
21
又一种多分支
Select Case 测试表达式 Case 条件表达式表 1 语句组 1 Case条件表达式表 2 语句组 2 …… Case条件表达式表 n 语句组 n Case Else 语句组 n+1 End Select
22
Select Case 测试表达式 Case 条件表达式表 1 语句组 1 Case条件表达式表 2 语句组 2
wk.baidu.com
Case条件表达式表 n 语句组 n Case Else 语句组 n+1 End Select
条件表达式表,又称域值,可以是下列形式之一: 1. 表达式1,[,表达式2] [,表达式3]…… [,表达式m] Case 2,4,6 或 Case “A”,“C”,“E” 2. 表达式1 To表达式2 Case “A” To “Z” 或 Case 1 To 10 3. Is关系运算表达式 IS>=5 或 Is < a+b
1
高级工程师 教 授
选择嵌套
1 例如:计算函数:Y= x
当x<=0时,是不能 按上述公式计算。那 么当x=0时,除数不 能为0。否则x为负数, 负数不能开方。 只有当x>0时,可以 按上述公式计算。 N
计算 Y=1/sqr(x)
输入数 据
2
X<=0吗?
Y
X不能 不能 按上式 计算时 的处理
选择嵌套
A=Val(Inputbox(“请输入第一条边:”)) B=Val(Inputbox(“请输入第二条边:”)) C=Val(Inputbox(“请输入第三条边:”)) If A > 0 And B > 0 And C > 0 Then If A + B > C And B + C > A And A + C > B Then P = (A + B + C) / 2 S = Sqr(P * (P - A) * (P - B) * (P - C)) Print “该三角形的面积为:” & S Else Print“不能构成三角形!” End If Else Print “输入数据无效!” End If
23
练习:输入年份计算属相(嵌套和多分支)
'本程序采用了SELECT CASE 分 情况语句来计算属相 N = Val(Text1.Text) R = N Mod 12 Select Case R Case 0 Sx = "猴" Case 1 Sx = "鸡" Case 2 Sx = "狗" Case 3 Sx = "猪" Case 4 Sx = "鼠" Case 5 Sx = "牛" Case 6 Sx = "虎" Case 7 Sx = "兔" Case 8 Sx = "龙" Case 9 Sx = "蛇" Case 10 Sx = "马" Case Else Sx = "羊" End Select Print "该年的属相为:" & Sx
If 条件1 Then 语句组1 ElseIf 条件2 语句组2 …… ElseIf 条件n 语句组n Else 语句组m End If
If……Then……ElseIf……Else……
17
开始
程序语句组
条件1 成立吗? Y
程序语句组1
N Y
条件2 成立吗?
N
……
条件n 成立吗? Y
程序语句组n
N 执行Else
14
条件较少时,宜采用 复合逻辑运算以减少 嵌套。当条件有多个 结果较多时,宜采用 分支结构的嵌套。
15
作业
1 + sin x − x − 1 :Y= x
2 2
要求: 1. 写出伪代码。 2. 画出N-S图或流程图。 3. 利用嵌套方式写出VB代码。 4. 上机时调试运行。
16
多分支结构 当可据不同条件,有多种不同 选择时,可以用多分支结构。