fortran循环结构及基本语句.ppt

上传人:小飞机 文档编号:6505870 上传时间:2023-11-07 格式:PPT 页数:20 大小:304.49KB
返回 下载 相关 举报
fortran循环结构及基本语句.ppt_第1页
第1页 / 共20页
fortran循环结构及基本语句.ppt_第2页
第2页 / 共20页
fortran循环结构及基本语句.ppt_第3页
第3页 / 共20页
fortran循环结构及基本语句.ppt_第4页
第4页 / 共20页
fortran循环结构及基本语句.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《fortran循环结构及基本语句.ppt》由会员分享,可在线阅读,更多相关《fortran循环结构及基本语句.ppt(20页珍藏版)》请在三一办公上搜索。

1、第五讲 循环结构及基本语句,5.1 循环结构概述,循环结构分为两类:循环体的循环次数事先确定(如例5.1中循环结构),这类循环结构称为确定性循环,或称“计数型”循环,使用计数型循环语句(如DO循环语句)实现这类循环结构。循环次数为:MAX(终值-初值)/步长+1,0)。循环体的循环次数事先不确定(如例5.2中循环结构),这类循环结构称为非确定性循环,或称“条件型”循环,使用条件型循环语句(如DO WHILE循环语句)实现这类循环结构。条件型循环又分“当型”循环和“直到型”循环。,例5.1 求S=1+2+3+N的值(N由键盘输入,N2)。编写程序。解:求解这一问题,将执行N-1次加法运算。如果将

2、等式写成S=0+1+2+N,则执行N次加法运算。重复问题易采用循环结构实现。用S保存和,用N保存最大求和值,用I作计数器。编写程序如下:Program ex2 INTEGER S,N,I READ(*,*)N S=0 DO I=1,N,1 S=S+I EDNDO WRITE(*,*)S=,S END,例5.2 读入某班级考试成绩(人数不定),计算其平均成绩,并输出。解:由于学生人数不定,所以输入的学生成绩个数不确定,以输入-1作为结束标志(因为成绩不可能为负数),从而动态确定学生人数n。平均成绩计算公式是:av=(x1+x2+xn)/n Program ex3 INTEGER sum,n,x

3、REAL av sum=0 n=0 READ(*,*)x DO WHILE(x/=-1)n=n+1 sum=sum+x READ(*,*)x ENDDO av=sum/n WRITE(*,*)平均成绩为:,av END,5.2 使用DO循环语句实现计数型循环,:DO=,ENDDO 说明:v为循环变量,一般为整型变量,用来控制循环次数。e1、e2和e3为表达式,其类型与循环变量类型相同。e1代表循环变量v的初值,e2代表循环变量v的终值,e3代表循环变量v的步长,e3可缺省,e3缺省指e3为1。循环次数计算公式是:MAX(e2-e1)/e3+1,0)。如果e30,则一般要求e1e2,否则循环次数

4、为0,即循环体一次也不执行。如果e30,则一般要求e1e2,否则循环次数为0,即循环体一次也不执行。在循环体中可引用循环变量v的值,但不能赋值,即修改它的值。,DO循环语句执行过程说明:下面DO循环语句的循环次数为5:M=1;N=5;L=1 DO I=M,N+5,L+1!输出1、3、5、7、9 write(*,*)I,M,N,L M=M+1;N=N*I;L=2*L+I ENDDO程序运行后,输出结果为:1 1 5 1 3 2 5 3 5 3 15 9 7 4 75 23 9 5 525 53,5.3 使用DO WHILE循环语句实现循环,DO WHILE循环语句在每次循环体执行前都要计算表示循

5、环控制条件的逻辑表达式,其计算结果决定循环体是否继续执行,循环体的执行过程必须对循环控制条件产生影响。,5.4 使用IF和GOTO语句实现循环,用IF语句实现选择结构,用GOTO语句实现无条件控制转移,两者结合可实现循环结构,特别是“直到型”循环结构。IF语句给出循环条件,GOTO语句控制循环转移。由于GOTO语句易造成程序错误,故现代程序设计方法不提倡使用此法实现循环。,Program INTEGER M,N,R1,R2,R3,gcd,lcm read(*,*)输入两个自然数:read(*,*)M,N R1=M;R2=N100 R3=MOD(R1,R2)!求R1除以R2的余数 R1=R2;R

