vb循环结构课件.ppt

上传人(卖家):三亚风情 文档编号:2941960 上传时间:2022-06-13 格式:PPT 页数:39 大小:1.56MB
下载 相关 举报
vb循环结构课件.ppt_第1页
第1页 / 共39页
vb循环结构课件.ppt_第2页
第2页 / 共39页
vb循环结构课件.ppt_第3页
第3页 / 共39页
vb循环结构课件.ppt_第4页
第4页 / 共39页
vb循环结构课件.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、程序设计语言的三种基本结构流程图:程序设计语言的三种基本结构流程图:语句块语句块1语句块语句块2顺序结构顺序结构条件条件语句块语句块1语句块语句块2真真假假选择结构选择结构条件条件循环体循环体真真假假循环结构循环结构循环体循环体条件条件假假真真 循环结构循环结构 用于在一定的条件下多次重复执行一组语句用于在一定的条件下多次重复执行一组语句. .在一行上输出60个“*”号。用Print方法方法一:可以用60个“*”号组成一个字符串: Print “*”方法二 :使用60个语句: Print *; Print *”; Print *流程图2. 2. 条件型循环条件型循环( (未知循环次数)未知循环

2、次数)1. 1. 计数型循环计数型循环( (已知循环次数)已知循环次数) 2. 2. 实现循环实现循环的算法的算法 1. 1.进入循环的条件进入循环的条件 3. 3.退出循环的条件退出循环的条件 ( (一般用于循环次数已知一般用于循环次数已知) )形式如下:形式如下:For For 循环变量初值循环变量初值 to 终值终值 Step 步长步长 语句块语句块 Exit For 语句块语句块Next 循环变量循环变量例例: :For I=2 To 13 Step 3 Print I , Next I Print : Print “I=“, I Exit for : Exit for :当遇到该语句

3、当遇到该语句, ,退出循环退出循环, ,执行该循执行该循环的下一条语句。环的下一条语句。 步长步长(也可(也可为实数)为实数)0 初值初值 终值终值 (=1 =1 时时, ,可省略)可省略) 终值终值=0 死循环死循环 循环次数循环次数intint(终值(终值- -初值)初值)/ /步长)步长)+1+1 循环变量循环变量: :必须是数值型必须是数值型 语句块语句块: :可以是一条或多条语句可以是一条或多条语句, , 【说明】For For 循环流程图循环流程图循环变量得到初值循环变量在终值内T语句块循环变量加步长F有Exit ForFTForNext流程图例例: :For I=2 To 13

4、Step 3 Print I , Next I Print : Print “I=“, I结果:结果: 输出输出I I的值分别为的值分别为: : 2 5 8 11循环执行次数:循环执行次数:4) 1(3213Int循环结束输出为循环结束输出为: : I=14 I=14( (初值初值+ +循环次数循环次数* *步长步长) )计算下列循环语句的次数。(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结果分别为结果分别为: :

5、 6 19 0 无数次无数次如果事先不知道循环次数,如何用For.Next?For 循环变量循环变量=1 to 非常大的数非常大的数 if 达到循环结束条件达到循环结束条件 then exit for.Netxt 循环变量循环变量例4.9 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,1

6、5,17,19现在: i=4,9,14,19例:累加例:累加求求1-1001-100的偶数和。的偶数和。Private Sub Form_Load()Dim i As Integer, s As Integer Shows = 0For i = 2 To 100 Step 2 s = s + I 赋值语句实现赋值语句实现Next iPrint s=; sEnd Sub例:连乘例:连乘求自然数求自然数1-301-30的乘积的乘积( (即即3030的阶乘的阶乘) )Private Sub Form_Click() s = 1For i = 1 To 10 s = s * I 赋值语句实现赋值语句实

7、现 Print i; 的阶乘是:的阶乘是:; sNext iEnd Sub思考?Private Sub Form_Click()For i = 3 To 100 step 3 sum=0 sum = sum+ I Next IPrint sumEnd Sub结论;在一重循环中,存放累加,连乘结果的变量初值设置应该放在循环体外。 ( (用于控制循环次数未知用于控制循环次数未知) )形式形式1:先判断后循环:先判断后循环形式形式2:先做后判断:先做后判断Do While|Until 语句块语句块 Exit Do 语句块语句块LoopDo 语句块语句块 Exit Do 语句块语句块Loop Whil

8、e|Until 【说明说明】:1 1)形式)形式1 1先判断后执行,有可能一次也不执行先判断后执行,有可能一次也不执行 形式形式2 2先执行后判断,先执行后判断,最少执行一次循环体最少执行一次循环体2 2)WhileWhile用于指明用于指明条件为真条件为真时执行循环体;时执行循环体; UntilUntil刚好相反。刚好相反。3 3)当省略了)当省略了While|UntilWhile|Until 子句,表示子句,表示 无条件循环,循环体中应有无条件循环,循环体中应有Exit DoExit Do语句,语句, 否则为死循环。否则为死循环。4 4)遇到)遇到Exit DoExit Do语句时退出循环

