欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    循环结构的实现.ppt

    • 资源ID:5349430       资源大小:311KB        全文页数:37页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    循环结构的实现.ppt

    1,第三章 循环结构的实现,循环操作:,重复执行一组指令(或一个程序段),循环分类:,2,3.1 循环的概念,例:打印30个学生的学号和成绩,N=1 100 READ(*,*)NUM,GRADEWRITE(*,*)NUM,GRADE N=N+1IF(N30)GOTO 100END,GOTO语句破坏了语句顺序执行的正常状况,不符合结构化原则,因此一般不提倡使用GOTO语句!,属于直到型循环,3,3.2 DO循环结构,DO 10 N=1,30 READ(*,*)NUM,GRADE 10 WRITE(*,*)NUM,GRADE END,DO s,v=e1,e2,e3,4,DO语句几点说明:,1.e1、e2、e3可以是常数、变量或表达式,DO s,v=e1,e2,e3,2.e1、e2、e3的值可以正或负,e1、e2的值可以为0,e3的值不应为0,3.脱离循环的条件:循环变量沿变化的方向超过终值,DO 10,T=5.0,25.0,0.5,5,4.循环次数计算公式为:r=INT(e2-e1+e3)/e3),5.如果v的类型和 e1、e2、e3的类型不一致,先将e1、e2、e3的类型化成v的类型,然后处理,6.如果计算出循环次数 r0 时,按 r=0 处理,即一次也不执行循环,DO 20,I=1,10,2,循环次数:r=INT(10-1+2)/2),=INT(5.5)=5次,DO 20,X=1.5,3.6,1.2,循环次数:r=INT(3.6-1.5+1.2)/1.2)=2,循环次数:r=INT(3-1+1)/1)=3,DO 10,I=10,1,2,循环次数:r=INT(1-10+2)/2)=-3,避免使用实型的循环变量!用整型的循环变量时,计算出的循环次数是绝对正确的!,6,DO 循环执行过程,DO循环属于当型循环,DO s,v=e1,e2,e3 s,适用范围:循环次数已知,7,循环终端语句&继续语句(CONTINUE语句),循环终端语句,循环体中带有语句标号的最后一个语句,定义:,DO 10 I=1,50 20 K=I*110 PRINT*,I,K,规定:,下列语句不能作为DO循环的终端语句:,8,逻辑IF语句可作为DO循环的终端语句,但其内嵌语句不能是上述控制语句!,DO 10 I=1,50 K=I*1 PRINT*,I,K 10 IF(K.GT.500)GOTO 100,9,继续语句(CONTINUE语句),CONTINUE,形式:,作用:,将流程转移到逻辑上的下一个操作,DO 20,I=1,10,2 PRINT*,I 20 CONTINUE,优点:,.循环范围清晰,易识别;,.使一般可执行语句不再作为终端语句,仅执行其语句本身功能;,.不用记哪些语句不能作终端语句,10,DO 循环的一些规定,1.循环变量可以在循环体中被引用,但不应再被赋值;,.循环变量的初值、终值和步长值在执行循环体期间不能改变;,DO 20,N=1,100 M=2*N PRINT*,M 20 CONTINUE,DO 20,N=1,100 N=2*N PRINT*,N 20 CONTINUE,DO 20,I=K,J,M K=2*K J=J+1 M=M/2 PRINT*,K,J,M 20 CONTINUE,11,3.可以用转移语句从循环体内转到循环体外,也可以在循环体内转移,但不允许从循环外转到循环内;,4.正常出口&非正常出口;,DO 10,I=1,100 IF(I*I.GE.500)GOTO 100 10 CONTINUE 100 PRINT*,I,I*I,非正常出口,正常出口,DO WHILE循环(当型循环),do while(e)blocklabel term_stmt,e为逻辑表达式(或关系表达式),DO WHILE循环的执行1.计算e的值2.若e为真,执行循环体 若e为假,不执行,转去执行ENDO后的语句,13,*统计平均成绩integer countsum=0.0count=0read(*,*)scoredo while(score.ge.0.0)sum=sum+score count=count+1 read(*,*)score enddoaver=sum/countwrite(*,*)count=,countwrite(*,*)average=,averend,14,*辗转相除求最大公约数integer m,n,r,tread(*,*)m,nif(m.lt.n)then t=m m=n n=tend ifr=mod(m,n)do while(r.ne.0)m=n n=r r=mod(m,n)enddowrite(*,*)The greatest,common divisor is,nend,15,DO 循环的嵌套(多重循环),一个循环体内又完整的包含另一个循环结构,注意事项:,1.嵌套循环的各层不允许使用同一个变量名作为循环控制变量;,DO 20 I=1,5 DO 10 I=2,10,2 10 CONTINUE 20 CONTINUE,16,3.嵌套DO循环中,可以共用一个循环终端语句;,2.对于任何形式的循环,都不允许循环的交叉;,DO 10 I=1,10 DO 20 J=0,20,2 20 CONTINUE10 CONTINUE,DO 10 I=1,10 DO 10 J=0,20,2 10 CONTINUE,4.可以从内层循环根据需要将控制转到外层循环,但不允许从外层循环将控制转到内层循环,17,C打印九九表do 10 i=1,9 do 20 j=1,9 k=i*j write(*,*)i,*,j,=,k20 continue write(*,*)10continueend,C百钱买百鸡C100元钱买100只鸡C公鸡5元/只C母鸡3元/只C小鸡1元/3只integer x,y,zdo 10 x=0,19 do 20 y=0,33 z=100-x-y if(15*x+9*y+z.eq.300)$write(*,*)x,y,z20 continue10continueend,18,几种循环形式的关系和比较,1.DO循环用来处理已确定循环次数的问题。其他循环即可以处理已知循环次数的问题,也可以处理不确定循环次数的问题。对事先知道确定循环次数的问题,用DO循环比较方便。,2.DO循环实质上也是一种“当型循环”。,3.几种形式的循环可以互相转换,或者说,同一个问题可用任一种循环来处理。,4.各种循环可以互相嵌套。但必须一个循环完整的包含在另一个循环之内。,19,END DO 语句(Fortran 90),DO 20,I=1,10,2 PRINT*,I 20 CONTINUE,DO I=1,10,2 PRINT*,I END DO,do 10 while(score.ge.0.0)sum=sum+score read(*,*)score10continue,do while(score.ge.0.0)sum=sum+score read(*,*)score end do,20,CYCLE 和 EXIT 语句(Fortran 90),CYCLE命令略过循环的程序模块中,在CYCLE命令后面的所有程序代码,直接跳回循环的开头来进行下一次循环。,program eximplicit noneinteger dest,floorparameter(dest=9)do floor=1,dest if(floor=4)cycle write(*,*)floorend doend,假设某百货公司共有9层楼,但电梯在4层不停,试写一个程序来仿真百货公司中电梯从1楼爬升至9楼时灯号显示情况。,EXIT的功能是可以直接“跳出”一个正在运行的循环。,21,DO 10,A=2.5,-1.6,-0.5 10 CONTINUE,1.在下列程序段中,循环体被执行的次数为,练习题(选择),A)1 B)2 C)4 D)9,解:没有任何说明,隐含A为实型,根据计算公式r=INT(-1.6-2.5+(-0.5)/(-0.5)=9,22,DO 10,K=2.5,-1.6,1.5 10 CONTINUE,2.在下列程序段中,循环体被执行的次数为,A)0 B)3 C)4 D)无穷大,解:没有任何说明,隐含K为整型,首先将三个循环参数转换为整型量2,-1,1,根据计算公式r=INT(-1-2+1)/1)=-20,即循环次数为0。,23,DO 10 K=5,1,-1 M=0 DO 20 J=K,5 M=M+K*J 20 CONTINUE 10 CONTINUE WRITE(*,*)M END,3.阅读下列FORTRAN程序,A)120 B)15 C)140 D)135,上述程序运行后,输出的M值为,24,解:这是一个双重循环。在外循环的循环体中,每次都对M清零,因此只考虑外循环的最后一次循环中所执行的内循环。外循环最后一次循环的K为1,最后一次执行的循环体相当于右图:M=1+2+3+4+5=15,DO 10 K=5,1,-1 M=0 DO 20 J=K,5 M=M+K*J 20 CONTINUE 10 CONTINUE WRITE(*,*)M END,M=0 DO 20 J=1,5 M=M+J 20 CONTINUE,25,DO 10 I=1,2 S=0.0 DO 10 J=1,3 S=S+I+J10 CONTINUE WRITE(*,*)S END,4.阅读下列FORTRAN程序,A)21.0 B)9.0 C)12.0 D)6.0,上述程序运行后,输出的S值为,26,解:这是一个双重循环。内外循环共用一个CONTINUE语句。由于外循环的循环体中每次都对S清零,因此,只有在最后一次执行内循环时S的累加结果才是最后输出的结果。S=(2+1)+(2+2)+(2+3)=12,27,S=0.0 DO 10 I=1,2 DO 10 J=1,3 S=S+I+J10 CONTINUE WRITE(*,*)S END,5.阅读下列FORTRAN程序,A)21.0 B)9.0 C)12.0 D)6.0,上述程序运行后,输出的S值为,28,解:这个程序和上个题目的根本区别是:在双重循环的外面给S清零。因此,将对两次外循环执行时的I和J的值进行累加,即S=(1+1)+(1+2)+(1+3)+(2+1)+(2+2)+(2+3)=9+12=21,29,DO 10 T=1.5,10.5,1.5 DO 10 I=1,10 10 CONTINUE,6.在下列的双重循环中,内层的循环体执行的总次数为,A)10 B)40 C)30 D)70,30,DO 10 A=-1.6,3.2,-1.6 DO 10 K=1,3,2 10 CONTINUE,7.在下列的双重循环中,内层的循环体执行的总次数为,A)3 B)2 C)0 D)5,31,DO 10 I=1,10 DO 20 J=1,3 10 CONTINUE 20 CONTINUE,8.下列循环中,正确的是,D),DO 10 I=1,10 DO 10 I=2,5,2 10 CONTINUE,DO 10 I=1,10 IF(X.GE.0.0)I=11 10 CONTINUE,DO 10 I=1,10 10 CONTINUE DO 20 I=2,30,2 20 CONTINUE,A),B),C),32,解:A中出现循环交叉;B中内外循环用同一变量作为循环控制变量;C中循环体内改变了循环控制变量I的值;D中两个循环是并列的,虽然用同一个循环控制变量,是允许的。,33,练习题(填空),DO 10 I=1,10 DO 10 J=I,10 10 CONTINUE,9.在下列的双重DO循环中,内层的循环体执行的总次数为,解:外层循环次数为10,I的值分别为1,2,10。内层循环次数为10-I+1。因此,内层循环体执行的总次数为,34,READ(*,*)N S=0 F=1 DO 20 K=1,N F=F*K S=S+F20 CONTINUE WRITE(*,*)S END,10.阅读下列FORTRAN程序,在执行上述程序时,如果从键盘输出5,则运行后输出的S值为,35,36,37,

    注意事项

    本文(循环结构的实现.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开