Fortran程序设计第六章循环结构

Fortran程序设计第六章循环结构

ID:39327138

大小:605.10 KB

页数:48页

时间:2019-06-30

Fortran程序设计第六章循环结构_第1页
Fortran程序设计第六章循环结构_第2页
Fortran程序设计第六章循环结构_第3页
Fortran程序设计第六章循环结构_第4页
Fortran程序设计第六章循环结构_第5页
资源描述:

《Fortran程序设计第六章循环结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章循环结构(下)§6.5DO结构嵌套§6.6隐含DO循环§6.7程序举例一个DO结构循环体内可以包含另一个DO循环结构,这就是DO结构循环嵌套。注意:1内循环必须完全嵌套在外循环体内,不能相互交叉。2循环嵌套中各层的循环控制变量不能同名。6.5DO结构嵌套嵌套DO结构的执行过程Do结构可以有多重嵌套,这里介绍二重嵌套的执行过程。对于多重嵌套,其基本原理相同。1.当控制进入到外层DO结构后,先计算出外层DO结构的循环次数Ri,外层循环变量得到初值。2.若Ri<0,则结束外循环的执行,当然也不能进入内循环;若Ri>0,执行外层结构的DO块内的语句。3.当遇到内层DO语句时,控制进入内层

2、DO结构;先算出内层DO结构的循环次数Rj,内层循环变量得到初值。4.对于内层DO结构的执行过程与外层结构的一样;若Rj>0,顺次执行内循环的各语句;当Rj<0时,从“正常出口”退出内循环。5.继续执行内循环DO结构后面的外循环体内的其它语句。6.外层DO结构循环变量加一个步长,循环次数Ri减1。7.重复2-6步的算法,直到RI等于0,结束全部循环。嵌套DO结构的有关规定:1.各种DO结构都可以嵌套,但必须完整嵌套。2.对于带循环变量的DO结构,并列的DO结构可以用同一个变量名作循环变量,而嵌套的DO循环结构则不能使用相同的循环变量。3.EXIT语句强行终止当前或指定循环。4.可从循环

3、体内跳到循环外,但不能从循环体外跳到循环体内。6.6隐含DO循环隐含DO循环实际上是带控制变量的DO结构。但简化成只有DO结构的第一句,且把DO关键字隐去。隐含DO循环的形式为:(list,v=u1,u2,u3)例如:READ*,(A(I),I=1,5)PRINT‘(5I5)’,(A(I),I=1,5)注意:隐含do循环输入、输出与DO循环输入输出的区别。几种常见的隐含DO循环的形式:1.按指定步长读写。例如PRINT*,(X(J),J=1,19,2)2.隐含DO循环与普通变量混合使用。例如PRINT*,A,B,(X(I),I=1,3),C3.用于输出一些特殊符号。例如PRINT*,(

4、’-’,I=1,80)4.隐含DO循环可以并列出现。例如READ*,(A(I),I=1,4),(B(I),I=1,4)5.隐含DO循环可以嵌套使用。例如PRINT*,((A(I,J),J=1,5),I=1,3)6.7程序举例【1】在下列的程序段中,循环体被执行的次数为:DO10A=2.5,-1.6,-0.5〈循环体〉CONTINUE【2】阅读下列程序:DO10K=5,1,-1M=0DO20J=K,5M=M+K*J20CONTINUECONTINUEWRITE(*,*)MEND上述程序运行后,输出的M值为【3】阅读下列程序:S=0.0DO10I=1,2DO10J=1,3S=S+I+J10

5、CONTINUEWRITE(*,*)SEND上述程序运行后,输出的S值为【4】在下列的双重循环中,内层的循环体执行的总次数为:DO10T=1.5,10.5,1.5DO10I=1,10〈循环体〉10CONTINUE【5】为了计算并输出n!,其中n从键盘输入,下列各FORTRAN程序中正确的是:A)READ(*,*)NS=0.0DO10I=1,NS=S*ICONTINUEWRITE(*,*)’S=’,SENDB)READ(*,*)NK=1S=1.0K=K+1S=S*KIF(K.LE.N)GOTO10WRITE(*,*)’S=’,SEND【5】为了计算并输出n!,其中n从键盘输入,下列各FO

6、RTRAN程序中正确的是:C)READ(*,*)NK=1S=1.0IF(K.LE.N)THENS=S*KK=K+1GOTO10ENDIFWRITE(*,*)’S=’,SENDD)READ(*,*)NK=1S=1.0IF(K.LE.N)THENK=K+1S=S*KGOTO10ENDIFWRITE(*,*)’S=’,SEND【6】下列各循环中,正确的是:A)DO10I=1,10D020J=1,3…CONTINUE20CONTINUEB)DO10I=1,10DO10I=2,5,2…CONTINUE【6】下列各循环中,正确的是:C)DO10I=1,10…IF(X.GE.0.0)I=11…CON

7、TINUED)DO10I=1,10…10CONTINUEDO20I=2,30,2…20CONTINUE【7】下列的双重DO循环中,内层的循环体执行的总次数为:DO10I=1,10DO10J=I,10〈循环体〉10CONTINUE【8】填空:将DO循环改为用IF语句实现的直到型循环,使两程序完全等价。READ(*,*)NS=0.0DO10K=1,NS=S+1.0/(K*(K+1))CONTINUEWRITE(*,*)’S=’,SENDREAD(*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。