版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章循环结构程序设计本章要点:
•For...Next循环•Do...Loop循环特点:重复相同或相似的操作步骤结构:循环体—要重复执行的语句序列。循环控制部分—规定循环的重复条件或重复次数,确定循环范围的语句1初值循环变量6.1For…Next循环结构1.格式For<循环变量>=<初值>To<终值>[Step<步长>]<语句组1>
[ExitFor]<语句组2>Next[<循环变量>]循环变量值超过终值?执行循环体循环变量+步长循环变量后续语句YesNo2.功能:执行过程如流程图所示23.说明(1)循环变量——数值变量(2)初值,终值,步长——数值表达式(3)步长——可正可负,但不能为0,为1时可以省略步长>0时,必须:初值<=终值循环结束条件——循环变量的值>终值步长<0时,必须:初值>=终值循环结束条件——循环变量的值<终值(4)ExitFor——退出循环,常放在条件语句中(5)Next之后的循环变量应与For语句中的循环变量应一致,也可以省略3Text1
Label3累加分析:累加器(变量)初值S=0
循环体(重复执行)S=S+I(I=1,2,…,N)PrivateSubCommand1_Click()DimNAsInteger,IAsInteger,SumAsIntegerN=Val(Text1.Text)Sum=0
ForI=1ToN
Sum=Sum+I
NextILabel3.Caption=SumEndSub【例6-1】求1+2+3+4+…+N4思考:1.求12+22+32+42+……+10022.求13+33+53+……+n33.求1-3+5-7+…+(-1)n+1(2n-1)4.求5.求5例:判断以下程序段的执行结果:
Fori=5To1Step-1Printi*i;NextiPrintPrinti例:判断以下程序段的执行结果:
X=6ForK=1To10Step-2X=X+KNextKPrintK,X6【例6-2】求N!(N!=1×2×3×…×N)
累乘分析:初始化:F=1循环体:F=F×I(I=1,2,3……N)程序:PrivateSubCommand1_Click()DimNAsInteger,IAsInteger,FAsLongN=Val(Text1.Text)F=1ForI=1ToNF=F*INextIText2.Text=FEndSub7思考:1.求1×3×5×7……(共N项)。2.求:3.求:8【例6-3】打印斐波那契(Fibonacci)数列的前20项斐波那契数列如下:0,1,1,2,3,5,8,13,…即从第三项起每一项是其前两项之和。分析:……PrivateSubForm_Click()A=0:B=1Text1.Text=Text1.Text&Str(A)&Str(B)&_Chr(13)&Chr(10)ForI=1To9A=A+BB=A+BText1.Text=Text1.Text&Str(A)&Str(B)&_Chr(13)&Chr(10)NextIEndSub9思考:1.在窗体上打印1、3、5、7、9、…、N。2.在窗体上显示1到500之间所有能被3整除的数,每行10个数。3.在带水平滚动条文本框中显示1到指定N之间所有能被3和7同时整除的数。4.在带垂直滚动条的文本框中显示00~3600之间的正弦和余弦值,每隔20求一组值。10例:找出1-1000之间的全部同构数说明:如果一个数出现在其平方数的右端,则称此数为同构数。如5在5^2=25的右端,25在25^2=625的右端等116.2Do…Loop循环结构问题:求12+22+32+42+…小于某数N的最大值,N由用户指定。特点:已知循环条件、未知循环次数,用Do…Loop循环结构实现1.格式格式一:DoWhile<条件>[<语句组1>][ExitDo][<语句组2>]Loop格式二:DoUntil<条件>[<语句组1>][ExitDo][<语句组2>]Loop122.功能使用While<条件>:条件为True时,执行循环体条件为False时,退出循环使用Until<条件>:条件为False时,执行循环体条件为True时,退出循环格式一、二:在循环起始处判断条件,为当型循环格式三、四:在循环终止处判断条件,为直到型循环格式三:Do[<语句组1>][ExitDo][<语句组2>]LoopWhile<条件>格式四:Do[<语句组1>][ExitDo][<语句组2>]LoopUntil<条件>133.说明(1)ExitDo语句用于退出循环体(2)也可以在Do语句和Loop语句之后都没有条件,这时在循环体内必须有强行退出循环的语句(3)多数情况下,当型循环和直到型循环可互相代替【例6-4】求12+22+32+42+…小于某数N的最大值,N由用户指定。设计界面下图:Text1Text2Command114
PrivateSubCommand1_Click()DimnAsLong,SAsLongN=Val(Text1.Text)I=0S=0
DoWhileS<N
I=I+1S=S+I*I
LoopText2.Text=S–I*IEndSub初始化循环体循环条件UntilS>=NWhileS<N思考:求12+22+32+42+…大于或等于某数N的最小值15【例6-5】求直至最后一项的值≤10-4为止。分析:用N表示每一项的分母(N=1、3、5…)
用Term表示每一项的值,则Term=1/N
用Sum表示累加和循环初始条件:N=1,Sum=0
循环终止条件:Term<=0.000116PrivateSubForm_Click()N=1:Sum=0DoTerm=1/(N*N)Sum=Sum+TermN=N+2LoopUntilTerm<=0.0001Form1.FontSize=12'设窗体的字体
CurrentY=200
'设当前显示位置
Print"运算结果为:";SumPrint"最后一项的值为:";TermEndSub17【例6-6】已知某乡镇企业现有产值和年增长率,试问多少年后,该企业的产值可以翻一番。翻一番后实际产值是多少?分析:P—现有产值
R—年增长率
Y—年
V—增长后的产值,初始值为P累乘:V=P(1+R)(1+R)…退出循环条件V>=2PText1Text2Text3Text418PrivateSubForm_Click()P=Val(Text1.Text)R=Val(Text2.Text)/100V=P:Y=0DoUntilV>=2*PY=Y+1V=V*(1+R)LoopText3.Text=YText4.Text=Format(V,"0.00")EndSub19【例6-7】给出两个正整数M、N,求它们的最大公约数和最小公倍数。分析:求最大公约数的方法如下(1)以M作被除数,N作除数,求余数R。(2)如果R不为零,则将除数N做为新的被除数M,将余数R做为新的除数N,再进行相除,得到新的余数R。(3)如果R仍不等于0,则重复上述步骤(2)。如果R为零,则这时的被除数N就是最大公约数。最小公倍数为两个数的积除以它们的最大公约数。20设计界面如下图所示:
Text1Text2Label3Label421DimAAsInteger,BAsInteger,NAsInteger,_MAsInteger,RAsIntegerPrivateSubCommand1_Click()M=Val(Text1.Text):N=Val(Text2.Text)A=M:B=NR=MModN
DoWhileR<>0M=NN=RR=MModNLoopLabel3.Caption=NEndSubPrivateSubCommand2_Click()Label4.Caption=A*B/NEndSub22【例6-8】给一个整数n(n>=3),判断它是否是素数分析:将数N被2—SQR(N)间全部整数除,如果都除不尽,则N是素数,否则N不是素数。设标志变量Flag,只要有一个被整除,就置为1。23PrivateSubCommand1_Click()N=Val(Text1.Text):K=Int(Sqr(N)):I=2Flag=0DoWhileI<=KAndFlag=0IfNModI=0ThenFlag=1ElseI=I+1LoopIfFlag=0ThenLabel1.Caption="是素数"
ElseLabel1.Caption="不是素数"
EndIfEndSub246.3循环的嵌套在一个循环体内又完整地包含另一个循环,称为循环的嵌套(或多重循环)例:ForI=1To3ForJ=5To7PrintI,JNextJNextI执行过程:……例:ForI=1To3ForJ=1ToIForK=-1To-2S=S+I+J+KNextKNextJNextI执行过程:……25说明(1)嵌套的循环可以是For…Next循环,也可以是Do…Loop循环(2)FOR循环有一个公共端点,可使用一个NEXT语句,循环变量按从内到外排列FORI=1TO3FORJ=5TO7PRINTI,JNEXTJ,IFORI=1TO3FORJ=5TO7PRINTI,JNEXTJNEXTI例:(3)内外循环不应交叉例:FORI=...FORJ=......NEXTINEXTJ26(4)嵌套循环应选用不同的循环变量例:FORI=1...FORJ=......NEXTJ...FORJ=......NEXTJNEXTI27【例6-9】求1+(1+2)+(1+2+3)+…(1+2+3+…+n),n由用户输入。分析:……PrivateSubForm_Click()N=Val(Text1.Text)
Sum=0ForI=1ToN
Sum1=0ForJ=1ToI
Sum1=Sum1+JNextJ
Sum=Sum+Sum1NextIText2.Text=SumEndSub28【例6-10】公鸡5个钱一只,母鸡三个钱一只、小鸡一个钱三只,要用100个钱买100只鸡,问公鸡、母鸡、和小鸡各买几只?分析:……PrivateSubForm_Click()DimIAsInteger,JAsInteger,KAsIntegerPrintTab(5);"公鸡";Tab(15);"母鸡";Tab(25);_"小鸡"ForI=0To20ForJ=0To33ForK=0To100Step3IfI*5+J*3+K\3=100AndI+J+K=100ThenPrintTab(5);I;Tab(15);J;Tab(25);KEndIfNextK,J,IEndSub29【例6-11】数字灯谜。有算式:ABCD-)CDCABCA、B、C、D为非负一位数字,要求找出满足以上算式的A、B、C、D。答案:10981098-9891093
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告宣传产品摄影服务合同
- 2024年度彩板房出口与进口合同
- 生物菌肥销售合同范例
- 2024年度律师事务所服务合同
- 短途运输合同模板
- 光伏采购合同范例
- 申购合同范例
- 2024年度委托加工合同:高端定制家具委托加工
- 2024年度教育培训合同服务条款
- 安装烟感合同范例
- 第9课发展全过程人民民主(课件+视频)(高教版2023·基础模块)
- 高考高中语文必背古诗文72篇-必考古诗词全总结
- 隧道工程毕业设计
- 体育场馆安保工作方案及措施
- MOOC 通信原理-北京邮电大学 中国大学慕课答案
- Python数据分析与应用-第2章-NumPy数值计算基础
- MOOC 工程水文学-华中科技大学 中国大学慕课答案
- (2024年)电子商务模式之B2B模式
- JTGT J23-2008 公路桥梁加固施工技术规范
- (高清版)DZT 0280-2015 可控源音频大地电磁法技术规程
- 大学生职业规划大赛生涯发展
评论
0/150
提交评论