第五章(选择分支与循环).ppt

上传人:仙人指路1688 文档编号:2817058 上传时间:2023-02-25 格式:PPT 页数:43 大小:286KB
返回 下载 相关 举报
第五章(选择分支与循环).ppt_第1页
第1页 / 共43页
第五章(选择分支与循环).ppt_第2页
第2页 / 共43页
第五章(选择分支与循环).ppt_第3页
第3页 / 共43页
第五章(选择分支与循环).ppt_第4页
第4页 / 共43页
第五章(选择分支与循环).ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第五章(选择分支与循环).ppt》由会员分享,可在线阅读,更多相关《第五章(选择分支与循环).ppt(43页珍藏版)》请在三一办公上搜索。

1、第五章 选择分支与循环,算法及其描述,1.算法的概念 是解决问题的有序步骤。2.算法的特征(1)有穷性。(2)确定性。(3)有效性。(4)零个或多个输入。(5)至少有一个输出。,3.算法的描述(1)自然语言 文字冗长、表达不确切、二义性。(2)流程图 图形方法,直观、形象、易于理解,应用广泛。(3)N-S图 是流程图的发展,去掉了流程线,算法都表示在一个矩形框内。,4.三种基本控制结构(1)顺序结构在顺序结构中,算法的每一步操作都是按从上到下的线性次序执行的。(2)选择结构又称分支结构,根据给出的条件,选择执行一个分支。因此,在选择结构中,必然包含了条件判断。(3)循环结构又称重复执行结构。根

2、据给出的条件,判断是否重复执行某一组操作。,基本的循环结构有两种:当循环和直到循环。当循环:首先判断条件是否成立,若成立,执行循环体再判断条件,决定是否继续进行循环;若不成立,跳过这组操作,执行此循环结构后面的操作。直到循环:首先执行循环体,然后判断条件是否成立,若成立,则继续进行循环操作;若不成立,执行此循环结构后面的操作。在程序设计中,算法是由一系列的控制结构构成,每一个控制结构又由若干个语句组成。语句是程序中有确切含义的基本单位,也是构成程序的基本成分,程序功能是由一条条语句的执行来实现的,可把语句视为命令。,5.1.1分支结构 1.IfThen语句(单分支结构)If Then 语句块

3、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=t,2.IfThenElse语句(双分支结构)If Then Else End If If Then Else,3.IfThenElseIf语句(多分支结构)形式:If Then ElseIf Then Else 语句块 n+1 End If,例5.1(补)已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其它字符。用多分支结构实现:If Ucase(s

4、trC)=A And Ucase(strC)=0 And strC=9 Then Print strC+是数字字符 Else Print strC+“是其它字符 End If,不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。.ElseIf不能写成 Else If。,计算三角形面积,求三个数中的最大值,三个数排序,:与同类型的下面四种形式之一:具体取值 例:“A”,3,5 一组枚举表达式(用逗号分隔)2,4,6,8 连续的数据范围 60 To 100 满足某个判决条件 Is 60,5.1.2 Selec

5、t Case语句(情况语句)形式:Select Case 变量或表达式Case 表达式列表1 语句块1Case 表达式列表2 语句块2Case Else 语句块n+1End Select,数值型或字符串表达式,例:变量strC中存放了一个字符,判断该字符类型。用多分支结构实现:If Text1.Text=A And Text1.Text=a And Text1.Text=0 And Text1.Text=9 ThenMsgBox Text1.Text+是数字字符,48,提示信息ElseMsgBox Text1.Text+是其他字符,48,提示信息End If用Select Case语句实现:S

6、elect Case Text1.TextCase a To z,A To ZMsgBox Text1.Text+是字母字符,48,提示信息Case 0 To 9MsgBox Text1.Text+是数字字符,48,提示信息Case ElseMsgBox Text1.Text+是其他字符,48,提示信息“End Select,5.2循环结构与循环结构语句,Do-LoopFor-Next,5.2.1DoLoop循环语句(用于控制循环次数未知)形式1:Do While|Until 语句块 Exit Do 语句块 Loop,形式2:Do 语句块 Exit Do 语句块Loop While|Until

7、,以求1100的自然数之和为例,比较Do循环的几种形式:,(1)n=1:Sum=0 Do While n=100 Sum=Sum+n n=n+1 Loop Print“Sum=”;Sum,(2)n=1:Sum=0 Do Until n100 Sum=Sum+n n=n+1 Loop Print“Sum=”;Sum,(3)n=1:Sum=0 Do Sum=Sum+n n=n+1 Loop while n=100 Print“Sum=”;Sum,(4)n=1:Sum=0 Do Sum=Sum+n n=n+1 Loop Until n100 Print“Sum=”;Sum,例1:设计用殴几里德算法求

8、解两个自然数的最大公约数,例2:我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。分析:解此问题可利用Do Loop循环求得,,Private Sub Command1_Click()x=13 n=0 Do While x 26 x=x*1.008 n=n+1 Loop Print 年数:;n,人口(亿):;xEnd Sub,例:编写程序,对于任意输入的正整数n(n=3),判断其是否是素数。素数就是质数。用MOD.如5 MOD 2=3,5.2.2 For-Next循环结构语句1.For循环语句(一般用于循环次数已知)形式 For 循环变量初值 to 终值 Step 步长

