1 / 32
文档名称:

FORTRAN90程序设计3.ppt

格式:ppt   大小:613KB   页数:32页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FORTRAN90程序设计3.ppt

上传人:我是药神 2022/12/7 文件大小:613 KB

下载得到文件列表

FORTRAN90程序设计3.ppt

相关文档

文档介绍

文档介绍:该【FORTRAN90程序设计3 】是由【我是药神】上传分享,文档一共【32】页,该文档可以免费在线阅读,需要了解更多关于【FORTRAN90程序设计3 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。FORTRAN90程序设计3
适用于年终总结/工作计划/述职报告/策划方案等
2020
注意事项
(6) 可以不经过ENDDO语句退出循环,即将执行控制从循环体内转移到循环体外。也可在循环体内转移,但不能从循环体外转移到循环体内。例如:
DOI=1,20

IF(I**3>=100)GOTO100

ENDDO
100     PRINT*,I**3
(7) DO循环和其它结构(如块IF结构、CASE结构)可以相互嵌套使用,但结构的嵌套必须是完整嵌套,不允许结构的交叉。
有循环变量的DO循环结构
DO循环结构的命名
DO循环结构名:DOV=E1,E2,E3
循环体
ENDDODO循环结构名
[]求N!的值
因为N!=1*2*3*…*N。该题显然是一个累积问题的计算,存放累积的变量的初值应为1。[源程序]
PROGRAMCALCULATE_FACTORIAL
IMPLICITNONE
INTEGER::N,T,I
READ*,N
T=1
DOI=1,N
T=T*I
ENDDO
PRINT*,T
ENDPROGRAMCALCULATE_FACTORIAL
[引申]例如求解如下表达式。
有循环变量的DO循环结构
[]求FIBONACCI数列:1,1,2,3,5,……的前40个数。
分析:FIBONACCI数列的递推公式为:F1=1,F2=1,…,(N≥3)
根据递推公式可知,FIBONACCI数列从第3顶开始,等于前2顶之和。因而程序只需一个DO循环,采取辗转赋值法即可。
有循环变量的DO循环结构
[]判断一个整数N是否为素数。
所谓素数,是一个正整数,该数只能被1和它本身整除。那么判断一个数N是否为素数就是将其被2到(N–1)之中的所有整数整除,如果都不能整除,则N为素数。实际上根据数论知识,判断N是否为素数,不必将N被2到(N–1)整除,只要被2到(若不是整数,取其整数部分)整除即可。
PROGRAMEXAM
IMPLICITNONE
INTEGER::N,I,J,SWITCH
READ*,N
J=SQRT(REAL(N))
SWITCH=1
DOI=2,J
IF(MOD(N,I)==0)SWITCH=0
ENDDO
IF(SWITCH==1)THEN
PRINT*,N,'ISAPRIMENUMBER'
ELSE
PRINT*,N,'ISNOTAPRIMENUMBER'
ENDIF
END
无循环变量DO结构
在DO循环结构中,当DO语句中仅包含关键词DO而无循环变量控制或条件控制时,称为无循环变量的重复DO结构。它的形式为:
[DO结构名:]DO
循环体
ENDDO[DO结构名]
方括号内的DO结构名是可选项,作用是给DO结构命名。
重复DO结构是一个无休止的死循环。尽管在语法上没有错误,但程序却不能正常结束。
因此,必须在循环体中加入能在满足某种条件时停止循环的语句。
中断语句(EXIT、CYCLE)
中断语句包括EXIT语句和CYCLE语句,用来强行控制或改变程序的执行顺序。

EXIT语句功能:在循环体执行过程中强制性终止循环,将执行控制转移到当前循环之外的第一条语句执行。
EXIT语句的一般格式为:
EXIT[DO循环结构名]
EXIT语句使用说明:
(1)   EXIT语句通常是作为逻辑IF语句的内嵌语句来使用,其作用是有条件中断,形式为:
IF(逻辑表达式)EXIT[结构名]
(2)   当EXIT语句中没有指定结构名时,则跳出当前结构。
(3)   结构化程序设计方法不提倡使用EXIT语句,但在某些情况,使用EXIT语句可简化程序。
中断语句(EXIT、CYCLE)

CYCLE语句功能:用于终止执行本次循环中剩余的语句,重新执行下一轮循环。
CYCLE语句的一般格式为:
CYCLE[DO循环结构名]
CYCLE语句通常是作为逻辑IF语句的内嵌语句来使用,其作用是有条件转移,形式为:
IF(逻辑表达式)CYCLE[DO循环结构名]
中断语句(EXIT、CYCLE)
[]输入一组整数,求这组数的正数的个数及正数的总和。当输入数据等于0时终止循环。
PROGRAMMAIN
IMPLICITNONE
INTEGER::K,SUM=0,NUM=0
DO
READ*,K
IF(K==0)EXIT
IF(K<0)CYCLE
NUM=NUM+1
SUM=SUM+K
ENDDO
PRINT*,’NUM=’,NUM,’SUM=’,SUM
END
中断语句(EXIT、CYCLE)
[]运用重复DO结构编写一个程序:求两个正数M和N的最大公约数及最小公倍数。
用辗转相除法来求最大公约数。例如,若输入49和35两个数,先用49除以35,余数为14,再用35为被除数,14为除数做除法,余数为7,再将14为被除数,7为除数做除法,此时余数为零,最后为除数的7就是最大公约数。最小公倍数则等于M乘以N,再除以最大公约数。
PROGRAMEXAM
IMPLICITNONE
INTEGERM,N,T,P,R,K
READ*,M,N
P=M*N
IF(M<N)THEN
T=M;M=N;N=T
ENDIF
R=MOD(M,N)
DO
IF(R==0)EXIT
M=N
N=R
R=MOD(M,N)
ENDDO
K=P/N
PRINT*,N,K
END