第91011讲循环结构一.ppt

上传人:夺命阿水 文档编号:758777 上传时间:2023-11-13 格式:PPT 页数:32 大小:475.50KB
返回 下载 相关 举报
第91011讲循环结构一.ppt_第1页
第1页 / 共32页
第91011讲循环结构一.ppt_第2页
第2页 / 共32页
第91011讲循环结构一.ppt_第3页
第3页 / 共32页
第91011讲循环结构一.ppt_第4页
第4页 / 共32页
第91011讲循环结构一.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《第91011讲循环结构一.ppt》由会员分享,可在线阅读,更多相关《第91011讲循环结构一.ppt(32页珍藏版)》请在课桌文档上搜索。

1、Visual Basic程序设计,第 8 讲,内容安排与学习要求,环境熟悉(1),基本控件(3),编程基础(2),三大基本结构(5,6),综合应用(4,8,10),过程(9),数组(7),三大基本结构,顺序结构:赋值语句=选择结构:if select case循环结构:for while,循环结构,功能:重复执行一组语句。两种语句格式:For-Next语句(一般用于循环次数已知)Do-Loop语句(用于控制循环次数未知)当型循环、直到型循环,1、形式 For 循环变量初值 to 终值 Step 步长 语句块Exit For 语句块 Next 循环变量,循环次数=,一.For循环语句,猴子吃桃子

2、。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子。设第n天的桃子为xn,那么它是前一天的桃子数的xn-1 的一半减1,即xn-1=(xn+1)2,例:求1+2+3+100的值,S0=0S1=S0+1S2=S1+2S3=S2+3S4=S3+4S100=S99+100,Si=Si-1+ii=1.100,S=0,i=1,S=S+i,i=N,i=i+1,S即为所求,T,F,例:求1+2+

3、3+100的值,Dim Sum%,i%Sum=0 For i=1 to 100 Sum=Sum+i 累加 Next i Textbox1.text=i=&i&Sum=&Sum,循环次数=(100-1)1+1,F,例:求一个数是否为素数,Dim i%,N%N=InputBox(请输入N)For i=2 To N-1 If N Mod i=0 Then Exit For Next i If i N Then Textbox1.text=N&不是一个素数 Else Textbox1.text=N&是一个素数 End If,判别某数n是否为素数最简单的方法是:对于n 从i=2,3,n-1判别n能否被i

4、整除,只要有一个能整除,n不是素数,否则n是素数。,例:求N!流程图,积S赋初值,当前项i=第1项,累乘当前项,i=N,求下一项i,S即为所求,T,F,例:求N!,Dim S as long,N%,i%S=1 N=InputBox(请输入N)For i=1 to N S=S*i 连乘 Next i Textbox1.text=N&的阶乘为&S,二、DoLoop循环语句,当型形式1:Do While 语句块 Exit Do 语句块 Loop,循环体,条件,T,F,Dim i%,S%,N%N=InputBox(请输入N)S=0i=1Do While i=N S=S+i i=i+1Loop,用Do

5、WhileLoop循环语句求1至N和,S=0,i=1,S=S+i,i=N,i=i+1,S即为所求,T,F,Dim i%,S#,N%N=InputBox(请输入N)S=1i=1Do While i=N S=S*i i=i+1Loop,用Do whileLoop循环语句求N!,S=1,i=1,S=S*i,i=N,i=i+1,S即为所求,T,F,我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。,Private Sub Button1_Click()x=13 n=0 Do While x 26 x=x*1.008 n=n+1 Loop Textbox1.text=经过&n&年中

6、国人口为&x&亿End Sub,Dim m%,n%,r%,t%n=Val(T1.text)m=Val(T2.text)If m 0)m=n n=r r=m mod nLoopT3.text=n,用辗转相除法求两自然数m,n的最大公约数和最小公倍数。分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得mn;(2)m除以n得余数r;(3)若r=0,则n为最大公约数结束;否则执行(4);(4)mn,nr,再重复执行(2)。例:求 m=42,n=24 的最大公约数.,辗转相除法求最大公约数,流程图,使mn,r=m Mod n,m=n:n=r,r0,r=m Mod n,N即为所求,T,F,当型形

7、式1:Do While 语句块 Exit Do 语句块 Loop,当型形式2:Do 语句块 Exit Do 语句块Loop While,比较 DoLoop循环的四种形式,直到形式1:Do Until 语句块 Exit Do 语句块 Loop,直到形式2:Do 语句块 Exit Do 语句块Loop Until,当型1与当型2流程图比较,当型形式2:Do 语句块 Exit Do 语句块Loop While,当型形式1:Do While 语句块 Exit Do 语句块 Loop,While循环与Do循环的区别,T=1X=6Do while X=5 T=T*X X=X+1 Loop T1.text=

8、T=&T,T=1X=6Do T=T*X X=X+1Loop while X=5 T1.text=T=&T,因此,当型形式2的循环体至少执行一次而当型形式1的循环体可能一次都不会执行,当型与直到流程图比较,直到形式1:Do Until 语句块 Exit Do 语句块 Loop,当型形式1:Do While 语句块 Exit Do 语句块 Loop,Dim i%,T&,N%N=InputBox(请输入N)T=1i=1Do Whilel i=N T=T*i i=i+1Loop,比较当型与直到型循环语句:求N!,Dim i%,T&,N%N=InputBox(请输入N)T=1i=1Do Until i

9、N T=T*i i=i+1Loop,While语句中的条件是入循环的条件,而Until语句中的条件是出循环的条件,三、循环的嵌套,一个循环体内又包含了一个完整的循环结构称为循环的嵌套.打印九九乘法表.,txtShow.Text=For i=1 To 9 For j=1 To 9 If Len(CStr(j*i)=1 Then ji_num=+CStr(j*i)Else ji_num=CStr(j*i)End If txtShow.Text+=Str(j)+*+Str(i)+=+ji_num+Next j txtShow.Text+=vbNewLine Next i,(1)内循环变量与外循环变量

10、不能同名;错误示例:,For i=1 To 10 For i=1 To 20 Next i Next i,对于循环的嵌套,要注意以下事项:,(2)外循环必须完全包含内循环,不能交叉;,“穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。,穷举法,百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。分析:设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:x+y+z=100 3x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。解决此类问题采用“

11、试凑法”,把每一种情况都考虑到。,方法一:求三个未知数,利用三重循环来实现。方法二:从三个未知数的关系,利用两重循环来实现。,Dim x%,y%,z%For x=0 To 33 For y=0 To 50 For z=0 To 100 If 3*x+2*y+0.5*z=100 And x+y+z=100 Then textbox1.text&=x&y&z&vbnewline End If Next z Next y Next x,方法一:(求三个未知数利用三重循环来实现。),Dim x%,y%,For x=0 To 33 For y=0 To 50 If 3*x+2*y+0.5*(100-x-

12、y)=100 Then textbox1.text&=x&y&100-x-y&vbnewline End If Next yNext x,方法二:(从三个未知数的关系,利用两重循环来实现),常见错误,1 不循环或死循环的问题 主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2 循环结构中缺少配对的结束语句 For缺少配对的Next 3 循环嵌套时,内外循环交叉4 累加、连乘时,存放累加、连乘结果的变量赋初值问题(1)一重循环:存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环:变量初值设置要视具体问题分别对待。,试用do-while编写程序,已知本金为a,年利率为x%,试求存入银行多少年后本利之和是原来本金的2倍。已知一个正整数,将它转换为二进制,

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号