Fortran程序设计第六章循环结构.ppt
《Fortran程序设计第六章循环结构.ppt》由会员分享,可在线阅读,更多相关《Fortran程序设计第六章循环结构.ppt(48页珍藏版)》请在三一办公上搜索。
1、第六章 循环结构(下),6.5 DO结构嵌套,6.6 隐含DO循环,6.7 程序举例,一个DO结构循环体内可以包含另一个DO循环结构,这就是DO结构循环嵌套。注意:1 内循环必须完全嵌套在外循环体内,不能相互交叉。2 循环嵌套中各层的循环控制变量不能同名。,6.5 DO结构嵌套,嵌套DO结构的执行过程,Do结构可以有多重嵌套,这里介绍二重嵌套的执行过程。对于多重嵌套,其基本原理相同。1当控制进入到外层DO结构后,先计算出外层DO结构的循环次数Ri,外层循环变量得到初值。2若Ri0,执行外层结构的DO块内的语句。3当遇到内层DO语句时,控制进入内层DO结构;先算出内层DO结构的循环次数Rj,内层
2、循环变量得到初值。,4对于内层DO结构的执行过程与外层结构的一样;若Rj0,顺次执行内循环的各语句;当Rj0时,从“正常出口”退出内循环。5继续执行内循环DO结构后面的外循环体内的其它语句。6外层DO结构循环变量加一个步长,循环次数Ri减1。7重复2-6步的算法,直到RI等于0,结束全部循环。,嵌套DO结构的有关规定:1.各种DO结构都可以嵌套,但必须完整嵌套。2.对于带循环变量的DO结构,并列的DO结构可以用同一个变量名作循环变量,而嵌套的DO循环结构则不能使用相同的循环变量。3.EXIT语句强行终止当前或指定循环。4.可从循环体内跳到循环外,但不能从循环体外跳到循环体内。,6.6 隐含DO
3、循环,隐含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*,(-,I=1,80)4.隐含DO循环可以并列出现。例如 READ
4、*,(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】在下列的程序段中,循环体被执行的次数为:DO 10 A=2.5,-1.6,-0.5 循环体 CONTINUE,【2】阅读下列程序:DO 10 K=5,1,-1 M=0 DO 20 J=K,5 M=M+K*J20 CONTINUE CONTINUE WRITE(*,*)M END,上述程序运行后,输出的M值为,【3】阅读下列程序:S=0.0 DO 10 I=1,2 DO 10 J=1,3 S=S+I+J10 CONTINUE
5、WRITE(*,*)S END,上述程序运行后,输出的S值为,【4】在下列的双重循环中,内层的循环体执行的总次数为:DO 10 T=1.5,10.5,1.5 DO 10 I=1,10 循环体10 CONTINUE,【5】为了计算并输出n!,其中n从键盘输入,下列各FORTRAN程序中正确的是:A)READ(*,*)N S=0.0 DO 10 I=1,N S=S*ICONTINUE WRITE(*,*)S=,S END,B)READ(*,*)N K=1 S=1.0 K=K+1 S=S*K IF(K.LE.N)GOTO10 WRITE(*,*)S=,S END,【5】为了计算并输出n!,其中n从键
6、盘输入,下列各FORTRAN程序中正确的是:C)READ(*,*)N K=1 S=1.0 IF(K.LE.N)THEN S=S*K K=K+1 GOTO 10 END IF WRITE(*,*)S=,S END,D)READ(*,*)N K=1 S=1.0 IF(K.LE.N)THEN K=K+1 S=S*K GOTO 10 END IF WRITE(*,*)S=,S END,【6】下列各循环中,正确的是:A)DO 10 I=1,10 D0 20 J=1,3 CONTINUE 20 CONTINUE,B)DO 10 I=1,10 DO 10 I=2,5,2 CONTINUE,【6】下列各循环中
7、,正确的是:C)DO 10 I=1,10 IF(X.GE.0.0)I=11 CONTINUE,D)DO 10 I=1,10 10 CONTINUE DO 20 I=2,30,2 20 CONTINUE,【7】下列的双重DO循环中,内层的循环体执行的总次数为:DO 10 I=1,10 DO 10 J=I,10 循环体 10 CONTINUE,【8】填空:将DO循环改为用IF语句实现的直 到型循环,使两程序完全等价。READ(*,*)N S=0.0 DO 10 K=1,N S=S+1.0/(K*(K+1)CONTINUE WRITE(*,*)S=,S END,READ(*,*)N S=0.0(1)
8、K=0 S=S+D(2)D=1.0/(K*(K+1)IF(3)GOTO 10 WRITE(*,*)S=,S END,【9】下列说法中正确的是:,A)所有需要重复处理的问题都可以用DO 循环结 构来处理。B)在循环次数事先能确定的情况下,只能用DO 循环结构来处理。C)DO循环也是属于当型循环。D)所有当型循环不能用直到型循环来处理。,【10】阅读下列程序:,READ(*,*)N S=0.0 K=1 IF(N.GE.5)THEN S=S+32 T=1 T=2*T S=S+T K=K+1 IF(K.LE.N)GOTO 10 END IF WRITE(*,*)S END,在执行这个程序时,如果从键盘
9、输入6则运行后输出的S值为,【11】阅读下列程序:,READ(*,*)N K=0 DO 10 I=1,N DO 10 J=I-1,N K=K+1 CONTINUE WRITE(*,*)K END,在执行这个程序时,如果从键盘输入10则运行后输出的K值为,【12】将下列程序段改写成用直到型循环实现同样的功能。在下划线处填入适当内容:,READ(*,*)N X=0.0 Y=0.0 DO 10 I=0,N-1 X=X+0.5 Y=Y+X*X/(I+1)10 CONTINUE,READ(*,*)N X=0.0 Y=0.0 IF(N.GE.1)THEN(1)10(2)Y=Y+X*X/K(3)IF(K.L
10、E.N)GOTO 10 END IF,练习:1、下面关于DO循环的规定,错误的是_。(A)DO循环的循环控制变量不能在循环体内赋值(B)DO循环的控制变量表达式,终值和步长可以是整型和实型(C)DO循环是当型循环(D)DO循环的循环控制变量不能是双精度型2、有如下循环入口语句 INTEGER:I DO I=-0.5,-0.5,-1.0 该循环的执行次数为_。(A)0(B)1(C)出错(D)无限,3.有如下循环入口语句 DO I=1,15,3 正常结束时有I=_。(A)13(B)15(C)16(D)不一定4.有如下循环入口语句 DO J=1,15,3 IF(MOD(J,10)=0)GOTO 10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fortran 程序设计 第六 循环 结构
链接地址:https://www.31ppt.com/p-5431300.html