第91011讲循环结构一.ppt

上传人:本田雅阁 文档编号:2987824 上传时间:2019-06-20 格式:PPT 页数:32 大小:473.52KB
返回 下载 相关 举报
第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 循环变量,循环次数=,一.

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

3、 i,i = N,i = i + 1,S即为所求,T,F,例:求1+2+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 & “不是一个素数“ El

4、se Textbox1.text= N & “是一个素数“ End If,判别某数n是否为素数最简单的方法是: 对于n 从i=2,3,n-1判别n能否被i整除,只要有一个能整除,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 语

5、句块 Exit Do 语句块 Loop,循环体,条件,T,F,Dim i%, S%, N% N = InputBox(“请输入N“) S = 0 i = 1 Do While i = N S = S + i i = i + 1 Loop,用Do 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 = 1 i = 1 Do While i = N S = S * i i = i + 1 Loop,用Do whileLoop循环语句求N!,S

6、 = 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 & “年中国人口为“& 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 n

7、Loop T3.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,当型形式1: Do While 语句块 Exit Do 语句块 Loop,当型形式2: Do 语句块 Exit Do 语句块 Loop While

8、,比较 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=1 X=6 Do while X=5 T=T*X X=X+1 Loop T1.text= “T= “ & T,T=1 X=6 Do T=T*X X=X+1 Loop while X=5 T1.text=

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

10、 T = T * i i = i + 1 Loop,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 +

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

12、目要求,列出方程为: x+y+z=100 3x+2y+0.5z=100 三个未知数,两个方程,此题有若干个解。 解决此类问题采用“试凑法”,把每一种情况都考虑到。,方法一:求三个未知数,利用三重循环来实现。 方法二:从三个未知数的关系,利用两重循环来实现。,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 Nex

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

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1