VB程序设计PPT第5章-VB控制结构.ppt
《VB程序设计PPT第5章-VB控制结构.ppt》由会员分享,可在线阅读,更多相关《VB程序设计PPT第5章-VB控制结构.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 5.1 算法及其描述1.算法的概念 是解决问题的有序步骤。2.算法的特征(1) 有穷性。(2) 确定性。(3) 有效性。(4) 零个或多个输入。(5) 至少有一个输出。3.算法的描述(1)自然语言 文字冗长、表达不确切、二义性。(2)流程图 图形方法,直观、形象、易于理解,应用广泛。(3)N-S图 是流程图的发展,去掉了流程线,算法都表示在一个矩形框内。3.三种基本控制结构(1)顺序结构在顺序结构中,算法的每一步操作都是按从上到下的线性次序执行的。(2)选择结构又称分支结构,根据给出的条件,选择执行一个分支。因此,在选择结构中,必然包含了条件判断。(3)循环结构又称重复执行结构。根据给
2、出的条件,判断是否重复执行某一组操作。基本的循环结构有两种:当循环和直到循环。当循环:首先判断条件是否成立,若成立,执行循环体再判断条件,决定是否继续进行循环;若不成立,跳过这组操作,执行此循环结构后面的操作。直到循环:首先执行循环体,然后判断条件是否成立,若成立,则继续进行循环操作;若不成立,执行此循环结构后面的操作。 在程序设计中,算法是由一系列的控制结构构成,每一个控制结构又由若干个语句组成。语句是程序中有确切含义的基本单位,也是构成程序的基本成分,程序功能是由一条条语句的执行来实现的,可把语句视为命令。5.2 5.2 选选 择择 结结 构构 1. If1. IfThenThen语句语句
3、( (单分支结构单分支结构) ) If Then 语句块语句块 End If(注意多行(注意多行if语句要有语句要有End If) 或或 If Then 重要的是学会两个数的交换,若上述语句次重要的是学会两个数的交换,若上述语句次序变一下,结果如何?序变一下,结果如何? 例:已知两个数x和y,比较它们的大小,使得x大于y. If xy Then t=x x=y y=t End If 或或 If xy Then t=x: x=y: y=t2. If2. IfThenThenElseElse语句语句( (双分支结构双分支结构) ) If Then Else End If If Then Else
4、计算分段函数:yxxxxxxxsincos231030单分支结构实现: y=cos(x)y=cos(x)x3+3x3+3* *x x If x0 Then y=sin(x)+sqr (x If x0 Then y=sin(x)+sqr (x* *x+1)x+1) 双分支结构实现: If x0 Then y=sin(x)+sqr (x*x+1)Else y=cos(x)x3+3*xEnd If3. If3. IfThenThenElseIfElseIf语句语句( (多分支结构多分支结构) ) 形式: If Then ElseIf Then Else 语句块语句块 n+1 End If例5.1(补
5、) 已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其它字符。用多分支结构实现用多分支结构实现: If Ucase(strC) =A And Ucase (strC) =0 And strC = 90 Then Print 优 ElseIf mark = 80 Then Print 良 ElseIf mark = 70 Then Print 中 ElseIf mark = 60 Then Print 及格 Else Print 不及格 End If 方法二 If mark 60 Then Print 不及格 ElseIf mark 70 Then Print 及格 Else
6、If mark 80 Then Print 中 ElseIf mark = 60 Then Print 及格 ElseIf mark = 70 Then Print 中 ElseIf mark = 80 Then Print 良 ElseIf mark = 90 Then Print 优 Else Print 不及格 End If 4 4IfIf语句的嵌套语句的嵌套 If语句的嵌套是指If或Else后面的语句块中又包含If语句。 形式如下: If Then If Then End If End If T x yT z 为最小数T 使得 x yFFF x yzx y x 与 y 交换y z y
7、与 z 交换xyz,用一个IF语句和一个嵌套的IF语句实现 If xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xy Then t=x: x=y: y=t End If End IfIf语句的嵌套注意事项:书写锯齿型; If 与End If配对。:与同类型的下面四种形式之一: 表达式 例: A 一组枚举表达式(用逗号分隔) 2,4,6,8 表达式1 To 表达式2 60 To 100 Is 关系运算符表达式 Is =A And Ucase (strC) =0 And strC 0 And y 0 Then Print 在第一象限 ElseI
8、f x 0 Then Print 在第二象限 ElseIf x 0 And y 0 And y 0 And y 0Print 在第一象限 Case x 0Print 在第二象限 Case x 0 And y 0 And y 0Print 在第四象限End Select方法二代码错误:1. Select Case 后不能出现多个变量;后不能出现多个变量;2. Case后不能出现变量及有关运算符后不能出现变量及有关运算符。例5.6 商店售货,按购买货物的多少分别给予不同优惠折扣如下:编程计算购物款数。购物不足250元,无折扣,购物满250元、不足500元,减价5%,计算机根据学生的答案判断正确与否
9、,当结束时给出成绩。购物满500元、不足1000元,减价7.5%,购物满1000元、不足2000元,减价10%,购物满2000元,减价15%。 分析:设购物款为m,折扣为d,以上规定可表示如下: d=0 (m250)5% (250m500)7.5% (500m1000)10% (1000m2000)15% (2000m)代码如下:Private Sub Command1_Click() Dim s As Single, d As Single m = Val(InputBox(请输入应付款:) Select Case m Case Is 250 d = 0 Case Is 500 d = 0.
10、05 Case Is 1000 d = 0.075 Case Is y,x,y) (2)Choose函数形式是: Choose(数字类型变量,值为(数字类型变量,值为1的返回值,值为的返回值,值为2的返回值的返回值) 例如,Nop是1-4的值,转换成 + 、-、运算符的语句如下: Op= Choose(Nop,+,-,) 当值为1,返回字符串“+”,然后放入Op变量中,值为2,返回字符串“-”,依次类推;当Nop是1-4的非整数,系统自动取Nop的整数再判断;若Nop不在14之间,函数返回Null值。 (3) Switch函数形式是: Switch(条件表达式(条件表达式1,条件表达式,条件表
11、达式1为为True时的值时的值,条件表达式,条件表达式2,条件表达式,条件表达式2为为True时的值时的值)常常 见见 错错 误误1在选择结构中缺少配对的结束语句对多行式的If块语句中,应有配对的 End If语句结束。2. 多边选择ElseIf关键字的书写和条件表达式的表示 ElseIf 不要写成Else If。3. Select Case语句的使用 Select Case 后不能出现多个变量;Case子句后不能出现变量,见例5.5。5.3 5.3 循循 环环 结结 构构1. For循环语句循环语句 (一般用于循环次数已知)形式 For 循环变量初值循环变量初值 to 终值终值 Step 步
12、长步长 语句块语句块Exit For 语句块语句块 Next 循环变量循环变量 循环变量 =终值 语句块 Exit For 语句块 循环变量加步长 T F 循环变量得初值 循环体例5.7(补) 计算1100的奇数和,程序段如下: Dim i %, s% 等价于: Dim i %, s% s=0 s=0 : i = 1 For i = 1 To 100 step 2 re: If i 0 初值终值 =1 时,可省略终值=0 死循环循环次数) 1(步长初值终值Int要注意:要注意:v 出了循环,循环控制变量值的问题。 例程序段: For i=2 To 13 Step 3 循环执行次数 Print
13、i , 输出 i的值分别为: Next i 2 5 8 11 Print : Print “I=“, i 出了循环输出为: I=14v 在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。4) 1(3213Int步长例5.8(补)改变循环控制变量对循环的影响Private Sub Command1_Click() j = 0 For i = 1 To 20 Step 2 i = i + 3 j = j + 1 Print 第; j; 次循环i=; i Next i Print 退出循环后i=; i End Sub正常情况:i=1,3,5,7,9,11,13,15
14、,17,19现在:i=4,9,14,19例5.9 输入一个班的学习成绩,统计其中及格的学生人数,并计算出全班的平均分数。学生人数不定,输入负数时截止。设全班人数不超过50人。 Private Sub Command1_Click() Dim Score As Single, PassN As Integer, n As Integer Dim i As Integer, Sum As Single Text1 = : Text2 = : Text3 = Sum = 0: PassN = 0: n = 0 For i = 1 To 50 统计人数大于50时停止循环 Score = Val(Inp
15、utBox(请输入学生成绩:) If Score = 60 Then PassN = PassN + 1 统计及格人数 n = n + 1 统计总人数 Sum = Sum + Score 统计总分 End If Next i Text1.Text = Str$(n) Text2.Text = Str$(PassN) Text3.Text = Str$(Sum / n) End Sub 2. DoLoop循环语句循环语句(用于控制循环次数未知)形式1: Do While|Until 语句块语句块 Exit Do 语句块语句块 Loop形式2:Do 语句块语句块 Exit Do 语句块语句块Loo
16、p While|Until 表达式列表 1 F T F T Exit Do 语句块 语句块 Exit Do 语句块 语句块 表达式列表 1 Do Loop While Do WhileLoop 例5.10(补)我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题可利用Do Loop循环求得,程序如下:Private Sub Command1_Click() x = 13 n = 0 Do While x n; (2) m除以n得余数r; (3)若r=0,则n为最大公约数结束;否则执行(4); (4)mn,nr,再重复执行(2)。 例 求 m=14 ,n=6 的
17、最大公约数. If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公约数最大公约数=“; n m n r 14 6 2 6 2 0辗转相减法 m=m-n mn n=n-m nm m、n为公约数 m=nDo While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2Loop3.While-Wend结构形式如下: While 条件 循环体 Wend功能:当给定的“条件”为True时,执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 PPT 控制 结构
限制150内