9、,执行语句时退出循环,执行LoopLoop下一下一 条语句。条语句。Do While Do While Loop Loop 流程图流程图Do Do While Loop While Loop 流程图流程图条件语句块语句块TF语句块语句块条件TF有Exit DoFT有Exit DoFTDo While|Until. Loop流程图例例4.11:4.11:我国有我国有13.213.2亿人口亿人口, ,按出生率为按出生率为0.5%0.5%的增长的增长率率, ,多少年后超过多少年后超过2020亿?亿?Private Sub Form_Load()Dim m As DoubleDim yearr As

10、IntegerShowm = 1320000000#: yearr = 0Do While m 200000000000#例例: :迭代法求a的立方根。X=a1/3 迭代公式:Xn+1= 1/3(2Xn+a/Xn2) 当 Xn+1- XnepsLoop while abs(v-u)epsPrint vPrint vEnd subEnd sub若将若将While改改为为Until,条件表达条件表达式怎么修式怎么修改?改?Do Until abs(v-u)=epsabs(v-u)nmn;(2) (2) m m除以除以n n得余数得余数r r;(3)(3)若若r=r=0 0,则,则n n为最大公约数

11、结束为最大公约数结束; 否则执行否则执行(4)(4);(4)(4)m mn n,n nr r,再重复执行,再重复执行(2)(2)常用算法:常用算法:求最大公约数和最小公倍数求最大公约数和最小公倍数求求 m=14 ,n=6m=14 ,n=6 的最大公约数和最小公倍数。的最大公约数和最小公倍数。 z=m*nIf 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 Print “最小公倍数最小公倍数=, z/n m n r 14 6 2 6 2 0若若r=

12、0r=0,则,则n n为最大公约数结束为最大公约数结束方法二:辗转相减法求最大公约数方法二:辗转相减法求最大公约数z=m*nDo While m n If m n Then m = m - n Else n = n - m End If LoopPrint mPrint z/m m=m-n mnm n m-n 14 6 8 8 6 2 2 6 4 2 4 2 2 2 0n=n-m nm m、n为公约数为公约数 m=n若若m m=n=n,则,则m m为最大公约数结束为最大公约数结束若不相等,谁大替换谁。若不相等,谁大替换谁。例例4.144.14:求自然对数求自然对数e e的近似值的近似值, ,要

13、求其要求其误差小于误差小于0.000010.00001,近似公式为,近似公式为: : e e=1+1/1!+1/2!+1/3!+=1+1/1!+1/2!+1/3!+1/+1/n n!+ !+ 该例题涉及两个问题该例题涉及两个问题: (1 1)用循环结构求)用循环结构求级数和的问题级数和的问题。本。本例根据某项值的精度来控制循环的结束例根据某项值的精度来控制循环的结束与否。与否。 (2 2)累加累加:e=e+t e=e+t ( ( 循环体外对累加和的变量清零循环体外对累加和的变量清零 e=0)e=0) (3)(3)连乘连乘:n=nn=n* *i i ( (循环体外对连乘积变量置循环体外对连乘积变

14、量置1 n=1)1 n=1) 一个循环体内又包含了一个一个循环体内又包含了一个完整的循环结构称为循环的嵌套完整的循环结构称为循环的嵌套, ,也叫也叫多重循环多重循环。例例4.134.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打印上三角或下三角程序如何改动打印上三角或下三角程序如何改动 下列30-90为语句标号,分别标记该语句,第40句执行了几次循

15、环?第50句执行了几次循环?第90句输出结果是多少?30 For j=1 to 12 step 340 For k=6 to 2 step 250 mk=k60 Print j,k70 Next k80 next j90 print j,k,mk31213,0,2 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 Fo

