FORTRAN90程序设计.ppt
《FORTRAN90程序设计.ppt》由会员分享,可在线阅读,更多相关《FORTRAN90程序设计.ppt(32页珍藏版)》请在三一办公上搜索。
1、FORTRAN90语言程序设计,计算机中心 楚红 2006.12,第3部分 循环结构程序设计,带循环变量的DO循环结构 不带循环变量的DO循环结构 DO-WHILE控制的循环结构循环的嵌套 循环结构程序设计举例,有循环变量的DO循环结构,有循环变量DO结构的格式 DO V=E1,E2,E3循环体ENDDODO循环语句由三部分组成:DO语句、循环体和ENDDO语句。DO语句是DO循环的开始语句,指定用于控制循环执行的有关参数(初始值、终止值和步长),决定是否执行循环体。DO是关键词,表示DO循环结构的入口语句。V是循环变量,循环变量的类型可以为整型或实型,E1,E2,E3可以是整型或实型常数、变
2、量、表达式。E1称为循环变量的初始值;E2称为循环变量的终止值;E3称为循环变量的步长,当步长为1时,该项可以省略。在循环开始时,E1,E2,E3应有确定的值。由于实型数据在进行数据转换时,可能出现误差,因此,在使用循环变量、E1、E2和E3时,最好定义为整型。,有循环变量的DO循环结构,循环体是DO循环结构的主体,给出用于处理数据的有关语句,决定DO循环语句的执行结果。ENDDO语句是DO循环结构的终端语句,表明DO循环语句到此结束,控制返回到DO语句执行。下面给出一些合法的DO结构:DO I=1,10,2!输出1、3、5、7、9 PRINT*,IENDDODO I=10,1,-2!输出10
3、、8、6、4、2 PRINT*,IENDDO,有循环变量的DO循环结构,DO循环结构的执行过程为:(1)先计算E1、E2、E3的值,然后转换为与循环控制变量相同的类型;(2)给循环控制变量赋初值V=E1;(3)计算循环次数,计算公式为:R=MAX(INT(E2-E1+E3)/E3),0)例如,若DO语句为“DO L=2,20,2”,循环次数为:R=MAX(INT(20 2+2)/2),0)=10;(4)检查循环次数,当R 0时,执行循环体;当 R0时,跳过循环体,循环结构执行结束;(5)当执行到循环终端语句时,循环变量按步长增值,循环变量=循环变量+E3;(6)循环次数减1:R=R 1;返回(
4、4)继续执行。,注意事项,(1)E3的缺省意味着循环步长为1,此时E3前面的逗号也必须省略。例如:DO I=1,10,1DO I=1,10两者含义相同。(2)若循环次数R 0,按R=0处理,则循环一次也不会被执行。例如:DO I=10,1,2循环变量R=INT(1-10+2)/2)=-3,一次也不会执行循环。(3)E1、E2、E3的类型应与循环变量相同。当E1、E2、E3的类型与循环变量不相同时,在循环执行时,系统将E1、E2、E3转换成循环变量的类型。例如:DO I=1.6,3.6,1.6应先将实型转化成整形,即:DO I=1,3,1,因此循环次数是3次,而不是2次。,注意事项,(4)循环变
5、量在循环体中可以被引用,但不能被重新赋值。例如,下面的用法是错误的:DO I=1,10 I=I*IENDDO因为循环变量在循环体内不能被赋值,若改成:J=I*I 则就正确了。(5)E1、E2、E3的值在循环体中被改变后,不影响循环次数的计算。因此,试图通过改变循环体中E1、E2、E3的值来改变循环次数是不可能的。例如:J=10DO I=1,J J=20 ENDDO!该循环次数在循环体执行之前已计算好,共执行10次,不会因为循环体内J值的改变而增加循环次数。,注意事项,(6)可以不经过ENDDO语句退出循环,即将执行控制从循环体内转移到循环体外。也可在循环体内转移,但不能从循环体外转移到循环体内
6、。例如:DO I=1,20 IF(I*3=100)GOTO 100 ENDDO100 PRINT*,I*3(7)DO循环和其它结构(如块IF结构、CASE结构)可以相互嵌套使用,但结构的嵌套必须是完整嵌套,不允许结构的交叉。,有循环变量的DO循环结构,DO循环结构的命名 DO循环结构名:DO V=E1,E2,E3 循环体 ENDDO DO循环结构名例3.1 求N!的值因为N!=1*2*3*N。该题显然是一个累积问题的计算,存放累积的变量的初值应为1。源程序,PROGRAM CALCULATE_FACTORIALIMPLICIT NONEINTEGER:N,T,IREAD*,NT=1DO I=1
7、,N T=T*IEND DOPRINT*,TEND PROGRAM CALCULATE_FACTORIAL,引申 例如求解如下表达式。,有循环变量的DO循环结构,例3.3 求FIBONACCI数列:1,1,2,3,5,的前40个数。分析:FIBONACCI数列的递推公式为:F1=1,F2=1,(N3)根据递推公式可知,FIBONACCI数列从第3顶开始,等于前2顶之和。因而程序只需一个DO循环,采取辗转赋值法即可。,有循环变量的DO循环结构,例3.4 判断一个整数N是否为素数。所谓素数,是一个正整数,该数只能被1和它本身整除。那么判断一个数N是否为素数就是将其被2到(N 1)之中的所有整数整除
8、,如果都不能整除,则N为素数。实际上根据数论知识,判断N是否为素数,不必将N被2到(N 1)整除,只要被2到(若 不是整数,取其整数部分)整除即可。,PROGRAM EXAMIMPLICIT NONEINTEGER:N,I,J,SWITCHREAD*,NJ=SQRT(REAL(N)SWITCH=1DO I=2,JIF(MOD(N,I)=0)SWITCH=0END DOIF(SWITCH=1)THENPRINT*,N,IS A PRIME NUMBERELSEPRINT*,N,IS NOT A PRIME NUMBEREND IFEND,无循环变量DO结构,在DO循环结构中,当DO语句中仅包含关
9、键词DO而无循环变量控制或条件控制时,称为无循环变量的重复DO结构。它的形式为:DO结构名:DO 循环体 ENDDO DO结构名 方括号内的DO结构名是可选项,作用是给DO结构命名。重复DO结构是一个无休止的死循环。尽管在语法上没有错误,但程序却不能正常结束。因此,必须在循环体中加入能在满足某种条件时停止循环的语句。,中断语句(EXIT、CYCLE),中断语句包括EXIT语句和CYCLE语句,用来强行控制或改变程序的执行顺序。1.EXIT语句EXIT语句功能:在循环体执行过程中强制性终止循环,将执行控制转移到当前循环之外的第一条语句执行。EXIT语句的一般格式为:EXIT DO循环结构名,EX
10、IT语句使用说明:(1)EXIT语句通常是作为逻辑IF语句的内嵌语句来使用,其作用是有条件中断,形式为:IF(逻辑表达式)EXIT 结构名(2)当EXIT语句中没有指定结构名时,则跳出当前结构。(3)结构化程序设计方法不提倡使用EXIT语句,但在某些情况,使用EXIT语句可简化程序。,中断语句(EXIT、CYCLE),2.CYCLE语句 CYCLE语句功能:用于终止执行本次循环中剩余的语句,重新执行下一轮循环。CYCLE语句的一般格式为:CYCLE DO循环结构名 CYCLE语句通常是作为逻辑IF语句的内嵌语句来使用,其作用是有条件转移,形式为:IF(逻辑表达式)CYCLE DO循环结构名,中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FORTRAN90 程序设计
链接地址:https://www.31ppt.com/p-5431274.html