fortran程序设计第5章

fortran程序设计第5章

ID:38561193

大小:215.51 KB

页数:46页

时间:2019-06-14

fortran程序设计第5章_第1页
fortran程序设计第5章_第2页
fortran程序设计第5章_第3页
fortran程序设计第5章_第4页
fortran程序设计第5章_第5页
资源描述:

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

1、FORTRAN语言--FORTRAN77结构化程序设计第五章循环结构的实现重复执行一组指令称为循环操作。在程序中存在两类循环:无条件循环和有条件循环。无条件循环是无休止地执行一个程序段,而有条件循环是在满足一定条件时才执行循环。经常会遇到循环类型的问题,例如需要对全班学生求平均成绩,求n的阶乘,求n个数的和等都需要用到循环处理的方法。5.1用GOTO语句实现循环GOTO语句的形式:GOTO<语句标号>例如:“GOTO10”表示流程转去标号为10的语句行继续执行。由于GOTO语句破坏了语句顺序执行的正常状态,不符合结构化程序设计原则

2、,因此一般不提倡使用GOTO语句。只有在一个基本结构内部可以使用GOTO语句。利用GOTO语句可以实现循环处理。例:读入学生的学号和成绩并且打印无条件循环:10READ*,NUM,GRADEPRINT*,NUM,GRADEGOTO10有条件循环:N=110READ*,NUM,GRADEPRINT*,NUM,GRADEN=N+1IF(N.LE.5)GOTO105.2用DO语句实现循环当需要执行的循环次数为已知时用DO语句实现循环比较方便。例如,上节读5个学生的学号和成绩,要执行READ语句和PRINT语句5次。可以改用DO语句实现:

3、DO10,N=1,5,1READ*,NUM,GRADE10PRINT*,NUM,GRADE5.2.1循环语句(DO语句)和循环次数的计算DO循环由一个DO语句和循环体组成:DO10,I=1,10,1(循环语句)J=I*I(循环体)10PRINT*,I,JDO语句的一般形式为:DO标号[,]循环变量=初值,终值[,步长]sv=e1,e2,e3循环次数可以从循环初值、终值和步长计算出来:r=INT((e2-e1+e3)/e3)例如:DO10,I=1,10,2DO20,N=1,5DO100,X=1.2,2.4,0.2DO150,T=2.

4、5*2,50.0/2.0,0.5DO200,M=1.5,12.5,1.55.2.2循环执行过程循环执行过程执行以下步骤:计算表达式e1,e2,e3的值,并将它们转换成循环变量的类型。将初值e1赋予循环变量v。计算应循环的次数r。检查循环次数,若r=0或r<0,则跳过循环体,执行循环终端语句下面一个执行语句。如果r>0,则执行循环体。执行终端语句时循环变量v增值,即v=v+e3。循环次数r减1。返回步骤4,重复执行步骤4、5、6、7。从以上流程图和上述步骤可知,终端语句的作用,除了完成该语句本身的功能,还有两个作用:(1)使循环变量

5、v增值e3,(2)使循环次数r减1。5.2.3循环终端语句和继续语句 (CONTINUE语句)循环终端语句可以是除了GOTO、块IF、ELSE、ELSEIF、ENDIF、END、STOP和RETURN语句之外的任一可执行语句,如打印语句、赋值语句、输入语句等都可以作为终端语句非执行语句不能作为循环的终端语句为了使循环的起止范围清晰,使终端语句与一般执行语句所区别,用CONTINUE语句作为终端语句。继续语句CONTINUE的形式为:CONTINUE例如:READ*,A,BCONTINUEPRINT*,A,BDO20,I=1,10,

6、2PRINT*,I20CONTINUE[例5.1]求5!INTEGERFACTFACT=1DO10,I=1,5FACT=FACE*I10CONTINUEPRINT*,FACTEND[例5.2]求1!+2!+…+N!READ*,NSUM=0.0FACT=1.0DO100,I=1,NFACT=FACE*ISUM=SUM+FACT100CONTINUEPRINT*,SUMEND[例5.3]一个整数I,求另一个整数J,使I和J在用8位二进制表示时互为逆序。例如I=3,用8位二进制表示为00000011,应求出J=192,其二进制数形式为1

7、1000000。即根据b7…b1b0得到b0b1…b7。思路:依次求出b0,b1,b2,…,b7,然后,将b0*27,b1*26,…,b7*20相加,得到J。给定I后,用函数MOD(I,2)即可求出b0,例如MOD(3,2)的值为1,得b0=1。再将I/2=>I得到新的I,如此继续下去,直到求出b7为止。COBTAINTHEBIT-REVERSEOFIPRINT*,‘NUMBERTOREVERSE:’READ*,IJ=0DO10,K=1,8J=2*J+MOD(I,2)I=I/210CONTINUEPRINT*,‘REVERSEIS

8、’,JEND[例5.4]求ex=1+x+x2/2!+x3/3!+…+xn/n!READ*,N,XTERM=1.0E=1.0DO10,I=1,NTERM=TERM*X/IE=E+TERM10CONTINUEPRINT*,‘EXP(’,X,‘)=’,E

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

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

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