VB程序设计--循环结构

上传人:t****d 文档编号:243017153 上传时间:2024-09-13 格式:PPT 页数:32 大小:219KB
返回 下载 相关 举报
VB程序设计--循环结构_第1页
第1页 / 共32页
VB程序设计--循环结构_第2页
第2页 / 共32页
VB程序设计--循环结构_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Visual Basic,1,目 录,前言,第,1,讲,第,2,讲,第,3,讲,第,4,讲,第,5,讲,第,6,讲,第,7,讲,第,8,讲,第,9,讲,第,10,讲,第,11,讲,第,12,讲,第,13,讲,第,14,讲,第,15,讲,第,16,讲,2,回顾上一讲学习的内容,多分支选择结构及使用注意事项,IfElseifElseEndif,Select casecaseEnd select,For,循环结构,3,练习题,执行下面程序后,问循环次数和,s,的值。,S=5,For i=2.6 to 4.9 step 0.6,S=s+1,Next i,4,第五章 基本的控制结构,(5,学时),5.1,顺序结构,5.2,选择结构,5.3,循环结构,5.4,其它辅助控制语句,5.5,常见错误 (,顺序,、,条件,、,循环,),5,判断条件进行循环,While,循环,While ,wend,Do,循环,例:设,s=123n,,,求,s,不大于,4000,时的最大的,n,。,6,Do,循环控制结构,Doloop,循环:对于事先不知道循环次数的操作,使用,Do,循环方便有效。,语法格式有四种:, Do whileloop,语句,do while ,exit do,loop,条件,循环体,T,F,Exit Do,循环体,7, Do untilloop,语句,do until ,exit do,loop,当条件为,假,时,执行循环体,为,真,,退出循环体。,循环体最少执行,0,次,Do,循环控制结构,条件,循环体,F,T,Exit Do,循环体,8, Doloop while,语句,do,exit do,loop while,当条件为,真,时,继续执行循环体,为,假,,退出循环体。,循环体至少执行,一,次,循环体,条件,T,F,Exit Do,循环体,Do,循环控制结构,9, Doloop until,语句,do,exit do,loop until,当条件为,假,时,继续执行循环体,为,真,,退出循环体。,循环体至少执行一次,循环体,条件,F,T,Exit Do,循环体,Do,循环控制结构,10,例题:输出,1,20,之间能被,3,整除的 所有整数及它们的和,用,ForNext,循环实现,用,Do WhileLoop,循环实现,用,DoLoop While,循环实现,用,Do UntilLoop,循环实现,11,多重循环,把循环体内不含有循环语句的循环叫,单层循环,,把循环体内又含有循环语句的循环叫,多重循环,(多层循环或嵌套循环),在使用多重循环时,要注意循环的,完整性,,一个循环必须,完全包含,在另一个循环的内部,不能出现,交叉,现象。,Exit for,Do Until ,Loop,Do while ,Loop,Next,For,Exit Do,Do while ,Loop,Do while ,Loop,Loop,Do while ,12,例:求,m=14 ,n=6,的最大公约数,If m n,;,m,除以,n,得余数,r,;,若,r=,0,,则,n,为最大公约数;,否则执行,;,m,n,,,n,r,,再重复执行,m n r,14 6 2,6,2,0,13,m=m-n mn,n=n-m nm,m,、,n,为公约数,m=n,Do While m n,If m n Then,m = m - n,Else,n = n - m,End If,Loop,m n,14 6,8 6,2 6,2 4,2 2,辗转相减法,求最大公约数的算法,:,对于已知两数,m,、,n,:,如果,mn,则(,m,n,),m,,,如果,nm,则(,n,m,),n,;, mn,,,重复执行,;,若,m=n,,则,m,、,n,为最大公约数,辗转相减,14,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,思考:打印左下三角或右上三角,程序如何改动?,例,8,打印九九乘法表,For j = 1 To i,For j = i To 9,15,16,1,在选择结构中缺少配对的结束语句,对多行式的,If,块语句,应有相应的,End If,语句结束。,2.,多项选择,ElseIf,关键字的书写和多个条件表达式的次序问题,,见例,ElseIf,不要写成,Else If,3. Select Case,语句的使用,Select Case,后不能出现多个变量;,Case,子句后不能出现变量和逻辑表达式。,见例,选择结构应用中的常见错误,17,1.,不循环或死循环的问题,主要是循环条件、循环初值、循环终值、循环步长的设置有问题。,2.,循环结构中缺少配对的结束语句,For,缺,少 配对的,Next,3.,循环嵌套时,内外循环交叉,4.,累加、连乘时,存放累加、连乘结果的变量赋初值问题,在一重循环中,存放累加、连乘结果的变量赋初值,应在循环语句前。,多重循环,这要视具体问题分别对待。,循环应用中的常见错误,18,四,.,其他辅助控制语句,1. Go To,语句,形式:,Go To ,标号,|,行号,作用:无条件地转移到标号或行号指定的那行语句。,标号是一个字符序列,行号是一个数字序列。,2. Exit,语句,Exit For,、,Exit Do,、,Exit Sub,、,Exit Function,等。,作用:退出某种控制结构的执行。,3. End,语句,多种形式:,End,、,End If,、,End Select,、,End With,、,End Type,、,End Function,、,End Sub,等。,作用:,End,结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。,19,语句形式如下:,With,对象,语句块,End With,作用:对某个对象执行一系列的操作,而不用重复指出对象的名称。,Label1.Height = 2000,Label1.Width = 2000 Label1.FontSize=22,Label1.Caption = This is MyLabel,等价,4.With,语句,With Label1,.Height = 2000,.Width = 2000,.FontSize=22,.,Caption = This is MyLabel ,End With,属性前的圆点不能省略,20,五、常用算法(一),算法:是对某个问题求解过程的描述,。,1.,累加、连乘,例,:1,100,的,5,或,7,的倍数的和,Sum = 0,For i = 1 To 100,If i Mod 5 = 0 Or i Mod 7 = 0 Then,Sum = Sum + i,End If,Next i,Print Sum,例,:3,10,的乘积,t = 1,For i =3 To 10,t = t * i,Next i,Print t,思考,:,若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?,21,该例题涉及两个问题:,用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。,累加:,e=e+t,循环体外对累加和的变量清零,e=0,连乘:,n=n*i,循环体外对连乘积变量置,1,n=1,例,4.14,求自然对数,e,的近似值,要求:误差小于,0.00001,,近似公式为,:,22,Private Sub Form_Click(),Dim i%,n&, t!, e!,e = 0 : n = 1 ,e,存放累加和、,n,存放阶乘,i = 0 : t = 1 ,i,计数器、,t,第,i,项的值,Do While t 0.00001,e = e + t : i = i + 1,累加、连乘,n = n * i : t = 1 / n,Loop,Print ,计算了,; i; ,项的和是,; e,End Sub,例,4.14,程序代码,要求:误差小于,0.00001,23,判别某数,m,是否为素数最简单的方法是,:,对于,m,从,i,=2,,,3,,,,,m,-1,判别,m,能否被,i,整除,只要有一个能整除,,m,不是素数,否则,m,是素数。,求,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,以内的素数,思考,:,此例用,Go To,语句对非素数不再判断,若不用,GoTo,语句,如何修改程序?见,例,4.15,2.,求素数,24,3.,穷举法,“穷举法”也称为“枚举法”或“试凑法”。即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。,例,4.16,:,百元买百鸡问题。假定小鸡每只,5,角,公鸡每只,2,元,母鸡每只,3,元。现在有,100,元钱要求买,100,只鸡,编程列出所有可能的购鸡方案。,设母鸡、公鸡、小鸡各为,x,、,y,、,z,只,根据题目要求,列出方程为:,x+y+z=100,3x+2y+0.5z=100,三个未知数,两个方程,此题有若干个解。,采用“穷举法”,把每一种情况都考虑到。,方法一:最简单三个未知数利用三重循环来实现。,方法二:从三个未知数的关系,利用两重循环来实现,。,25,4.,递推法,“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。,例,4.17,猴子吃桃子。小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半零一个,到第,7,天早上要吃时只剩下一个了,问小猴那天共摘下了多少个桃子?,26,例,4.17,分析,这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子,。,设第,n,天的桃子为,X,n,,那么它是前一天的桃子数。,27,例:随机产生,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,5.,最小、最大值,在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。,28,例,4.18,实际应用,求最短残料。,有一根长度为,321,米的钢材料,要将它截取成两种规格,a,、,b,的长度分别为,17,米和,27,米的短料,每种至少,1,段,问分隔成,a,b,各多少段后,剩余的残料,r,最少?,分析,该题利用“试凑法”通过二重循环求残料,r,的最小值正数,残料不可能是负数。,程序如下:,29,Private Sub Command1_Click(),Dim a%, b%, r!, ia%, ib%,r = 321 ,最小值初值取钢材料的长度,For b = 1 To (321 -17) 27 b,最多的段数,For a = 1 To (321-b*27) 17 a,最多的段数,t = 321 - b * 27 - a * 17 ,当前的残料,If t 0 And t r Then,r = t ,求最短的残料,ia = a ,最短残料时,a,的段数,ib = b ,最短残料时,b,的段数,End If,Next a,Next b,Print ia, ib, r,End Sub,30,本讲小结,介绍了循环的各种形式,要求,熟练掌握循环的语法格式,31,作业和实验题目,作业,:,1.,复习教材第五章内容;,2.,预习教材第六章。,上机实验,:,1.,继续完成,实验六,;,2.,上机完成补充实验一、补充实验二。,32,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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