首页 vb控制结构-循环结构程序设计ppt课件

vb控制结构-循环结构程序设计ppt课件

举报
开通vip

vb控制结构-循环结构程序设计ppt课件第6章VB控制结构(2)——循环结构程序设计本章内容及要求:(1)掌握For…..Next语句及ExitFor语句的使用;(2)掌握Do….Loop循环语句与ExitDo语句的使用;(3)掌握循环结构的嵌套应用;(4)掌握循环结构和选择结构的嵌套应用。6.1概述在VisualBasic程序设计中,实现循环结构的语句主要有下列几种: lFor…Next语句 Do…Loop语句lWhile…Wend语句DoWhile<条...

vb控制结构-循环结构程序设计ppt课件
第6章VB控制结构(2)——循环结构程序设计本章内容及要求:(1)掌握For…..Next语句及ExitFor语句的使用;(2)掌握Do….Loop循环语句与ExitDo语句的使用;(3)掌握循环结构的嵌套应用;(4)掌握循环结构和选择结构的嵌套应用。6.1概述在VisualBasic程序设计中,实现循环结构的语句主要有下列几种: lFor…Next语句 Do…Loop语句lWhile…Wend语句DoWhile<条件>…Loop形式Do…LoopWhile<条件>形式DoUntil<条件>…Loop形式Do…LoopUntil<条件>形式Do…Loop形式打印九九乘法表     Dim Sgs As String     Dim i, j As Integer     For i = 1 To 9     ’被乘数从1变到9         For j = i To 9    ’乘数从1变到9             Sgs = i & "×" & j & "=" & Str(i * j) ’打印 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 如1×1=1             Picture1.Print Tab((j - 1) * 9 + 1);Sgs;         Next j         Picture1.Print Next I For循环语句(一般用于循环次数已知)形式:For循环变量=初值to终值[Step步长] 语句块 [ExitFor] 语句块Next[循环变量]6.2For...Next循环结构循环次数例:ForI=2To13Step3PrintI,NextIPrint“I=“,I循环执行次数4输出I的值分别为:25811出了循环输出为:I=146.2For...Next循环结构6.2For...Next循环结构注意跳出FOR循环时的循环变量的值Fori=1to10step1s=s+iNextiPrintiFori=-1to-10step-1s=s+iNextiPrinti6.2For...Next循环结构注意对于For…Next语句来说,一旦进入循环,其“终止值”和“增量”便不会再改变了。PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerj=10:k=1Fori=1TojStepkPrintij=j-1k=k+1NextPrintj,kEndSub练习:分析下面程序段结束时窗体上显示的值是多少? (2)i2=0Fori=1To-2Step-1 i2=i2+1NextPrinti,i2(-34)(1)Fori=1To10 i2=i2+1NextPrinti (11)(3)i2=0Fori=1To5Step2 i2=i2+1NextPrinti(7)(4)i2=1Fori=1To10 i=i+1 i2=i2+1NextPrinti,i2(116)(5)i2=1i3=10i=10Fori=1Toi3 i=i+1 i2=i2+1 i3=i3+1NextPrinti,i2(116)(6)i2=0Fori=1To10i2=i2+1Ifi>6ThenExitForNextPrinti,i2(77)(7)i2=0i=10Doi2=i2+1LoopWhilei=i2Printi2(1)例6.7编程计算:S=1+2+3+…+100DimS%,I%S=0'累加前变量S为0ForI=1to100S=S+INextIPrint"S=",S例6.7的算法 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图6.2For...Next循环结构前测型:DoWhile<条件>语句块[ExitDo]语句块LoopDo…Loop循环语句使用形式6.3Do...Loop循环结构6.2Do...Loop循环结构PrivateSubForm_Click()DimiAsInteger:DimaAsInteger'定义所需变量i=0:a=0'给变量赋初值0,这两条语句可省略DoWhilei<100i=i+1'每次循环,变量i都增加1a=a+i'每次循环,变量a都加变量i的值LoopPrinta'计算完毕,变量a的值即为所求EndSub例:使用DoWhile…Loop循环语句计算1+2+3+…+100的值后测型:Do语句块[ExitDo]语句块LoopWhile<条件>6.3Do...Loop循环结构6.3Do...Loop循环结构例:使用Do…LoopWhile循环语句计算1+2+3+…+n的值,n的值由文本框输入。PrivateSubCommand1_Click()DimiAsInteger,nAsInteger,aAsInteger'定义所需变量n=Text1.Text'得到输入的值Doi=i+1'每次循环,变量i都增加1a=a+i'每次循环,变量a都加变量i的值LoopWhilei<nText2.Text=a'显示计算结果,变量a的值即为所求EndSub前测型:DoUntil<条件>语句块[ExitDo]语句块LoopDo…Loop循环语句使用形式6.3Do...Loop循环结构6.3Do...Loop循环结构例:计算阶乘n!的值(n的值由文本框输入)。PrivateSubCommand1_Click()DimiAsInteger,nAsIntegerDimaAsLongn=Text1.Text'得到输入的值na=1'必须为变量a赋初值1DoUntili=ni=i+1'每次循环,变量i都增加1a=a*i'每次循环,变量a都乘以变量i的值LoopText2.Text=a'计算完毕,变量a的值即为所求EndSub后测型:Do语句块[ExitDo]语句块LoopUntil<条件>6.3Do...Loop循环结构例:使用级数求π的值。根据下式,计算圆周率π的近似值,当计算到绝对值小于0.0001的通项时,认为满足精度要求,停止计算。π/4=1-1/3+1/5-1/7+…+(-1)n+11/2n-1+…6.3Do...Loop循环结构PrivateSubcmdPi_Click()DimaAsSingle'变量a保存通项之和DimmAsSingle'变量m保存通项的绝对值DimsAsInteger'变量s产生通项的符号DimiAsInteger'变量i产生通项的分母s=1'第一项符号为正i=1'第一项为1Do'开始循环m=1/i'计算通项的绝对值a=a+s*m'总和加上一个通项i=i+2'产生下一个通项分母s=-s'轮流转换通项的正负号LoopUntilm<0.0001'测试是否满足精度要求Text1.Text=a*4'输出计算结果EndSub6.3Do...Loop循环结构6.3Do...Loop循环结构Do语句块[ExitDo]语句块LoopPrivateSubCommand1_Click()DimiAsInteger,nAsIntegerDimaAsLongn=val(Text1.Text)a=1Doi=i+1a=a*iIfi=nThenExitDoLoopText2.Text=aEndSub例6.5:计算n!本节小结:(1)当使用While<条件>构成循环时,当条件为“真”,则反复执行循环体,当条件为“假”,则退出循环。(2)当使用Until<条件>构成循环时,当条件为“假”,则反复执行循环体,直到条件成立,即为“真”时,则退出循环。(3)在循环体内一般应有一个专门用来改变条件表达式中变量的语句,以使随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。(4)语句ExitDo的作用是退出它所在的循环结构,它只能用在DO/Loop结构中,并且常常是同选择结构一起出现在循环结构中,用来实现当满足某一条件时提前退出循环。6.3Do...Loop循环结构思考:将一个十进制数转换成二进制。算法 流程图 破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word 6.3Do...Loop循环结构用Do...Loop循环的五种形式分别完成将一个十进制数转换成二进制。算法流程图6.3Do...Loop循环结构分析:将一个十进制数转换成二进制采用连除2取余数的方法,即将十进制数除以2取余数,直到商为0,然后所得的余数即为二进制数各位的数码,从右到左排列,第一次除2的余数在最右边。算法设计如下:用变量Dec表示十进制数,Bin表示转换所得的二进制数字符串。(1)输入十进制Dec(2)Dec除以2得余数Res,商又赋值给Dec;让Bin=Res&Bin(3)若Dec=0,则算法结束;否则执行(2)将一个十进制数转换成二进制的程序如下:PrivateSubForm_Click()DimDecAsInteger'表示十进制数DimBinAsString'转换为二进制表示DimResAsIntegerDec=Val(InputBox("输入一个十进制数Dec=?"))Print"十进制数:";DecDoRes=DecMod2'求出除以2的余数Bin=Res&BinDec=Dec\2LoopUntilDec=0Print"转换为二进制数为:";BinEndSub6.3Do...Loop循环结构6.4.1While…Wend语句使用格式如下:While<条件><循环块>Wend说明:该语句的功能与DoWhile<条件>….Loop实现的循环完全相同。6.4While…Wend语句6.5.1循环的嵌套——多重循环结构如果在一个循环内完整地包含另一个循环结构,则称为多重循环,或循环嵌套,嵌套的层数可以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。上面介绍的几种循环控制结构可以相互嵌套,下面是几种常见的二重嵌套形式:6.5嵌套结构(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..Loop6.5嵌套结构对于循环的嵌套,要注意以下事项:(1)内循环变量与外循环变量不能同名;(2)外循环必须完全包含内循环,不能交叉;下面是正确的嵌套 6.5嵌套结构Fori=1To10Forj=1To20… Nexti NextjFori=1To10Fori=1To20… Nexti Nexti下面是不正确的嵌套 6.5嵌套结构PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To3Print"i=";iForj=1To3PrintTab;"j=";jNextNextEndSub循环嵌套的执行流程:6.5嵌套结构6.5嵌套结构PrivateSubCommand1_Click()Dimx%,a%,y%Forx=1to2a=0Fory=1tox+1a=a+1NextyPrinta;NextxEndSub程序运行后,单击命令按钮,在窗体上显示的值是(23)6.5嵌套结构ExitDo和ExitFor语句在循环嵌套时的作用6.5嵌套结构例:打印九九乘法表.Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti6.5嵌套结构6.5嵌套结构例:编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个三位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为:6.5嵌套结构PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerFori=1To9'i表示百位上的数Forj=0To9'j表示十位上的数Fork=0To9'k表示个位上的数n=i*100+j*10+kIfi^3+j^3+k^3=nThenPrintnNextkNextjNextiEndSub解法一:6.5嵌套结构解法二:PrivateSubForm_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerForn=100To999i=n\100'得到百位上的数字j=n\10-i*10'得到十位上的数字k=nMod10'得到个位上的数字Ifi^3+j^3+k^3=nThenPrintnNextnEndSub6.5.2循环结构与选择结构的嵌套在循环结构中可以完整嵌套选择结构,即整个选择结构都属于循环体。在选择结构中嵌套循环结构时,则要求整个循环结构必须完整地嵌套在一个分支内,一个循环结构不允许出现在两个或两个以上的分支内。6.5嵌套结构(1)ForI=…………IF…Then……EndIF……NextI(6)IF…Then……ForI=…………EndIF……NextI(5)SelectCase……ForI=…………Case…………Case…………NextI………EndSelect(3)ForI=…………IF…Then……NextI……EndIF(2)IF…Then……ForI=…………NextI……EndIF(4)ForI=…………SelectCase…Case…………Case…………EndSelect……NextI×××6.5嵌套结构6.6强制退出循环6.6.1用Exitfor语句强制退出For循环ExitFor语句可以使程序从For循环中退出来,转到Next语句后面的程序继续执行,而不必等到循环变量到达终值时才退出来。注意:在循环体外面,不可以使用ExitFor语句,而且ExitFor通常与IF语句一起使用。例:用300元买100只鸡,母鸡9元1只,小鸡1元1只,问母鸡、小鸡各应买多少只?分析:设买母鸡x只,则x的变化范围为1~30只,因为买的母鸡只数不可能超过30只,超过30只就不可能买到100只鸡。设小鸡为y只,则y=100-x。下面要做的工作就是求x为何值时,9x+y=300成立。6.6强制退出循环程序代码:OptionExplicitPrivateSubForm_Click()DimxasIntegerDimyasIntegerForx=1to30Y=100-xIf9*x+y=300thenExitforNextxPrint“母鸡有”;x;”只”,”小鸡有”;y;”只”EndSub6.6强制退出循环6.6.2用ExitDo语句强制退出Do循环ExitDo语句可以使程序从Do循环中退出来,转到Loop语句后面的程序继续执行,而不必等到循环达到结束条件时才退出来。注意:在循环体外面,不可以使用ExitDo语句,而且ExitDo通常与IF语句一起使用。例:用DoWhile循环改写上例程序,体会ExitDo语句的作用6.6强制退出循环程序代码:OptionExplicitPrivateSubForm_Click()DimxasIntegerDimyasIntegerX=1Dowhilex<=30Y=100-xIf9*x+y=300thenExitDoLoopPrint“母鸡有”;x;”只”,”小鸡有”;y;”只”EndSub6.7应用举例例:判断一个给定的整数是否为素数。算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数N是不是素数的基本方法是:将N分别除以2,3,…,N-1,若都不能整除,则N为素数。因为N=Sqr(N)*Sqr(N),所以,当N能被大于等于Sqr(N)的整数整除时,一定存在一个小于等于Sqr(N)的整数,使N能被它整除,因此只要判断N能否被2,3,…,Sqr(N)整除即可。算法流程图如下:DimN%,I%,K%N=Val(InputBox("N=?"))K=Int(Sqr(N))ForI=2ToKIfNModI=0ThenExitForNextIIfI>KThenPrintN;"是素数"ElsePrintN;"不是素数"EndIf算法流程图程序代码:6.7应用举例6.7应用举例例:将一角钱换成零钱(可以包括含1分、2分、5分中的任意多个面值),共有多少种换法?组成一角的零钱中,最多有10个1分、5个2分、2个5分。判断所有的组合中,总和正好是一角(10分)的情况有多少次即为所求。这类方法称为“穷举法”,也称为“列举法”。6.7应用举例6.7应用举例PrivateSubCommand1_Click()DimiAsInteger,jAsInteger,kAsIntegerDimnAsIntegerPrint"1分个数","2分个数","5分个数"Fori=0To10Forj=0To5Fork=0To2Ifi+j*2+k*5=10Thenn=n+1Printi,j,kEndIfNextNextNextPrint"共有"&n&"种方法"EndSub几种循环语句比较本章小结
本文档为【vb控制结构-循环结构程序设计ppt课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
爱赢
公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)
格式:ppt
大小:442KB
软件:PowerPoint
页数:0
分类:教育学
上传时间:2020-11-07
浏览量:1