资源描述:
《循环结构的实现(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章循环结构的实现FORTRAN语言程序设计1本章主要内容5.1用GOTO语句实现循环5.2用DO语句实现循环5.3当型循环的实现5.4直到型循环的实现5.5几种循环形式的关系和比较2在科学计算或事务管理领域中,循环处理是经常遇到和使用频度最高的应用。也是程序设计人员充分利用计算机的特点来解决实际应用问题。循环:重复执行一组指令或一个程 序段.循环分为:无条件的循环和有条 件的循环3在C中,我们已经学习了三种循环结构:While循环:while(表达式)语句如I=0while(I<5){print(“i=%dt,I);I++;}For循
2、环FOR(i=1;i<4;i++){循环体}Do-While循环Do语句while(表达式);45.1用GOTO语句实现循环用GOTO语句来实现转移GOTO(标号)GOTO语句破坏了语句顺序执行的正常情况,不符合结构化原则.一般不提倡使用该语句.只有在一个基本结构内部可以使用该语句来实现循环处理。……..……..GOTO100n=110 n=n+1print*,ngoto10end55.1用GOTO语句实现循环通常在逻辑IF语句中使用GOTO语句来实现有条件的循环,就是“直到循环”。…………XXX………………IF(条件)GOTOXXXN=1100print*,
3、"正在循环!"N=N+1Print*,NIF(N<=100)goto100end65.1用GOTO语句实现循环N=1100Read(*,*)num,gradePrint*,num,gradeN=N+1IF(N.LT.30)goto100ENDNEXT75.2用DO语句实现循环关于DO循环结构的内容:1)无循环变量的DO结构(ForF90)2)带循环变量的DO结构(ForF77)3)DO结构嵌套4)隐含DO循环(后)85.2用DO语句实现循环当循环次数为已知时,常使用DO语句实现循环—Do循环的使用场合;DO循环语句的结构:DO标号[,]循环变量=E1,E2,E3循
4、环语句体标号Continue(或其它可执行语句)DO循环体ENDDOFOR(i=1;i<4;i++){循环体}95.2用DO语句实现循环Do100,N=1,30,1Read(*,*)Num,grade100Write(*,*)Num,grade…..END终端语句10ProgrammainRealx,piX=0pi=3.14159/180Do100x=0,360,10100print*,x,sin(x*pi)Endprogrammain例如:打印sinx的值,每10度为一个间隔,x的范围为0~360度。ForF771112ProgrammainReal::x,pi
5、X=0;pi=3.14159/180Doprint*,x,sin(x*pi)x=x+10if(x>360)exitenddoEndprogrammain例如:打印sinx的值,每10度为一个间隔,x的范围为0~360度。ForF9013计算:11+22+33+..+nnRead*,Nms=0do10,i=1,n10ms=ms+I**Iwrite(*,*)msend14155.2用DO语句实现循环循环表达式举例:1)Do100,N=1,10,22)Do100,N=1,103)Do100,X=1.2,3.6,0.24)Do100,Y=2.5*2,50.0/2.0,0.
6、55)Do100,N=-1,-8,-1165.2用DO语句实现循环5.2.1循环语句和循环次数的计算dos,v=e1,e2,e3说明:当e3省略时,其值为1;e1、e2可以是常量、变量、表达式;当是变量时应先应赋初值;当为表达式时先要计算出表达式的值;循环次数的计算:R=INT((e2-e1+e3)/e3)S:循环终端语句的标号175.2用DO语句实现循环e3不能为0(从公式中也看出,分母不能为0)e1、e2、e3的值可以为正或负,e1、e2可以为0有效循环:e3的取值为正时候,循环变量的值要不断“逼近”e2、最后“大于”e2的值;e3的取值为负时候,循环变量
7、的值要不断“逼近”e2、最后“小于”e2的值;当计算出循环次数R<0时,按R=0处理;如果循环变量的类型与e1、e2、e3的类型不一致,则先将e1、e2、e3转换成循环变量的类型。(注意:应用中尽量使它们的数据类型一致)185.2用DO语句实现循环循环变量V和E1E2E3可以是整型量、实型量、双精度型量,但在FORTRAN子集中只能使用整型量。195.2用DO语句实现循环如:Do100,I=1.5,3.6,1.2如果直接按公式计算循环次数,则R=INT((3.6-1.5+1.2)/1.2)=2,事实上应先将E1E2E3转换成循环变量的数据类型(I),结果是:Do1
8、00,I=