范本vb循环结构课件

上传人:仙*** 文档编号:241974250 上传时间:2024-08-08 格式:PPT 页数:39 大小:394.33KB
返回 下载 相关 举报
范本vb循环结构课件_第1页
第1页 / 共39页
范本vb循环结构课件_第2页
第2页 / 共39页
范本vb循环结构课件_第3页
第3页 / 共39页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精选整理,*,程序设计语言的三种基本结构流程图:,语句块,1,语句块,2,顺序结构,条件,语句块,1,语句块,2,真,假,选择结构,条件,循环体,真,假,循环结构,循环体,条件,假,真,精选整理,1,程序设计语言的三种基本结构流程图:语句块1语句块2顺序结构条,循环结构,用于在一定的条件下多次重复执行一组语句,.,例如:,在一行上输出,60,个“,*”,号。,用,Print,方法,方法一:,可以用,60,个“,*”,号组成一个字符串:,Print “*,*”,方法二,:,使用,60,个语句,:,Print*;,Print*”;,Print*,流程图,精选整理,2,用于在一定的条件下多次重复执行一组语句.例如:在一行上,2.,条件型循环,(,未知循环次数),1.,计数型循环,(,已知循环次数),分类:,学习要点:,2.,实现循环,的算法,1.,进入循环的条件,3.,退出循环的条件,精选整理,3,2.条件型循环(未知循环次数)1.计数型循环(已知循环次,一:,For,循环语句:计数型,(,一般用于循环次数已知,),形式如下:,For,循环变量初值,to,终值,Step,步长,语句块,Exit For,语句块,Next,循环变量,例,:,For I=2 To 13 Step 3,Print I,Next I,Print :Print“I=“,I,精选整理,4,一:For循环语句:计数型形式如下:For 循环变量初值,Exit for:,当遇到该语句,退出循环,执行该循环的下一条语句。,步长,(也可为实数),0,初值,终值 (,=1,时,可省略),终值,=0,死循环,循环次数,int,(终值,-,初值),/,步长),+1,循环变量,:,必须是数值型,语句块,:,可以是一条或多条语句,【说明】,精选整理,5,Exit for:当遇到该语句,退出循环,执行该循环的,For,循环流程图,循环变量得到初值,循环变量在终值内,T,语句块,循环变量加步长,F,有,Exit For,F,T,ForNext,流程图,精选整理,6,For 循环流程图循环变量得到初值循环变量在终值内T语句块循,例,:,For I=2 To 13 Step 3,Print I,Next I,Print :Print“I=“,I,结果:,输出,I,的值分别为,:,2 5 8 11,循环执行次数:,循环结束输出为,:,I=14,(,初值,+,循环次数,*,步长,),精选整理,7,例:For I=2 To 13 Step 3结果,思考,1:,计算下列循环语句的次数。,(,1,),for I=-3 to 20 step 4,(2)for I=-3.5 to 5.5 step 0.5,(3)for I=-3.5 to 5.5 step 0.5,(4)for I=-3 to 20 step 0,结果分别为,:,6 19 0,无数次,思考,2:,如果事先不知道循环次数,如何用,For.Next,?,For,循环变量,=1 to,非常大的数,if,达到循环结束条件,then exit for,.,Netxt,循环变量,精选整理,8,思考1:计算下列循环语句的次数。(1)for I=-3 t,例,4.9,改变,循环控制变量,对循环的影响,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,17,19,现在,:,i=4,9,14,19,精选整理,9,例4.9 改变循环控制变量对循环的影响正常情况:i=1,3,:,常用算法:,累加,连乘,算法:,是对某个问题求解过程的描述,例:累加,求,1-100,的偶数和。,Private Sub Form_Load(),Dim i As Integer,s As Integer,Show,s=0,For i=2 To 100 Step 2,s=s+I ,赋值语句实现,Next i,Print s=;s,End Sub,精选整理,10,:常用算法:累加,连乘算法:是对某个问题求解过程的描述例:,例:连乘,求自然数,1-30,的乘积,(,即,30,的阶乘,),Private Sub Form_Click(),s=1,For i=1 To 10,s=s*I,赋值语句实现,Print i;,的阶乘是:,;s,Next i,End Sub,精选整理,11,例:连乘求自然数1-30的乘积(即30的阶乘)Private,思考?,若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?,Private Sub Form_Click(),For i=3 To 100 step 3,sum=0,sum=sum+I,Next I,Print sum,End Sub,结论;,在一重循环中,存放累加,连乘结果的变量,初值设置应该放在,循环体外,。,精选整理,12,思考?若把循环体前面置各变量初值的语句放在循环体内,程序运行,二:,Do,Loop,循环语句:,条件型,(,用于控制循环次数未知,),形式,1,:先判断后循环,形式,2,:先做后判断,Do While|Until,语句块,Exit Do,语句块,Loop,Do,语句块,Exit Do,语句块,Loop While|Until,精选整理,13,二:DoLoop循环语句:条件型形式1:先判断后循环形式,【说明】:,1,)形式,1,先判断后执行,有可能一次也不执行,形式,2,先执行后判断,,最少执行一次循环体,2,),While,用于指明,条件为真,时执行循环体;,Until,刚好相反。,3,)当省略了,While|Until,子句,表示,无条件循环,循环体中应有,Exit Do,语句,,否则为死循环。,4,)遇到,Exit Do,语句时退出循环,执行,Loop,下一,条语句。,精选整理,14,【说明】:1)形式1先判断后执行,有可能一次也不执行2)Wh,Do While,Loop,流程图,Do,While Loop,流程图,条件,语句块,语句块,T,F,语句块,语句块,条件,T,F,有,Exit Do,F,T,有,Exit Do,F,T,Do While|Until.Loop,流程图,精选整理,15,Do While Loop 流程图Do While,例,4.11:,我国有,13.2,亿人口,按出生率为,0.5%,的增长率,多少年后超过,20,亿?,Private Sub Form_Load(),Dim m As Double,Dim yearr As Integer,Show,m=1320000000#:yearr=0,Do While m 200000000000#,精选整理,16,例4.11:我国有13.2亿人口,按出生率为0.5%的增长率,例,:,迭代法求,a,的立方根。,X=a,1/3,迭代公式:,X,n+1,=1/3(2X,n+,a/X,n,2,),当,X,n+1,-,X,n,eps,Print v,End sub,若将,While,改为,Until,,条件表达式怎么修改?,Do Until,abs(v-u)n,;,(2),m,除以,n,得余数,r,;,(3),若,r=,0,,则,n,为最大公约数结束,;,否则执行,(4),;,(4),m,n,,,n,r,,再重复执行,(2),常用算法:,求最大公约数和最小公倍数,精选整理,18,例4.12演示:求两自然数m,n的最大公约数和最小公倍数。方,求,m=14,n=6,的最大公约数和最小公倍数。,z=m*n,If m n Then,m=m-n,Else,n=n-m,End If,Loop,Print m,Print z/m,m=m-n mn,m n,m-n,14 6 8,8 6 2,2 6 4,2 4 2,2 2 0,n=n-m nm,m,、,n,为公约数,m=n,若,m,=n,,则,m,为最大公约数结束,若不相等,谁大替换谁。,精选整理,20,方法二:辗转相减法求最大公约数z=m*nm=m-n,例,4.14,:,求自然对数,e,的近似值,要求其误差小于,0.00001,,近似公式为,:,e,=1+1/1!+1/2!+1/3!+,+1/,n,!+,该例题涉及两个问题,:,(,1,)用循环结构求,级数和的问题,。本例根据某项值的精度来控制循环的结束与否。,(,2,),累加,:,e=e+t,(,循环体外对累加和的变量清零,e=0),(3),连乘,:,n=n*i,(,循环体外对连乘积变量置,1 n=1),精选整理,21,例4.14:求自然对数e的近似值,要求其误差小于0.0000,(三)循环的嵌套,一个循环体内又包含了一个完整的循环结构称为循环的嵌套,也叫,多重循环,。,精选整理,22,(三)循环的嵌套 一个循环体内又包含了一个完整的循环,例,4.13,演示:,打印九九乘法表。,For i=1 To 9,For j=1 To 9,se=i&j&=&i*j,Picture1.Print Tab(j-1)*9+1);se;,Next j,Picture1.Print,Next i,精选整理,23,例4.13演示:打印九九乘法表。For i=1 To 9,打印上三角或下三角程序如何改动,精选整理,24,打印上三角或下三角程序如何改动精选整理24,思考:,下列,30-90,为语句标号,分别标记该语句,第,40,句执行了几次循环?第,50,句执行了几次循环?第,90,句输出结果是多少,?,For j=1 to 12 step 3,For k=6 to 2 step 2,mk=k,Print j,k,Next k,80 next j,90 print j,k,mk,3,12,13,0,2,精选整理,25,思考:下列30-90为语句标号,分别标记该语句,第40句,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,【注意】,(,1,)内循环变量与外循环变量,不能同名,;,(,2,)外循环必须完全包含内循环,,不能交叉,;,(,3,)不能从循环体外转向循环体内,反之则可以。,正确,错误,精选整理,26,For ii=1 To 10,循环总结,精选整理,27,循环总结精选整理27,四 常 见 错 误,1.,不循环或死循环的问题,主要是循环条件、循环初值、循环终值、循环步长的设置有问题。,例如,:,For I=10 to 20 step 1,For I=20 to 10,Do while false,For I=10 to 20 step 0,Do while 1,2.,循环结构中缺少配对的结束语句,For 少 配对的,Next,do,语句没有,loop,结束,精选整理,28,四 常 见 错 误精选整理28,3.,循环嵌套时,内外循环交叉,与,IF,块结构交叉,运行时显示“无效的,Next,控制变量引用”,例如,:,例如,For I=1 to 4 for I=1 to 4,For j=1 to 5 if,表达式,then,.,.,Next I next i,Next j endif,4.,累加、连乘时,存放累加、连乘结果的变量赋初值问题,(1),一重循环,在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。,精选整理,29,3.循环嵌套时,内外循环交叉,与IF块结构交叉精选整理29,(,2,)多重循环,这要视具体问题分别对待。,5,大数相乘产生“溢出”问题,见实验,P301-4.3,其他辅助控制语句,1.Go To,语句(,建议不使用,),形式:,Go To,标号,|,行号,作用:,无条件转移到标号或行号指定的地方。,精选整理,30,(2)多重循环 其他辅助控制语句1.Go To语句(建议不,:,常用算法:,求素数,素数,:是一个大于,2,,且不能被,1,和本身以外的整数整除的整数。,方法:,判断某数,m,是否为素数,可从素数本身的,定义求解,。对于,m,从,I=2,,,3,.m-1,判断,m,是否能被,I,整除,只要有一个能被整除,,m,就不是素数。但这种算法速度很慢。,精选整理,31,:常用算法:求素数素数:是一个大于2,且不能被1和本身以外,例,4.15:,求,100,以内素数的代码:,For m=2 To 100,For i=2 To m-1,If(m Mod i)=0 Then GoTo,NotNextM,Next i,Print m,NotNextM:,Next m,m,是否为素数,求,100,以内的素数,分析,:,实际上,m,如果是素数的话,是不可能被大于,sqr,(,m,)的整数所整除。所以循环条件改为:,for I=2 to int(sqr(m),.,这样循环的次数会大大减少。,精选整理,32,例4.15:求100以内素数的代码:m是否为素数求100以,2.Exit,语句,多种形式:,Exit For,、,Exit Do,、,Exit Sub,、,Exit Function,等。,作用:退出某种控制结构的执行。,3.End,语句,多种形式:,End,、,End If,、,End Select,、,End With,、,End Type,、,End Sub,、,End Function,、,作用:,End,结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。,精选整理,33,2.Exit语句精选整理33,4.,With 语句,形式如下:,With,对象,语句块,End With,作用:对某个对象执行一系列的操作,而不用重复指出对象的名称。,With Label1,.,Height=2000,.,Width=2000,.,FontSize=22,.,Caption=MyLabel,End With,Label1,.,Height=2000,Label1,.,Width=2000,Label1,.,FontSize=22,Label1,.,Caption=MyLabel,等价,精选整理,34,4.With 语句等价精选整理34,:,常用算法:,穷举法,“,穷举法”:,也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。,例,4.16,:,百元买百鸡问题,。假定小鸡每只,5,角,公鸡每只,2,元,母鸡每只,3,元。现在有,100,元钱要求买,100,只鸡,编程列出所有可能的购鸡方案。,精选整理,35,:常用算法:穷举法“穷举法”:也称为“枚举法”或“试凑法”,【分析】,设母鸡、公鸡、小鸡各为,x,、,y,、,z,只,根据题目要求,列出方程为:,x+y+y=100,3x+2y+0.5z=100,三个未知数,两个方程,此题有若干个解。,解决此类问题采用“试凑法”,把每一种情况都考虑到。,方法一,:,最简单三个未知数利用三重循环来实现,方法二,:,从三个未知数的关系,利用两重循环来实现。,精选整理,36,【分析】精选整理36,:,常用算法:,递推法,“,递推法”,又称为“迭代法”:其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从,旧值的基础上递推出新值,并由新值代替旧值,。,例,4.17,:,猴子吃桃子,。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第,7,天要吃时只剩下一个,问小猴共摘下了多少个桃子?,精选整理,37,:常用算法:递推法“递推法”又称为“迭代法”:其基本思想是,【分析】:,这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子,。设第,n,天的桃子为,x,n,,那么它是前一天的桃子数的,x,n,-1,的一半减,1,,即,x,n,=,x,n,-1,/2 1,或者:,x,n,-1,=,(,x,n,+1,),*2,Private Sub Form_Click(),Dim n%,i%,x=1 ,第,7,天的桃子,Print,第,7,天的桃子数为,:1,只,For i=6 To 1 Step-1,x=(x+1)*2,Print,第,;i;,天的桃子数为,:;x;,只,Next I,:,End Sub,精选整理,38,【分析】:这是一个“递推”问题,先从最后一天推出倒数第二天的,:,常用算法:,求最大或最小值,方法,:在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。,例:随机产生,10,个,100,200,之间的数,求最大值。,Private Sub Command1_Click(),Max=100,For i=1 To 10,x=Int(Rnd*101+100),Print x;,If x Max Then Max=x,Next i,Print,Print,最大值,=;Max,End Sub,精选整理,39,:常用算法:求最大或最小值方法:在若干个数中求最大值,一般,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!