




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章,循环结构程序设计,采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。本章主要内容循环语句For.Next/Do.Loop/While.Wend循环出口语句(Exit)多重循环程序举例,4.3循环结构设计,循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。VB提供的循环语句有:For.NextDo.LoopWhile/UntilDoWhile/Until.LoopWhile.Wend最常用的是For.Next和Do.Loop语句,按指定次数执行循环体,4.3.1For.Next循环,循环变量增加步长,格式:For循环变量初值To终值Step步长值循环体Next循环变量功能:当循环变量的值在初值到终值范围内时,执行一次循环体的语句代码,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行Next后面的语句。说明:循环变量是一个数值变量,初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环),也可以是负数(称为递减循环);若步长值为1,则Step1可以省略。,说明:,循环次数的一般计算公式:Int(终值-初值)/步长)+1事先已知循环次数,则可使用For-Next循环结构语句计数循环,PrivateSubForm_Load()ShowDimsumAsInteger计算1至100的和,存放在sum中显示结果Printsum=;sumEndSub,sum=sum+1sum=sum+2sum=sum+100,sum=sum+i,i=1100,采用Print直接在窗体上输出结果,PrivateSubForm_Load()ShowDimsumAsIntegerDimiAsIntegerFori=1To100sum=sum+iNextiPrintsum=;sumEndSub,Yes,No,sum=sum+i,i=1,i=100,i=i+1,执行过程:,Fori=1To100sum=sum+iNexti,示例2:求T=8!=1238,采用Print直接在窗体上输出结果,程序代码:PrivateSubForm_Load()Showt=1Forc=1To8t=t*cNextcPrintT=;tEndSub程序运行结果是:T40320语句t=t*c也称累乘器。先将t置1(不能置0)。在循环程序中,常用累加器和累乘器来完成各种计算任务。,如果要求N!呢?,思考:x=5Fori=1To20Step5x=x+i5Nexti,思考:s=5Fori=2.6To4.9Step0.6s=s+1Nexti,思考:PrivateSubForm_Click()x=5:k=5Fork=1To10Step-2x=x+kNextkPrintk;xEndSub,思考:PrivateSubForm_Click()DimsumAsDouble,xAsDoublesum=0n=0Fori=1To5x=n/in=n+1sum=sum+xNextiEndSub,下面采用“穷举法”来解此题。其做法是:从所有可能解中,逐个进行试验,若满足条件,就得到一个解,否则不是。直到条件满足或判别出无解为止。令母鸡为x只,小鸡为y只,根据题意可知y=100x开始先让x初值为1,以后逐次加1,求x为何值时,条件3x+y/3=100成立。如果当x达到33时还不能使条件成立,则可以断定此题无解。,示例3:100元买100只鸡,母鸡3元1只,小鸡1元3只,问各应买多少只?,采用Print直接在窗体上输出结果,程序代码:PrivateSubForm_Load()DimxAsInteger,yAsIntegerShowForx=1To33y=100-xIf3*x+y/3=100ThenPrint母鸡只数为:;x,Print小鸡只数为:;yEndIfNextxEndSub运行结果:母鸡只数为:25小鸡只数为:75,For.Next循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用Do.Loop循环。Do.Loop两种格式:前测型循环结构和后测型循环结构。两者区别在于判断条件的先后次序不同。,4.3.2Do.Loop循环语句,先判断循环条件,再执行循环体语句。,1.前测型Do.Loop循环,格式:DoWhile|Until条件循环体LoopDoWhile.Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环。DoUntil.Loop语句的功能:当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环。,1.前测型Do.Loop循环,PrivateSubForm_Load()DimsumAsInteger,iAsIntegerShowi=1DoWhilei=30PrintNumber;sEndSubA)01B)3030C)430D)3182,运行下列程序,单击窗体,则执行结果是(),PrivateSubForm_Click()b=1a=2DoWhileb10b=2*a+bLoopPrintbEndSubA)13B)17C)21D)33,运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()E=1:F=1Forj=1To3E=E+F:F=F+ENextjprintE;FEndSubA)66B)58C)1321D)3455,分析:本题可用“累加”的方法来完成,设累加的和为变量s,累加项为i2,则累加的语句可写为:s=s+i2采用DoWhileLoop语句:PrivateSubForm_Click()DimiAsInteger,sAsLongi=1s=0Dowhilei=10s=s+i2i=i+1LoopPrint“s=”;sEndSub,示例5:用Doloop语句求s=12+22+102,“辗转相除法”算法:求出m/n余数p,若p0,n即为最大公约数;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解。设计步骤如下:(1)创建应用程序的用户界面和设置对象属性,示例6:输入两个正整数,求它们的最大公约数,编写的“计算”按钮Click事件过程代码如下:PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,pAsIntegerm=Val(Text1.Text):n=Val(Text2.Text)Ifm0Text3.Text=mEndSub若输入的m和n的值为85和68,则运行结果如上图,用于提前退出循环格式:ExitFor|Do功能:直接从For循环或Do循环中退出。当程序运行时遇到Exit语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行。,4.3.3循环出口语句,示例5的循环语句可改为:Dop=mModnIfp=0ThenExitDoEndIfm=nn=pLoopWhilep0Text3.Text=,m,n,格式:While条件循环体Wend功能:当条件成立(为真)时,执行循环体;当条件不成立(为假)时,终止循环。本语句与上述DoWhile.Loop循环语句相似,4.3.4While.Wend循环语句,用下面的公式求的近似值(直到最后一项的绝对值小于10-6为止):分析先计算等式右边的和累加求和:pi=pi+t当|t|=0.000001pi=pi+tn=n+2s=-s交替改变加、减号t=s/nLoopPrint=;pi*4EndSub程序运行结果是:3.141575,示例7:求的近似值,思考:,PrivateSubForm_Click()ForI=7to90step5printInextIEndSub上述程序共执行执行循环体的次数是()A)14B)15C)16D)17,运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()Forj=1To15a=a+jMod3NextjPrintaEndSubA)1B)15C)90D)120,运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()Forj=1To3PrintTab(3*j);(2*j-1)*(2*j-1)NextjPrintEndSubA)1B)1610C)1925D)1691025,运行下列程序,单击窗体,则执行结果是PrivateSubForm_Click()s=0i=1DoWhilei=100If(i5)*5=iThens=s+1i=i+1EndIfLoopPrintsEndSub,运行下列程序,单击窗体,则执行结果是PrivateSubForm_Click()s=0i=1DoWhilei=100If(i5)*5=iThens=s+1i=i+1elsei=i+1EndifLoopPrintsEndSub,在窗体上放置一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()x=5Fori=1to20Step2x=x+i5nextiPrintxEndSub程序运行后,单击命令按钮,输出结果为()A)21B)22C)23D)24,运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()Forj=1To10a=a+j3+jMod3NextjPrintaEndSubA)20B)25C)30D)35,习题:依次输入5、4、3、2、1、-1,PrivateSubCommand_Click()X=0DoUntilx=-1a=InputBox(“请输入A的值”)a=Val(a)b=InputBox(“请输入B的值”)b=Val(b)x=InputBox(“请输入X的值”)x=Val(x)a=a+b+xprintaLoopEndSub,输出两个结果,分别是12和2,习题:依次输入5、4、3、2、1、-1,PrivateSubCommand_Click()X=0DoUntilx=-1a=InputBox(“请输入A的值”)a=Val(a)b=InputBox(“请输入B的值”)b=Val(b)x=InputBox(“请输入X的值”)x=Val(x)a=a+b+xLoopprintaEndSub,输出结果只有一个,是2,给定VB程序的功能是计算并输出100以内的所有能被3整除且个位数是6的所有整数,请将程序补充完整。PrivateSubForm_Click()Dimi,jAsIntegerFori=0To_j=i*10+6If_ThenPrintjEndIfNextiEndSub,9,jMod3=0,设计一个“加法器”程序,把每次输入的数累加,直到输入非数值数据为止。PrivateSubForm_Click()DimSumAsDouble,xAsString,yAsDoubleSum=0DoWhileTrue条件为真,循环无终止进行下去x=InputBox(请输入要加入的数,输入数据)IfIsNumeric(x)=FalseThenExitDoEndIfy=Val(x)Sum=Sum+yText1.Text=SumLoopMsgBox累加运算结束”EndSub,示例8:设计一个“加法器”程序,当一个循环里面包含有另一个完整的循环时,称为循环的嵌套。循环的嵌套对For循环和DoLoop循环均适用。多重循环程序示例程序运行结果PrivateSubForm_Load()15Show16Fori=1To3外循环17Forj=5To7内循环25Printi,j26Nextj27Nexti35EndSub3637,4.3.5循环的嵌套-多重循环结构,嵌套循环应注意的问题,二重循环,三重循环,思考:,运行下列程序,单击窗体,则运行结果是_。PrivateSubForm_Click()Forx=1To2a=0Fory=1Tox+1a=a+1NextyPrinta;NextxEndSub,结果是23,运行下列程序,单击窗体,则运行结果是_。PrivateSubForm_Click()N=0ForI=1To3ForJ=5To1Step-1N=N+1NextJ,IPrintN;J;I,结果是1504,本例可采用两重循环来实现。外循环控制输出7行,内循环控制每行输出要求的字符数。在进入内循环之前,使用Tab()来对起始输出位置定位,退出内循环后,使用Print来控制换行。,示例9:编一程序,输出下列所示的图形,采用Print直接在窗体上输出结果,程序代码如下:P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电梯钢结构承包合同(标准版)
- 模板工承包合同(标准版)
- 安全用电培训学习记录课件
- 2025年印刷品、记录媒介复制品项目规划申请报告模板
- 2025年计算机网络设备项目申请报告
- 安全用农药指导培训信息课件
- 法院服务质效提升课件
- 2025年校结业考试试题及答案
- 法律的公平与正义课件
- 2025福建省晋江圳源环境科技有限责任公司招聘6人考前自测高频考点模拟试题及答案详解(网校专用)
- 乐乐课堂版奥数三年级
- 口腔疾病的预防与治疗措施
- 中医护理操作并发症预防及处理
- 《混凝土结构耐久性电化学修复技术规程》
- 桥式起重机Q2练习测试题附答案
- 哈里伯顿Sperry定向钻井介绍专题培训课件
- 2021年江苏省徐州市中考生物试卷(附详解)
- JJF 1704-2018 望远镜式测距仪校准规范
- 石油化工设备维护检修规程通用设备12
- 《三角形的面积》教学设计方案
- GB/T 14667.1-1993粉末冶金铁基结构材料第一部分烧结铁、烧结碳钢、烧结铜钢、烧结铜钼钢
评论
0/150
提交评论