循环结构的Fortran程序设计.ppt

循环结构的Fortran程序设计.ppt

ID:51655072

大小:303.00 KB

页数:25页

时间:2020-03-27

循环结构的Fortran程序设计.ppt_第1页
循环结构的Fortran程序设计.ppt_第2页
循环结构的Fortran程序设计.ppt_第3页
循环结构的Fortran程序设计.ppt_第4页
循环结构的Fortran程序设计.ppt_第5页
资源描述:

《循环结构的Fortran程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2021/7/251第四讲循环结构程序设计循环结构在程序设计中广泛使用,是一种非常重要的程序结构。其基本思想是重复,即重复执行某些语句、以完成大量的计算要求。但是,循环不是简单的重复,因为尽管每次都执行相同的语句,但是在循环过程中变量在变化,而且完成了循环次数或在一定的条件下能退出循环。本讲介绍Fortran90实现循环结构的2种方法:1、do循环结构;2、dowhile循环结构。循环次数事先可以确定下来,用do语句实现循环,非常方便。比如,当x=1、2、3、…、10时,分别计算lnx和sinx的值,用do循环实现的程序如下

2、:2021/7/252§1用do语句实现循环IntegerxDox=1,10,1Print*,x,log(x*1.0),sin(x*1.)EnddoEnd2021/7/253一、do循环的一般格式doi=e1,e2,e3(do语句)循环体(执行的操作)enddo(结束语句)其中:(1)i代表循环变量(可为整型或实型);(2)e1,e2[,e3]称为参数表达式,分别为循环变量的初值、终值和步长;(3)循环体是循环过程被重复执行的语句组;(4)enddo是循环结束的终端语句,其与do语句配合使用。比如,计算5!Integerm,

3、nm=1Don=1,5,1m=m*nEnddoPrint*,mend2021/7/254说明:(1)步长为1时,表达式e3可以省略。比如“doi=1,10,1”与“doi=1,10”相同。(3)参数表达式“i=e1,e2,e3”表示循环次数为:r=max(int((e2-e1+e3)/e3),0)比如:doi=10,1,-2的循环次数r=5,而doi=10,1,2的r=0(即不循环),注意:1、步长不能为0;2、循环次数不能为0。(2)循环变量与参数表达式数据类型不一致时,其处理方法与赋值语句相同,即先计算参数表达式、并把结

4、果转换成循环变量类型,然后进行处理。比如,“doi=1.3,5.9,2.6”相当于“doi=1,5,2”IntegeraDoa=1.3,5.9,2.6Print*,aEnddoEnd输出为:1352021/7/255二、do循环的执行过程Do循环的执行过程可示意为右图,说明如下:计算e1,e2,e3的值e1→i计算循环次数rr=0?执行循环体i+e3→ir-1→renddo下面的语句是否(1)循环体指do语句和enddo语句之间的语句,不包括do语句,因此do语句在循环过程中只执行一次。如果循环参数表达式中含变量,那么即使在

5、循环体中改变变量的值,循环参数并不改变。比如:Integera,b,c,Ia=1;b=7;c=2Doi=a,b,c+1a=2;b=b+a;c=c*iPrint*,i,a,b,cEnddoEnd输出为:129242118721356进入do循环后,首先计算出循环变量i的初值1、终值7、步长3(即执行do语句),尽管在循环体中改变了变量a、b、c的值,但是循环变量的初值、终值、步长不再变化。2021/7/256(2)由于在循环过程中,循环变量会自动按循环要求变化,因此不能在循环体内给循环变量进行赋值。IntegeriDoi=1,

6、5,2i=i+1Print*,iEnddoEndErrorfor3598:assignmenttoDovariableidetectedbetweeniand=(3)由于每循环一次循环变量自动增加一个步长的值,因此退出循环后循环变量的值,比最后一次循环时循环变量的值多1个步长。Integeri,mDoi=1,10,2m=iEnddoPrint*,i,mEnd输出为:119三、do循环举例例1:输入x、n,计算输出:分析:累加项可表示为递推Fi=Fi-1*x/i,用赋值语句F=F*x/i来实现。重复加是循环操作,程序为:202

7、1/7/257Integern,iRealx,F,yRead*,x,nF=1.0Y=1.0Doi=1,nF=F*x/iY=Y+FEnddoPrint*,’x=’,x,’n=’,nWrite(*,*)’y=’,yEnd从键盘输入:3,3↙输出为:x=3.0n=3y=13.02021/7/258例2:输入一个整数,判断并输出是否为完数(除自身外所有因子之和等于本身的数),比如6=1+2+3,所以6是完数。分析:因为找一个整数的因子及求它们的和可以用循环来实现,而用选择结构可进行判断与输出其是否为完数,程序为:Integerm,i

8、,sumRead*,mSum=0Doi=1,m/2!求除本身之外的因子及之和If(mod(m,i).eq.0)sum=sum+iEnddoif(m.eq.sum)thenWrite(*,*)m,”是完数”ElsePrint*,m,’不是完数’Endifend2021/7/259例3:找出3

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

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

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