16、r ii =1 To 10 Next ii 【注意】(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;(3)不能从循环体外转向循环体内,反之则可以。 正确错误语句形式特点循环条件循环终止条件循环次数Do while.loop先判断TrueFalse=0Do until.loop先判断FalseTrue=0Do.loop while后判断TrueFalse=1Do.loop until后判断Falsetrue=1For .next先判断控制变量=终值(递增)控制变量=终值(递减)控制变量=终值(递增)控制变量=终值(递减)(终值-初值)/步长+1循环总结循环总结1.

17、 1. 不循环或死循环的问题不循环或死循环的问题 主要是循环条件、循环初值、循环终值、循环步长的设置有问题。例如:For I=10 to 20 step 1For I=20 to 10Do while falseFor I=10 to 20 step 0Do while 12. 2. 循环结构中缺少配对的结束语句循环结构中缺少配对的结束语句 For 少 配对的Next ,do 语句没有loop结束3. 3. 循环嵌套时循环嵌套时, ,内外循环交叉,与内外循环交叉,与IFIF块结构交叉块结构交叉运行时显示“无效的Next控制变量引用”例如: 例如For I=1 to 4 for I=1 to 4

18、For j=1 to 5 if 表达式 then. .Next I next iNext j endif4. 4. 累加、连乘时,存放累加、连乘结果的变量赋初值问题累加、连乘时,存放累加、连乘结果的变量赋初值问题 (1)一重循环 在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环 这要视具体问题分别对待。5 5 大数相乘产生大数相乘产生“溢出溢出”问题问题 见实验见实验P301-4.3P301-4.3 其他辅助控制语句其他辅助控制语句1.Go To1.Go To语句(语句(建议不使用建议不使用)形式:形式:Go To Go To 标号标号| |行号行号 作用:作用:无

19、条件转移到标号或行号指定的地方。无条件转移到标号或行号指定的地方。:常用算法:常用算法:求素数求素数素数:是一个大于2,且不能被1和本身以外的整数整除的整数。方法:方法:判断某数m是否为素数,可从素数本身的定义求解。对于m从I=2,3.m-1判断m是否能被I整除,只要有一个能被整除,m就不是素数。但这种算法速度很慢。例例4.15:4.15: 求100以内素数的代码: For m = 2 To 100 For m = 2 To 100 For i = 2 To m - 1 For i = 2 To m - 1 If (m Mod i) = 0 Then GoTo If (m Mod i) = 0

20、 Then GoTo NotNextMNotNextM Next i Next i Print m Print mNotNextM:NotNextM: Next m Next mm是否为素数求100以内的素数分析分析:实际上m如果是素数的话,是不可能被大于sqr(m)的整数所整除。所以循环条件改为:for I=2 to int(sqr(m).这样循环的次数会大大减少。 2.Exit 2.Exit语句语句 多种形式: Exit ForExit For、Exit DoExit Do、Exit Exit SubSub、Exit FunctionExit Function等。 作用:退出某种控制结构的

21、执行。 3. End3. End语句语句 多种形式: End、 End If、 End Select、 End With、 End Type、 End Sub、 End Function、 作用:End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。4.With 4.With 语句语句 形式如下: With 对象 语句块 End With 作用:对某个对象执行一系列的操作,而不用重复指出对象的名称。 With Label1 . .Height = 2000 . .Width = 2000 . .FontSize=22 . .Caption = MyLabel End Wi

22、th Label1.Height = 2000 Label1.Width = 2000 Label1.FontSize=22 Label1.Caption = MyLabel 等价:常用算法:常用算法:穷举法穷举法“穷举法”:也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。例例4.164.16 :百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。【分析】设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为: x+y+y=100 3x+2y+0.5z=100三个未

23、知数,两个方程,此题有若干个解。解决此类问题采用“试凑法”,把每一种情况都考虑到。 方法一:最简单三个未知数利用三重循环来实现 方法二:从三个未知数的关系,利用两重循环来实现。:常用算法:常用算法:递推法递推法“递推法”又称为“迭代法”:其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。 例例4.174.17 :猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?【分析】:这是一个“递推”问题,先从最后一天推出倒

24、数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子。设第n天的桃子为xn,那么它是前一天的桃子数的xn-1 的一半减1,即 xn = xn-1/2 1或者:xn-1 = (xn +1)*2Private 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:常用算法:常用算法:求最大或最小值求最大或最小值:在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。例:随机产生例:随机产生1010个个100100200200之间的数,求最大值。之间的数,求最大值。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 最大值=; MaxEnd Sub

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(vb循环结构课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|