6、2=R3 IF(R2/=0)GOTO 100!或 IF(R2=0)THEN!ELSE!GOTO 100!ENDIF gcd=R1;lcm=M*N/gcd WRITE(*,(1X,I3,和,I3,的最大公约数为:,I3)M,N,gcd WRITE(*,(1X,I3,和,I3,的最小公倍数为:,I3)M,N,lcm END,5.5 强制性终止循环(EXIT、CYCLE),一般情况下,循环过程都是正常结束。有些特殊问题,在循环处理过程中遇到特殊情况需要提前终止本次循环或整个循环,以免循环陷入死循环,造成严重后果。终止循环过程有两条语句:EXIT、CYCLE。,EXIT功能:在循环体执行过程中强制性终

7、止整个循环语句的执行,转循环语句后的第一条语句执行。只能在DO和DO WHILE循环语句内使用EXIT语句。,CYCLE功能:在循环体执行过程中强制性终止本次循环的执行,转循环开始语句(DO语句)执行。只能在DO和DO WHILE循环语句内使用CYCLE语句。,5.6 特殊DO循环语句与EXIT语句,ProgramINTEGER M,N,R1,R2,R3,gcd,lcmWrite(*,*)输入两个自然数:READ(*,*)M,NR1=M;R2=NDO IF(R2=0)EXIT R3=MOD(R1,R2)!求R1除以R2的余数 R1=R2;R2=R3END DOgcd=R1;lcm=M*N/gc

8、dWrite(*,(1X,I3,和,I3,的最大公约数为:,I3)M,N,gcdWrite(*,(1X,I3,和,I3,的最小公倍数为:,I3)M,N,lcmEND,5.7 循环嵌套,前面介绍的循环结构和循环语句都是一层循环,许多实际问题的求解算法和程序往往具有多重循环结构。多重循环结构称为循环嵌套,循环嵌套是指在一个循环结构或循环语句的循环体中又含有循环结构或循环语句。对于n层循环嵌套称为n重循环。嵌套的循环层数原则上不限,但不易太多。计数型、当型、直到型循环结构都可相互嵌套,DO语句、DO WHILE语句、特殊DO循环语句都可相互嵌套。根据实际问题的求解需要决定循环嵌套的形式和层数。如果有

9、n重循环,且循环次数分别为r1、r2、rn,则一般最内层循环体的循环总次数为:r1r2rn。,例5.8求。解:求解这一问题的算法结构具有“计数型”循环结构与“计数型”循环结构嵌套的二重循环结构。程序中用两个DO循环语句嵌套来实现二重循环结构。,例5.12根据下面泰勒级数求x的正弦值。解:我们已经熟悉FORTRAN 90提供的SIN(x)、COS(x)、EXP(x)等内部函数,我们可直接使用这些内部函数计算正弦、余弦、指数等值。那么这些函数是如何计算的呢?一般都是通过其泰勒级数计算。下面我们不用内部函数,自己编写程序计算正弦值,然后与内部函数计算值进行比较。遇到这类问题,必须将泰勒级数用通项公式

10、表示,然后得出迭代公式。其中:n=1,2,3,。设:Tn=(-1)n+1x2n-1/(2n-1)!=Tn-1(-1)x2/(2n-2)(2n-1),n=1,2,3,sinxT1+T2+Tn,Tn+110-7,10-7决定了计算精度。上述计算问题变成了一个求和问题,可用一个DO WHILE语句实现。根据分析,设计算法,编写程序。,PROGRAM Sin_xPARAMETER(pi=3.14159278,eps=1E-7)INTEGER:n=1,maxterms=10REAL x,T,sinxWRITE(*,“(A)”,ADVANCE=NO)输入一个度数值:READ(*,*)xx=x*pi/180

11、!转换为弧度值T=x;sinx=TDO WHILE(ABS(T)eps).AND.(neps)THEN write(*,*)发散级数,不能得到结果。ELSE write(*,*)程序计算得到的正弦值:,sinx write(*,*)FORTRAN 90内部函数值:,SIN(x)END IFEND,输入数据:输入一个度数值:45输出结果为:程序计算得到的正弦值:0.7071068 Fortran 90内部函数值:0.7071068,1 输入x值(x1),按下列公式计算s。精度要求5位有效数字,最后一项10-5。编写程序实现之。2输入x,用迭代法按下列迭代公式求的值。初始值y0=x,精度要求4位有效数字。编写程序实现之。P194页 9,10题,5.8 习题,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号