版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、姓名:_ 班级:_ 学号:_-密-封 -线- 一级结构工程师考试科目计算机应用基础辅导五考试时间:120分钟 考试总分:100分题号一二三四五总分分数遵守考场纪律,维护知识尊严,杜绝违纪行为,确保考试结果公正。四、循环语句(一)do语句do语句的一般形式为:do n v=e1,e2,e3n 循环体其中,n为语句标号;v为循环控制变量,它只能是简单变量(整型或实型),不能是表达式;e1,e2,e3分别为循环控制变量的初值、终值与增量(步长),它们都可以是表达式,当d为1时可以省略不写。循环体是若干语句的集合,其中最后一个语句为循环终端语句;若循环体只有一个语句,则该语句也就是终端语句。终端语句必
2、须有标号n。在do循环执行时,首先计算表达式e1,e2,e3的值,并将它们化为与循环控制变量v的类型一致;然后将初值赋给循环控制变量v,并计算需要循环的次数;最后根据循环次数重复执行循环体中的语句,并每次执行完循环体后,将循环控制变量增值一次,循环次数减少一次。当循环次数为零时,则结束循环,转向程序规定的下一个语句。(二)继续语句continue continue是一个可执行语句,其功能是使程序的流程继续到逻辑上的下一个语句。fortran 77规定,循环终端语句必须是一个可执行语句,但不能是goto语句、块if语句、else语句、else if语句、endif语句、do语句、stop语句、e
3、nd语句。由于这些限制,通常用continue语句作为循环的终端语句。当然,continue语句也可用在其他场合。(三)循环嵌套使用循环嵌套可以实现多重循环。这时应注意各重循环的层次和循环变量的关系。例如,编写一个计算乘法表的程序段,可以写为:do 10 i=1,9d0 8 j=1,9ij=i*j8 continue10 continue本例中,外层循环控制变量i初值为1,终值为9,内层循环控制变量j初值为外层环控制变量i的当前值,终值为9。外层的第1次循环,内层经过9-1+1=9次循环,依次计算1*1=1,1*2=2,1*9=9,外层的第2次循环,内层经过9-2+1=8次循环,依次计算2*2
4、=4,2*3=6,2*9=18;。(四)使用循环语句应注意的若干问题 .1.正确选定循环变量的初值。比如,对累加问题和连乘问题,变量初值不正确,便影响最终结果。例如计算m=1!+2!+10!m=0n=1do 20 i=1,10n=n*im=m十n20 continueprint*,mend例中,n用于存放连乘结果,其初值设定为1,而m用于存放累加结果,其初值设定为0。2.do语句可以和转换语句,条件语句等结合起来使用,此时应注意从循环体内可以转向循环体外,但不允许从循环体外转向循环体内;从内层循环中可以转向外循环,但允许从外层循环转向内层循环中。3.当内外层循环体的终端语句相同,且两个终端语句
5、之间没有其他语句时,可以合并使用一个终端语句。例如,前面计算乘法表的程序段可以写为:do 10 i=1,9do 10 j=i,9ij=i*j10 continue或写为do 10 i=1,9d0 10 j=1,910 ij=i*j五、输入输出语句(一)表控输入输出表控输入输出语句是一种隐含格式的输入输出语句,其格式由程序编译系统提供,在程序语句中不予表示。1.表控输出语句fortran 77表控输出语句有两种方式:print*,输出量表write(*,*)输出量表这两种表控输出语句的作用是相同的,但一般微机上的fortran 77子集不提供print 语句,所以通常使用write语句。2.表控
6、输入fortran 77表控输入语句有两种型式:read*,输入量表read(*,*)输入量表表控输入又称为自由格式输入。表控输入语句要求用户在隐含的输入设备(通常是键盘)上输入所需的数据,在输人数据时,各数据之间用逗号或空格分隔。(二)格式输入输出1.格式输出数据语句write语句和format语句write语句的一般形式为:write(u,f)输出量表其中,u为部件说明符,用以指出在哪个设备上进行输出,通常也称为通道号,当u为记号*时,表示在显示器(标准输出设备)上进行输出。f为格式说明,它通常是一个格式语句的标号,用以指出输出数据所采用的格式。格式语句的一般形式为:标号 format(格
7、式说明)例如:write(*,10)a,b,a*b10 format(1x,f6.2,f7.3,f10.4)format语句中,第一个“1x称为纵向控制符,它表示前进一空格后再输出后面的数据,后面的三个项分别说明了三个实型数据输出的,称为格式编辑符。fortran 77允许在write语句中直接指定输出格式,从而可以省略格式语句format。例如,上面的输出语句与格式语句可以合并成一个,即:write(x,(1x,f6.2,f7.3,f10.4)a,b,a*b2.格式编辑符fortran常用的格式符有十几种,详细可参照任何一本fortran教材或专用手册。(三)隐循环的输入输出数组元素的输入输
8、出可以采用循环方式实现。例如:dimensionx(20)do 10 i=1,2020 read*,x(i)程序段执行时进行20次循环,每次输入1个数据。这个输入程序段可以改写如下:dimensionx(20)read*,(x(1),i=1,20)其中第2句就是隐循环的输入语句。循环控制变量i的初值为1,终值为20,步长而予以省略。隐循环语句的作用与do语句是相同的;但使用隐循环语句时,20个数据允许一次性输入,当然,数据与数据之间要用空格符或逗号区别开来。 隐循环语句也用于输出语句,也可使用多重循环。例如dimensiony(10,6)read(*,l一般情况下,fortran程序是按语句顺
9、序执行的,但需要时,可以改变这种顺序。这种改变可以通过各种控制转移语句、逻辑条件语句等来实现。(一)转移语句1.无条件转移语句无条件转移语句的一般形式为:goto n当程序流程到达goto语句时,随后就转向语句标号为n的语句。标号为n的语句必须是可执行语句,但它在程序中的排列位置,可以在引导到它的goto语句之后,也可以在该goto语句之前。无条件转移语句常和其他控制语句结合起来使用。2.算术条件转移语句算术条件转移语句的一般形式为:if (e) n1,n2,n3其中,e必须是算术表达式,当表达式运算结果e0时,程序转向标号为n1的语句;当e=0时,转向标号为心的语句;当e0时,转向标号为n3
10、的语句。例如,计算边长为b的正方形中挖去半径为r的圆后的面积,若b2r,则给出相关信息。该问题的fortran程序可用算术条件转移语句编写如下。c computation of area.read*,b,rif(b-2*r) 5, 15, 155 write(*,10)10 format(error message:bless than 2*r)got0 2015 area=b*b-3.14159*r*rwrite*,area20 continueend本例中,在算术条件转移语句的第1个分支后,使用了goto语句;倘没有此语句,则程序按顺序仍会执行标号为15的语句,从而得出不正确的结果。3.计
11、算转移语句计算转移语句的一般形式为:goto(n1,n2,nm),e其中,ni(i=1,2,m)是l60 write*,nend程序运行时,若输入1,则转向标号为20的语句,x的值为1;若输入2,则转向标号为30的语句,x的值为4;输入3,转向标号为40的语句,x的值为9,输入4,转向标号为50的语句,x的值为16。.。.2 (二)逻辑条件语句1.逻辑if语句逻辑if语句用来实现选择结构。它的一般形式为:if(逻辑表达式) 内嵌语句其中内嵌语句是单独的一个可执行语句。逻辑if语句执行时,首先计算逻辑表达式的值,如果逻辑表达式的值为“真”,则执行内嵌语句,若内嵌语句非转移语句,则执行该语句后继续
12、按顺序往下执行,若内嵌语句是转移语句,则转向指定的语句;如果逻辑表达式的值为“假”,则不执行内嵌语句,而直接执行该语句后面的语句。例如,从键盘读人一个代表百分制成绩的数据,如果数据在90100之间就输出excellent,在8089之间输出good,在6079之间输出pass,在60以下则输出not pass。其程序可以如下编写:read(*.*)ipointif(1point.gt.100.or.ipoint.lt.0) write(*,*)dataerror1f(1point.ge.90.and.ipoint.le.100) write(*,*)excellentif(1point.ge.
13、80.and.ipoint.lt.89) write(*,*)goodif(1point.ge.60.and.ipoint.lt.79) write(*,*)pass, if(1point.ge.0.and.ipoint.lt.59) write(*,*)not passend2.块if结构的各种形式(1)块if和endif形式if(逻辑表达式)then语句块endif当逻辑表达式的值为“真”时,执行语句块,否则按顺序执行endif后的语句。例如,如下程序段:read*,rn,anif(rn.ge.0.0.and.an.gt.0.0)thenstress=rn/anwrite*,rn,an,stressend当rn大于等于零且an大于零时,执行赋值语句和输出语句。(2)使用else的形式if(逻辑表达式)then语句块1else语句块2endif.当逻辑表达式的值为“真”时,执行语句块1,当逻辑表达式的值为“假”时,执行语句块2。由此可见,使用else的形式,可以进行两个分支的选择。(3)使用else if的形式if(逻辑表达式1)then语句块1else if(逻辑表达式2)then语句块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论