VB程序设计循环结构

上传人:夏** 文档编号:567670841 上传时间:2024-07-22 格式:PPT 页数:32 大小:263.02KB
返回 下载 相关 举报
VB程序设计循环结构_第1页
第1页 / 共32页
VB程序设计循环结构_第2页
第2页 / 共32页
VB程序设计循环结构_第3页
第3页 / 共32页
VB程序设计循环结构_第4页
第4页 / 共32页
VB程序设计循环结构_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《VB程序设计循环结构》由会员分享,可在线阅读,更多相关《VB程序设计循环结构(32页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic Visual Basic 程序设程序设计计目 录前言第1讲第2讲第3讲第4讲第5讲第6讲第7讲第8讲第第9 9讲讲第10讲第11讲第12讲第13讲第14讲第15讲第16讲回顾上一讲学习的内容多分支选择结构及使用注意事项多分支选择结构及使用注意事项IfIfElseifElseifElseElseEndifEndifSelect caseSelect casecasecaseEnd selectEnd selectFor For 循环结构循环结构第五章第五章 基本的控制结构基本的控制结构 (5(5学时)学时)5.15.1 顺序结构顺序结构5.25.2 选择结构选择结构5.

2、35.3 循环结构循环结构5.45.4 其它辅助控制语句其它辅助控制语句5.5 5.5 常见错误常见错误 (顺序顺序、条件条件、循环循环)判断条件进行循环WhileWhile循环循环While While wendwendDoDo循环循环例:设例:设s=123n,求求s不大于不大于4000时的最时的最大的大的n。Do循环控制结构Doloop循环:对于事先不知道循环次数的操作,使用Do循环方便有效。语法格式有四种: Do whileloop Do whileloop Do whileloop Do whileloop语句语句语句语句do while do while do while do wh

3、ile exit do exit do exit do exit do looplooplooploop条件条件循环体循环体TFExit Do循环体循环体 Do untilloop Do untilloop Do untilloop Do untilloop 语句语句语句语句 do until do until do until do until exit do exit do exit do exit do loop loop loop loop 当条件为假时,执行循环体,为真,退出循环体。 循环体最少执行0次Do循环控制结构条件条件循环体循环体FTExit Do循环体循环体 Doloop

4、while Doloop while Doloop while Doloop while语句语句语句语句 dodododo exit do exit do exit do exit do loop while loop while loop while loop while 当条件为当条件为真真时,继续执行循时,继续执行循环体,为环体,为假假,退出循环体。,退出循环体。 循环体至少执行循环体至少执行一一次次循环体条件TFExit Do循环体Do循环控制结构 Doloop until Doloop until Doloop until Doloop until语句语句语句语句 dodo exit

5、 do exit do exit do exit do loop until loop until loop until loop until 当条件为假时,继续执行循环体,为真,退出循环体。 循环体至少执行一次循环体循环体条件条件FTExit Do循环体循环体Do循环控制结构例题:输出120之间能被3整除的 所有整数及它们的和用ForNext循环实现用Do WhileLoop循环实现用DoLoop While循环实现用Do UntilLoop循环实现多重循环把循环体内不含有循环语句的循环叫单层循环,把循环体内又含有循环语句的循环叫多重循环(多层循环或嵌套循环)在使用多重循环时,要注意循环的完

6、整性,一个循环必须完全包含在另一个循环的内部,不能出现交叉现象。Exit forDo Until LoopDo while LoopNextForExit DoDo while LoopDo while LoopLoopDo while 例:求例:求例:求例:求 m=14 ,n=6m=14 ,n=6 的最大公约数的最大公约数的最大公约数的最大公约数 If m n Then If m n Then t = m t = m m = n m = n n = t n = t end if end if r=m mod n r=m mod n Do While (r 0) Do While (r 0)

7、m=nm=n n=r n=r r= m mod n r= m mod n Loop Loop Print Print 最大公约数最大公约数最大公约数最大公约数=, n=, n 例7: 用辗转相除法求两自然数m,n的最大公约数和最小公倍数求最大公约数的算法求最大公约数的算法求最大公约数的算法求最大公约数的算法:对于已知两数对于已知两数对于已知两数对于已知两数m m m m、n n n n,使得使得使得使得mnmnmnmn;m m m m除以除以除以除以n n n n得余数得余数得余数得余数r r r r;若若若若r=r=r=r=0 0 0 0,则,则,则,则n n n n为最大公约数;为最大公约

8、数;为最大公约数;为最大公约数;否则执行否则执行否则执行否则执行;m m m mn n n n,n n n nr r r r,再重复执行,再重复执行,再重复执行,再重复执行 m n r14 6 2 6 2 0m=m-n mnm=m-n mnn=n-m nmn=n-m nmmm、n n为公约数为公约数为公约数为公约数 m=nm=nDo While m n If m n Then m = m - n Else n = n - m End IfLoopm n 14 6 8 6 2 6 2 4 2 2辗转相减法辗转相减法求最大公约数求最大公约数求最大公约数求最大公约数的算法的算法的算法的算法:对于已知

9、两数对于已知两数对于已知两数对于已知两数m m m m、n n n n: 如果如果如果如果mnmnmnmn 则(则(则(则(m m m mn n n n)m m m m ,如果如果如果如果nmnmnmnm则(则(则(则(n n n nm m m m)n n n n ; mnmnmnmn,重复执行重复执行重复执行重复执行 ;若若若若m=nm=nm=nm=n,则,则,则,则m m m m、n n n n为最大公约数为最大公约数为最大公约数为最大公约数辗辗转转相相减减 For i = 1 To 9 For j = 1 To 9 se = i & & j & = & i * j Picture1.Pr

10、int Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Next i思考:打印左下三角或右上三角,程序如何改动?思考:打印左下三角或右上三角,程序如何改动?例例8 8 打印九九乘法表For j = 1 To iFor j = i To 91 1 1 1在选择结构中缺少配对的结束语句在选择结构中缺少配对的结束语句在选择结构中缺少配对的结束语句在选择结构中缺少配对的结束语句对多行式的对多行式的对多行式的对多行式的IfIfIfIf块语句,应有相应的块语句,应有相应的块语句,应有相应的块语句,应有相应的End IfEnd IfEnd IfEnd If语句结

11、束。语句结束。语句结束。语句结束。2. 2. 2. 2. 多项选择多项选择多项选择多项选择ElseIfElseIfElseIfElseIf关键字的书写和多个条件表达式关键字的书写和多个条件表达式关键字的书写和多个条件表达式关键字的书写和多个条件表达式的次序问题,的次序问题,的次序问题,的次序问题,见例见例见例见例 ElseIfElseIfElseIfElseIf 不要写成不要写成不要写成不要写成Else IfElse IfElse IfElse If 3. Select Case3. Select Case3. Select Case3. Select Case语句的使用语句的使用语句的使用语

12、句的使用 Select Case Select Case Select Case Select Case 后不能出现多个变量;后不能出现多个变量;后不能出现多个变量;后不能出现多个变量; Case Case Case Case子句后不能出现变量和逻辑表达式。子句后不能出现变量和逻辑表达式。子句后不能出现变量和逻辑表达式。子句后不能出现变量和逻辑表达式。见例见例见例见例选择结构应用中的常见错误选择结构应用中的常见错误1.不循环或死循环的问题不循环或死循环的问题 主要是循环条件、循环初值、循环终值、循环步长的设置有问题。主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2.循环结构中缺少配

13、对的结束语句循环结构中缺少配对的结束语句 For 缺缺少少 配对的配对的Next 3.循环嵌套时循环嵌套时, ,内外循环交叉内外循环交叉4.累加、连乘时,存放累加、连乘结果的变量赋初值问题累加、连乘时,存放累加、连乘结果的变量赋初值问题 在一重循环中,存放累加、连乘结果的变量赋初值在一重循环中,存放累加、连乘结果的变量赋初值应在循环语句前。应在循环语句前。 多重循环多重循环 这要视具体问题分别对待。这要视具体问题分别对待。循环应用中的常见错误循环应用中的常见错误四.其他辅助控制语句1. Go To 1. Go To 1. Go To 1. Go To 语句语句语句语句形式:形式:形式:形式:G

14、o To Go To Go To Go To 标号标号标号标号| | | |行号行号行号行号 作用:无条件地转移到标号或行号指定的那行语句。作用:无条件地转移到标号或行号指定的那行语句。作用:无条件地转移到标号或行号指定的那行语句。作用:无条件地转移到标号或行号指定的那行语句。 标号是一个字符序列,行号是一个数字序列。标号是一个字符序列,行号是一个数字序列。标号是一个字符序列,行号是一个数字序列。标号是一个字符序列,行号是一个数字序列。2. Exit 2. Exit 2. Exit 2. Exit 语句语句语句语句Exit ForExit ForExit ForExit For、Exit Do

15、Exit DoExit DoExit Do、Exit SubExit SubExit SubExit Sub、Exit FunctionExit FunctionExit FunctionExit Function等。等。等。等。作用:退出某种控制结构的执行。作用:退出某种控制结构的执行。作用:退出某种控制结构的执行。作用:退出某种控制结构的执行。3. End 3. End 3. End 3. End 语句语句语句语句多种形式:多种形式:多种形式:多种形式:EndEndEndEnd、End IfEnd IfEnd IfEnd If、End SelectEnd SelectEnd SelectE

16、nd Select、End WithEnd WithEnd WithEnd With、End TypeEnd TypeEnd TypeEnd Type、End FunctionEnd FunctionEnd FunctionEnd Function、End SubEnd SubEnd SubEnd Sub 等。等。等。等。作用:作用:作用:作用:EndEndEndEnd结束一个程序的运行;其余表示某个结构结束一个程序的运行;其余表示某个结构结束一个程序的运行;其余表示某个结构结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。的结束,与对应的结构语句配对出现。的结束,与对应的

17、结构语句配对出现。的结束,与对应的结构语句配对出现。五、常用算法(一)五、常用算法(一)算法:是对某个问题求解过程的描述。1.1.累加、连乘累加、连乘例:1100的5或7的倍数的和 Sum = 0Sum = 0 For i = 1 To 100 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + iSum = Sum + i End If End If Next i Next i Print Sum Print Sum例:310的乘积 t = 1t

18、= 1 For i =3 To 10 For i =3 To 10 t = t * it = t * i Next i Next i Print t Print t思考:若把循环体前面置各变量初值的语句放若把循环体前面置各变量初值的语句放若把循环体前面置各变量初值的语句放若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?在循环体内,程序运行时会产生什么情况?在循环体内,程序运行时会产生什么情况?在循环体内,程序运行时会产生什么情况?该例题涉及两个问题:该例题涉及两个问题:该例题涉及两个问题:该例题涉及两个问题:用循环结构求级数和的问题。本例根据某项值的精度用循环结构求级数

19、和的问题。本例根据某项值的精度用循环结构求级数和的问题。本例根据某项值的精度用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。来控制循环的结束与否。来控制循环的结束与否。来控制循环的结束与否。累加:累加:累加:累加:e=e+t e=e+t e=e+t e=e+t 循环体外对累加和的变量清零循环体外对累加和的变量清零循环体外对累加和的变量清零循环体外对累加和的变量清零 e=0e=0e=0e=0 连乘:连乘:连乘:连乘:n=n*i n=n*i n=n*i n=n*i 循环体外对连乘积变量置循环体外对连乘积变量置循环体外对连乘积变量置循环体外对连乘积变量置1 1 1 1 n=1n=

20、1n=1n=1例例4.144.14 求自然对数e的近似值要求:误差小于0.00001,近似公式为:Private Sub Private Sub Private Sub Private Sub Form_ClickForm_ClickForm_ClickForm_Click()()()() Dim i%,n&, t!, e! Dim i%,n&, t!, e! Dim i%,n&, t!, e! Dim i%,n&, t!, e! e = 0 : n = 1 e = 0 : n = 1 e = 0 : n = 1 e = 0 : n = 1 e e e e存放累加和、存放累加和、存放累加和、存

21、放累加和、n n n n存放阶乘存放阶乘存放阶乘存放阶乘 i = 0 : t = 1 i = 0 : t = 1 i = 0 : t = 1 i = 0 : t = 1 i i i i计数器、计数器、计数器、计数器、t t t t第第第第i i i i项的值项的值项的值项的值 Do While t 0.00001Do While t 0.00001Do While t 0.00001Do While t 0.00001 e = e + t : i = i + 1 e = e + t : i = i + 1 e = e + t : i = i + 1 e = e + t : i = i + 1

22、累加、连乘累加、连乘累加、连乘累加、连乘 n = n * i : t = 1 / nn = n * i : t = 1 / nn = n * i : t = 1 / nn = n * i : t = 1 / n Loop Loop Loop Loop Print Print Print Print 计算了计算了计算了计算了 ; i; ; i; ; i; ; i; 项的和是项的和是项的和是项的和是 ; e; e; e; eEnd SubEnd SubEnd SubEnd Sub例例4.144.14 程序代码要求:误差小于0.00001判别某数判别某数判别某数判别某数m m m m是否为素数最简单

23、的方法是是否为素数最简单的方法是是否为素数最简单的方法是是否为素数最简单的方法是: : : : 对于对于对于对于m m m m 从从从从i i i i=2=2=2=2,3 3 3 3,m m m m-1-1-1-1判别判别判别判别m m m m能否被能否被能否被能否被i i i i整除,整除,整除,整除,只要有一个能整除,只要有一个能整除,只要有一个能整除,只要有一个能整除,m m m m不是素数,否则不是素数,否则不是素数,否则不是素数,否则m m m m是素数。是素数。是素数。是素数。求求求求100100100100以内的素数以内的素数以内的素数以内的素数 For m = 2 To 100

24、 For i = 2 To m - 1 If (m Mod i) = 0 Then GoTo NotNextM Next i Print m NotNextM: Next mm是否为素数求100以内的素数思考: 此例用Go To语句对非素数不再判断,若不用GoTo语句,如何修改程序?见例4.152.2.求素数求素数3.3.穷举法穷举法“穷举法”也称为“枚举法”或“试凑法”。即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。 例例4.164.16:百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。设母鸡

25、、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:x+y+zx+y+zx+y+zx+y+z=100=100=100=100 3x+2y+0.5z=1003x+2y+0.5z=1003x+2y+0.5z=1003x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。三个未知数,两个方程,此题有若干个解。三个未知数,两个方程,此题有若干个解。三个未知数,两个方程,此题有若干个解。采用采用采用采用“穷举法穷举法穷举法穷举法”,把每一种情况都考虑到。,把每一种情况都考虑到。,把每一种情况都考虑到。,把每一种情况都考虑到。 方法一:最简单三个未知数利用三重循环来实现。方法一:最简单三个未

26、知数利用三重循环来实现。方法一:最简单三个未知数利用三重循环来实现。方法一:最简单三个未知数利用三重循环来实现。 方法二:从三个未知数的关系,利用两重循环来实现方法二:从三个未知数的关系,利用两重循环来实现方法二:从三个未知数的关系,利用两重循环来实现方法二:从三个未知数的关系,利用两重循环来实现。4.4.递推法递推法“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。 例4.17 猴子吃桃子。小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半零一

27、个,到第7天早上要吃时只剩下一个了,问小猴那天共摘下了多少个桃子?例4.17 分析这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子。设第n天的桃子为Xn,那么它是前一天的桃子数。例:随机产生例:随机产生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 最大值=; M

28、axEnd Sub5.5.最小、最大值最小、最大值 在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。例4.18 4.18 实际应用,求最短残料。有一根长度为321米的钢材料,要将它截取成两种规格a、b的长度分别为17米和27米的短料,每种至少1段,问分隔成a,b各多少段后,剩余的残料r最少?分析,该题利用“试凑法”通过二重循环求残料r的最小值正数,残料不可能是负数。 程序如下:Private Sub Command1_Click()Private Sub

29、Command1_Click() Dim a%, b%, r!, Dim a%, b%, r!, iaia%, %, ibib% r = 321 r = 321 最小值初值取钢材料的长度最小值初值取钢材料的长度最小值初值取钢材料的长度最小值初值取钢材料的长度 For b = 1 To (321 -17) 27 For b = 1 To (321 -17) 27 b b最多的段数最多的段数最多的段数最多的段数 For a = 1 To (321-b*27) 17 For a = 1 To (321-b*27) 17 a a最多的段数最多的段数最多的段数最多的段数 t = 321 - b * 27

30、 - a * 17 t = 321 - b * 27 - a * 17 当前的残料当前的残料当前的残料当前的残料 If t 0 And t 0 And t r Then r = t r = t 求最短的残料求最短的残料求最短的残料求最短的残料 iaia = a = a 最短残料时最短残料时最短残料时最短残料时a a的段数的段数的段数的段数 ibib = b = b 最短残料时最短残料时最短残料时最短残料时b b的段数的段数的段数的段数 End If End If Next a Next a Next b Next b Print Print iaia, , ibib, r, rEnd SubEnd Sub本讲小结介绍了循环的各种形式介绍了循环的各种形式要求要求熟练掌握循环的语法格式熟练掌握循环的语法格式作业和实验题目作业和实验题目作业作业:1.1.复复习教材第五章内容;教材第五章内容;2.2.预习教材第六章。预习教材第六章。上机实验上机实验:1.1.继续完成继续完成实验六实验六;2.2.上机完成补充实验一、补充实验二。上机完成补充实验一、补充实验二。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号