[PPT模板]第 5 章 程序控制结构.ppt
《[PPT模板]第 5 章 程序控制结构.ppt》由会员分享,可在线阅读,更多相关《[PPT模板]第 5 章 程序控制结构.ppt(71页珍藏版)》请在三一文库上搜索。
1、1,第 5 章 程序控制结构,顺序结构 分支结构 循环结构,2,第5章 程序控制结构,5.1 顺序结构,顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的语句序列,其程序执行流程是按顺序完成操作的。,3,第5章 程序控制结构,5.1 顺序结构,例5.1:创建一个窗体,用字符拼凑一个图形。,4,5.2 选择结构程序设计,本章要点: 条件语句 单行结构条件语句If.Then.Else . 块结构条件语句If.Then.EndIf 多分支选择语句Select Case.End Select,特点: 根据条件是否成立,决定程序的执行分支,5,5.2.1 单行结构条件语句,1. 格式 If Th
2、en Else 2. 功能 如果成立,则执行,否则执行,6,3. 说明 (1) 可以是: 关系表达式 布尔表达式 数值表达式:0为False;非0为True 字符串表达式: “0“为False;非“0“为True (2) 可以没有Else部分,这时必须有。,例: If X“aaa“ Then Print X,7,(3) 、: 可以有多条语句,各语句之间用冒号隔开。 例: If N0 Then A=A+B:B=B+A Else A=A-B:B=B-A (4)应作为一条语句书写。如果语句太长需要换行,必须在折行处使用续行符号。 (5) 无论条件是否成立,都具有共同出口 例: If X = 0 Th
3、en X = 1 + X Else X = 5 - X Y = 1 - X Print “Y=“; Y 若 X=2 则打印 Y=-2 若 X=-2 则打印 Y=-6,共同出口,(6)单行结构条件语句可以嵌套 IF . THEN.IF . THEN .ELSE .ELSE,8,【例5-1】设界面如下图所示,用文本框输入x的值,单击“计算Y”按钮时,根据以下公式计算y的值。,Private Sub Command1_Click() X = Val(Text1.Text) If X = 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End
4、Sub,9,例: 比较以下两段程序,是否都能够实现上例的功能。,程序段1: X = Val(Text1.Text) Y = Abs(X) If X 0 Then Y = Log(X) Label3.Caption = Y,程序段2: X = Val(Text1.Text) Y = Log(X) If X = 0 ThenY = Abs(X) Label3.Caption = Y,10,【例5-2】平面直角坐标系中,不同的象限内,点的坐标的符号有以下4种情况: 第一象限 X0,Y0 第二象限 X0 第三象限 X0,Y0 任意输入一对坐标值,找出它所在的象限。,Private Sub Comman
5、d1_Click() X = Val(Text1.Text): Y = Val(Text2.Text) If X = 0 Or Y = 0 Then _ Print “不在任何象限内“: Exit Sub If X 0 Then If Y 0 Then Print “IN A“ Else _ Print “IN D“ Else If Y 0 Then Print “IN B“ _ Else Print “IN C“ End Sub,11,5.2.2 块结构条件语句,1.格式 If Then ElseIf Then ElseIf Then Else End If,If Then 语句组1 Els
6、e 语句组2 End If,注意: 格式书写、嵌套,12,块结构条件语句的功能:,13,【例5-3】输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。,C40时,打印“HOT “ 30C40时,打印“ WARM “ 20C30时,打印“ ROOM TEMPERATURE “ 10C20时,打印“ COOL “ 0C10时,打印“ COLD “ C0时,打印“ FREEZING“,14,Private Sub Command1_Click() C = 5 / 9 * (Val(Text1.Text) - 32) Text2.Tex
7、t = Format(C, “0.00“) If C 40 Then Label2.Caption = “HOT“ ElseIf C 30 Then Label2.Caption = “WARM“ ElseIf C 20 Then Label2.Caption = “ROOM TEMPERATURE“ ElseIf C 10 Then Label2.Caption = “COOL“ ElseIf C 0 Then Label2.Caption = “COLD“ Else Label2.Caption = “FREEZING“ End If End Sub,15,注意: (1) ElseIf不能
8、写成Else If,即中间不能有空格。 (2) 在书写时,可以将If语句、ElseIf子句、Else子句、和End If语句左对齐,而各语句组向右缩进若干空格,以使程序结构更清楚。 (3) 严格按格式要求书写,不可随意换行或将两行合并成一行。例如,对于条件结构: If x = 0 Then y = 1 Else y = 2 End If 以下两种写法都是错误的:,写法一: If x=0 Then y=1 Else y = 2 End If,写法二: If x = 1 Then y = 10 Else y = 20 End If,16,5.2.3 多分支选择语句,1. 格式 Select Cas
9、e Case Case Case Else End Select 2. 功能: 根据测试表达式的值,按顺序匹配Case后的表达式,如果匹配成功,则执行该Case下的语句块,然后转到End Select语句之后继续执行。,17,多分支选择语句的功能流程图:,18,3. 说明 : 数值或字符表达式 Case 表达式表: 表中的表项为如下形式: (1) 表达式1,表达式2. 如: Case 1 , 3 , 5 (2) 表达式1 TO 表达式2 如: Case 10 TO 30 Case “A“ TO “Z“ (3) Is 如: Case Is = 10 Case Is = 0 与 Case 0 相同
10、 注意: 测试表达式的类型应与Case后表达式类型一致,且三种形式可以混用,如: Case Is -5 , 0 , 5 To 100,19,Y=,ex+e-x x0,X = Val(Text1.Text) Select Case X Case Is 0 Y = Log(X) / Log(10) End Select Print “Y=“; Y,X = Val(Text1.Text) Select Case X Case X 0 Y = Log(X) / Log(10) End Select Print “Y=“; Y,【例5-4】按以下公式求分段函数y的值。,20,如果在条件成立或不成立的情况
11、下要继续判断其他条件,则可以使用嵌套的条件语句来实现,也就是在语句组中再使用另一个条件语句。,5.2.4 条件语句的嵌套,块结构条件语句的嵌套示例: If A = 1 Then If B = 0 Then Print “*0*“ ElseIf B = 1 Then Print “*1*“ End If ElseIf A = 2 Then Print “*2*“ End If,21,多分支选择语句的嵌套示例: Select Case A Case 1 Select Case B Case 0 Print “*0*“ Case 1 Print “*1*“ End Select Case 2 Pri
12、nt “*2*“ End Select,22,多分支选择语句与块结构条件语句的互相嵌套示例: Select Case A Case 1 If B = 0 Then Print “*0*“ ElseIf B = 1 Then Print “*1*“ End If Case 2 Print “*2*“ End Select,23,1IIf函数 格式: IIf(, , ) 功能: 当的值为True时,返回第2个参数的值;当的值为False时,返回第3个参数的值。(类似于具有两个分支的If语句的功能) 例: 使用IIf函数求两个变量A和B的较大数。 MaxAB = IIf(A B, A, B) 例:
13、使用IIf函数求三个变量A、B和C的最大数。 MaxAB = IIf(A B, A, B) MaxABC = IIf(MaxAB C, MaxAB, C),5.3 条件函数,24,2Choose函数 格式: Choose(, ,.,) 功能: 当的值为1时,返回的值;当的值为2时,返回的值;。如果的值不是整数,则会先四舍五入为整数。 例: 将成绩1分、2分、3分、4分和5分转换成相应的等级: 不及格(1分,2分)、及格(3分),良(4分),优(5分)。 Grade = Choose(Score, “不及格“, “不及格“, “及格“, “良“, “优“),25,应用举例,【例】设计一个口令检测
14、程序,界面如下图,当用户输入的口令正确时,显示“恭喜!您已成功进入本系统”,否则,显示,“口令错!请重新输入”。如果连续两次输入了错误口令,在第三次输入完口令后则显示一个消息框,提示“对不起,您不能使用本系统”,然后结束程序的执行。,26,Private Sub Text1_KeyUp(KeyCode As Integer, _ Shift As Integer) Static I As Integer 保存输入错误口令的次数 If KeyCode = 13 Then 如果按下的键为回车键 If UCase(Text1.Text) = “HELLO“ Then Label2.Caption =
15、 “恭喜!,您已成功进入本系统“ ElseIf I = 0 Or I = 1 Then I = I + 1 Label2.Caption = “口令错!,请重新输入“ Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else MsgBox “对不起,您不能使用本系统“: End End If End If End Sub,27,【例5-6】求一元二次方程ax2+bx+c=0的解 。 分析: (1) 如果a=0,则不是二次方程,此时如果b=0,则提示重新输入系数;如果b 0,则: x=-c/b (2) 如果a 0,且b2-4ac=0,则有
16、两个相等的实根 (3) 如果a 0,且b2-4ac0,则有两个不等的实根 (4) 如果a 0,且b2-4ac0,则有两个共轭复根,28,Private Sub Command1_Click() A = Val(Text1.Text): B = Val(Text2.Text) C = Val(Text3.Text): Cls CurrentX = 600: CurrentY = 1100 If A = 0 Then If B = 0 Then MsgBox “系数为零,请重新输入“ Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(T
17、ext1.Text) Else X = -C / B Print “X=“; Format(X, “0.000“) End If Exit Sub End If,29,Delta = B 2 - 4 * A * C Select Case Delta Case 0 Print “X1=X2=“; Format(-B / (2 * A), “0.000“) Case Is 0 X1 = (-B + Sqr(Delta) / (2 * A) X2 = (-B - Sqr(Delta) / (2 * A) Print “X1=“; Format(X1, “0.000“) CurrentX = 600
18、: CurrentY = 1300 Print “X2=“; Format(X2, “0.000“) Case Is 0 A1 = -B / (2 * A) A2 = Sqr(Abs(Delta) / (2 * A),30,Print “X1=“; Format(A1, “0.000“); “+“; _ Format(A2, “0.000“); “i“ CurrentX = 600 CurrentY = 1300 Print “X2=“; Format(A1, “0.000“); “-“; _ Format(A2, “0.000“); “i“ End Select End Sub,31,【例】
19、设计一个四则运算的自我练习应用程序,界面如下图所示。,32,要求: (1) 执行时,当在Text1中输入一种运算符后,在标签Label2中立即出现该运算符号。 (2) 单击“出题”按钮可以产生两个0,1000之间的随机整数,这时由Text2、Label2和Text3组成一个表达式。 (3) 可以通过单击“计算”按钮计算所生成的表达式的值。 (4) 也可以由用户在文本框Text4中输入运算结果通过单击“判断”按钮可以判断输入的运算结果是否正确,然后在Label4上显示“正确”或“错误”。 (5) 单击“退出”按钮结束运行。,33,(1) 在Text1中输入加、减、乘、除符号后,在Label2中立
20、即出现相应的运算符号。 Private Sub Text1_Change() Label2.Caption = Text1.Text End Sub (2) 单击“出题”按钮Command1,生成两个0,1000之间的随机整数。 Private Sub Command1_Click() Randomize Text2.Text = Int(Rnd * 1001) Text3.Text = Int(Rnd * 1001) Text4.Text=“ End Sub,34,(3) 单击“计算”按钮Command2得出Text4的值。 Private Sub Command2_Click() If L
21、abel2.Caption = “+“ Then Text4.Text = Val(Text2.Text) + Val(Text3.Text) ElseIf Label2.Caption = “-“ Then Text4.Text = Val(Text2.Text) - Val(Text3.Text) ElseIf Label2.Caption = “*“ Then Text4.Text = Val(Text2.Text) * Val(Text3.Text) ElseIf Label2.Caption = “/“ Then Text4.Text = Val(Text2.Text) / Val(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PPT模板 PPT模板第 程序控制结构 PPT 模板 程序控制 结构
链接地址:https://www.31doc.com/p-1996390.html