9、语句块Exit For 语句块 Next 循环变量,循环变量,=,终值,语句块,Exit For,语句块,循环变量加步长,T,F,循环变量得初值,循环体,例:计算1100的奇数和,程序段如下:Dim i%,s%等价于:Dim i%,s%s=0 s=0:i=1 For i=1 To 100 step 2 re:If i=100 Then s=s+i s=s+i Next i i=i+2 GoTo reEnd If,0 初值终值=0 死循环,循环次数,要注意:出了循环,循环控制变量值的问题。例程序段:For i=2 To 13 Step 3 循环执行次数 Print i,输出 i的值分别为:Nex

10、t i 2 5 8 11 Print“I=“;i 出了循环输出为:I=14 在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。,步长,例1:求自然数n的阶乘,例2:输入一个班的学习成绩,统计其中及格的学生人数,并计算出全班的平均分数。学生人数不定,输入负数时截止。,循环的嵌套 一个循环体内又包含了一个完整的循环结构称为循环的嵌套.例:打印九九乘法表.For i=1 To 9 For j=1 To 9 se=i Next j Print Next i,For j=1 To i,5.2.3 循环的嵌套(多重循环)一个循环体内又包含了一个完整的循环结构称为循环的嵌套

11、.例:打印九九乘法表.,编写程序,输出100200之间的所有素数。,For ii=1 To 10 For jj=1 To 20 Next ii Next jj,For ii=1 To 10 For ii=1 To 20 Next ii Next ii,For ii=1 To 10 For jj=1 To 20 Next jj Next ii,For ii=1 To 10 Next ii For ii=1 To 10 Next ii,对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;外循环必须完全包含内循环,不能交叉;不能从循环体外转向循环体内,反之则可以。正确错误,VB提供了一个

12、可以产生01均匀分布的随机数函数Rnd(x)。其中x决定了生成随机数的方式。生成某个范围内的随机数,可以使用RandomizeInt(upbound-lowerbound+1)*Rnd+lowerbound),其它辅助控制语句 1.Go To 语句 形式:Go To 标号|行号 作用:无条件地转移到标号或行号指定的那行语句。标号是一个字符序列,行号是一个数字序列。2.Exit语句 多种形式:Exit For、Exit Do、Exit Sub、Exit Function等。作用:退出某种控制结构的执行。3.End语句 多种形式:End、End If、End Select、End With、End

13、 Type、End Sub、End Function、作用:End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。,习题讲解,1.在窗体中添加一个命令按钮(Name属性为Command1),然后编写如下代码:Private Sub Command1_Click()s=0 For k=1 To 3 If k=1 Then x=1 ElseIf k=2 Then x=2 ElseIf k=3 Then x=3 Else x=4 End If Print x;s=s+x Next k Print s End Sub程序运行后,单击命令按钮,输出结果是()A)3 3 3 9 B)

14、1 2 1 6 C)1 1 1 3 D)1 2 3 6,2.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x=InputBox(请输入整数)Select Case x Case 1,3 Print 分支 1 Case Is 4 Print 分支 2 Case Else Print Else 分支 End SelectEnd Sub程序运行后,如果在输入对话框中输入5,则窗体上显示的是()A)分支1 B)分支2 C)Else分支 D)程序出错,3.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

15、Private Sub Command1_Click()x=0 n=InputBox()For i=1 To n For j=1 To i x=x+1 Next j Next i Print xEnd Sub程序运行后,单击命令按钮,如果输入3,则在窗体上显示的内容是().A)3 B)4 C)5 D)6,4.在窗体(Name属性为Form1)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name 属性为Command1),然后编写如下事件过程:Private Sub Command1_Click()a=Text1.Text+Text2.Text Print aEn

16、d Sub程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和222,然后单击命令按钮,则输出结果为()。A)123222 B)321123 C)345 D)222123,5.有如下程序:Private Sub Command1_Click()Dim s as integer s=0 i=1 While i=100 s=s+i Wend End Sub 运行后的输出结果是()。A)5050 B)5051 C)死循环,直到溢出 D)无穷大的数,6.以下叙述正确的是()。A)SelectCase语句中的测试表达式可以是任何形式的表达式B)SelectCase语句中

17、的测试表达式只能是数值表达式或字符串表达式C)在执行SelectCase语句时,所有Case子句均按出现的次序被顺序执行D)如下SelectCase语句中的Case表达式是错误的 SelectCasex Case1 to 10 EndSelect,常用算法,算法是对某个问题求解过程的描述。1.累加、连乘,1100的5或7的倍数的和 Sum=0 For i=1 To 100 If i Mod 5=0 Or i Mod 7=0 Then Sum=Sum+i End If Next i Print Sum,310的乘积 t=1 For i=3 To 10 t=t*i Next i Print t,例

18、1:求自然对数e的近似值,要求其误差小于0.00001,近似公式为:该例题涉及两个问题:(1)用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。(2)累加:e=e+t 循环体外对累加和的变量清零 e=0 连乘:n=n*i 循环体外对连乘积变量置1 n=1,2.穷举法“穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。例2:百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:x+y+z=1

19、00 3x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。解决此类问题采用“试凑法”,把每一种情况都考虑到。方法一:最简单三个未知数利用三重循环来实现。方法二:从三个未知数的关系,利用两重循环来实现。,3.递推法“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。例:猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃剩下桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子。设第n天的桃子数为xn,那么它是前一天的桃子数的xn-1 的一半减1,即xn=xn-1/2-1,即 xn-1=(xn+1)*2,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号