一级结构工程师考试科目-计算机应用基础辅导五

日期:12-18| http://www.59wj.com |一级基础|人气:395

一级结构工程师考试科目-计算机应用基础辅导五

  四、循环语句

  (一)DO语句

  DO语句的一般形式为:

  DO n V=e1,e2,e3

  n 循环体

  其中,n为语句标号;V为循环控制变量,它只能是简单变量(整型或实型),不能是表达式;e1,e2,e3分别为循环控制变量的初值、终值与增量(步长),它们都可以是表达式,当d为1时可以省略不写。循环体是若干语句的集合,其中最后一个语句为循环终端语句;若循环体只有一个语句,则该语句也就是终端语句。终端语句必须有标号n。在DO循环执行时,首先计算表达式e1,e2,e3的值,并将它们化为与循环控制变量V的类型一致;然后将初值赋给循环控制变量V,并计算需要循环的次数;最后根据循环次数重复执行循环体中的语句,并每次执行完循环体后,将循环控制变量增值一次,循环次数减少一次。当循环次数为零时,则结束循环,转向程序规定的下一个语句。

  (二)继续语句CONTINUE

  CONTINUE是一个可执行语句,其功能是使程序的流程继续到逻辑上的下一个语句。FORTRAN 77规定,循环终端语句必须是一个可执行语句,但不能是GOTO语句、块IF语句、ELSE语句、ELSE IF语句、ENDIF语句、DO语句、STOP语句、END语句。由于这些限制,通常用CONTINUE语句作为循环的终端语句。当然,CONTINUE语句也可用在其他场合。

  (三)循环嵌套

  使用循环嵌套可以实现多重循环。这时应注意各重循环的层次和循环变量的关系。例如,编写一个计算乘法表的程序段,可以写为:

  DO 10 I=1,9

  D0 8 J=1,9

  IJ=I*J

  8 CONTINUE

  10 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,2*3=6,…,2*9=18;……。

  (四)使用循环语句应注意的若干问题 .

  1.正确选定循环变量的初值。比如,对累加问题和连乘问题,变量初值不正确,便影响最终结果。例如计算m=1!+2!+…+10!

  m=0

  n=1

  DO 20 I=1,10

  n=n*I

  m=m十n

  20 CONTINUE

  PRINT*,m

  END

  例中,n用于存放连乘结果,其初值设定为1,而m用于存放累加结果,其初值设定为0。

  2.DO语句可以和转换语句,条件语句等结合起来使用,此时应注意从循环体内可以

  转向循环体外,但不允许从循环体外转向循环体内;从内层循环中可以转向外循环,但允许从外层循环转向内层循环中。

  3.当内外层循环体的终端语句相同,且两个终端语句之间没有其他语句时,可以合并使用一个终端语句。例如,前面计算乘法表的程序段可以写为:

  DO 10 I=1,9

  DO 10 J=I,9

  IJ=I*J

  10 CONTINUE

  或写为

  DO 10 I=1,9

  D0 10 J=1,9

  10 IJ=I*J

  五、输入输出语句

  (一)表控输入输出

  表控输入输出语句是一种隐含格式的输入输出语句,其格式由程序编译系统提供,在程序语句中不予表示。

  1.表控输出语句

  FORTRAN 77表控输出语句有两种方式:

  PRINT*,输出量表

  WRITE(*,*)输出量表

  这两种表控输出语句的作用是相同的,但一般微机上的FORTRAN 77子集不提供PRINT 语句,所以通常使用WRITE语句。

  2.表控输入

  FORTRAN 77表控输入语句有两种型式:

  READ*,输入量表

  READ(*,*)输入量表

  表控输入又称为自由格式输入。表控输入语句要求用户在隐含的输入设备(通常是键盘)上输入所需的数据,在输人数据时,各数据之间用逗号或空格分隔。

  (二)格式输入输出

  1.格式输出数据语句WRITE语句和FORMAT语句

  WRITE语句的一般形式为:WRITE(u,f)输出量表

  其中,u为部件说明符,用以指出在哪个设备上进行输出,通常也称为通道号,当u为记号*时,表示在显示器(标准输出设备)上进行输出。f为格式说明,它通常是一个格式语句的标号,用以指出输出数据所采用的格式。

  格式语句的一般形式为:

  标号 FORMAT(格式说明)

  例如:WRITE(*,10)A,B,A*B

  10 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*B

  2.格式编辑符

  FORTRAN常用的格式符有十几种,详细可参照任何一本FORTRAN教材或专用手册。

  (三)隐循环的输入输出

  数组元素的输入输出可以采用循环方式实现。例如:

  DIMENSIONX(20)

  DO 10 I=1,20

  20 READ*,X(I)

  程序段执行时进行20次循环,每次输入1个数据。这个输入程序段可以改写如下:

  DIMENSIONX(20)

  READ*,(X(1),I=1,20)

  其中第2句就是隐循环的输入语句。循环控制变量I的初值为1,终值为20,步长而予以省略。隐循环语句的作用与DO语句是相同的;但使用隐循环语句时,20个数据允许一次性输入,当然,数据与数据之间要用空格符或逗号区别开来。 隐循环语句也用于输出语句,也可使用多重循环。例如

  DIMENSIONY(10,6)

  READ(*,*) ((Y(I,J),J=1,6),I=1,10)

  WRITE(*,5) ((Y(I,J),J=1,6),I=1,10)

  5 FORMAT(1X,6F10.2)

  运行程序段时,首先读人60个数据,Y(1,1),Y(1,2),……,Y(1,6),Y(2,

  1),Y(2,2),……,Y(2,6),……,Y(10,1),Y(10,2),……,Y(10,6),

  然后输出60个数据,每行输出6个数据,数据的排列顺序与输入时相同。

  .

.

[1]   

www.59wj.com

  六、控制语句

  一般情况下,FORTRAN程序是按语句顺序执行的,但需要时,可以改变这种顺序。

  这种改变可以通过各种控制转移语句、逻辑条件语句等来实现。

  (一)转移语句

  1.无条件转移语句

  无条件转移语句的一般形式为:

  GOTO n

  当程序流程到达GOTO语句时,随后就转向语句标号为n的语句。标号为n的语句必须是可执行语句,但它在程序中的排列位置,可以在引导到它的GOTO语句之后,也可以在该GOTO语句之前。无条件转移语句常和其他控制语句结合起来使用。

  2.算术条件转移语句

  算术条件转移语句的一般形式为:

  IF (e) n1,n2,n3

  其中,e必须是算术表达式,当表达式运算结果e<0时,程序转向标号为n1的语句;当e=0时,转向标号为心的语句;当e>0时,转向标号为n3的语句。

  例如,计算边长为B的正方形中挖去半径为R的圆后的面积,若B<2R,则给出相关信息。该问题的FORTRAN程序可用算术条件转移语句编写如下。

  c Computation Of area.

  READ*,B,R

  IF(B-2*R) 5, 15, 15

  5 WRITE(*,10)

  10 FORMAT(’Error message:Bless than 2*R)

  GOT0 20

  15 AREA=B*B-3.14159*R*R

  WRITE*,AREA

  20 CONTINUE

  END

  本例中,在算术条件转移语句的第1个分支后,使用了GOTO语句;倘没有此语句,则程序按顺序仍会执行标号为15的语句,从而得出不正确的结果。

  3.计算转移语句

  计算转移语句的一般形式为:

  GOTO(n1,n2,……,nm),e

  其中,ni(i=1,2,……,m)是被转向的语句标号,共m个;e是一个整型算术表达式,其值不得小于1且不得大于m。当e的值等于1时,程序转向标号n1的语句,当e的值等于2时转向标号心的语句,当e的值为m时转向标号为nm的语句。整型算术表达式e前的逗号可以省略。计算转移语句通常也和GOTO语句结合起来使用。

  例如,有如下一个程序:

  READ*,M

  GOTO(20;30,40,50)M

  20 N=M

  GOTO 60

  30 N=M*2

  GOT0 60

  40 N=M*3

  GOT0 60

  50 N=M*4

  60 WRITE*,N

  END

  程序运行时,若输入1,则转向标号为20的语句,X的值为1;若输入2,则转向标号为30的语句,X的值为4;输入3,转向标号为40的语句,X的值为9,输入4,转向标号为50的语句,X的值为16。

  .

.

   [2]  

www.59wj.com

  (二)逻辑条件语句

  1.逻辑IF语句

  逻辑IF语句用来实现选择结构。它的一般形式为:

  IF(逻辑表达式) 内嵌语句

  其中内嵌语句是单独的一个可执行语句。逻辑IF语句执行时,首先计算逻辑表达式的值,如果逻辑表达式的值为“真”,则执行内嵌语句,若内嵌语句非转移语句,则执行该语句后继续按顺序往下执行,若内嵌语句是转移语句,则转向指定的语句;如果逻辑表达式的值为“假”,则不执行内嵌语句,而直接执行该语句后面的语句。

  例如,从键盘读人一个代表百分制成绩的数据,如果数据在90—100之间就输出

  ‘Excellent’,在80—89之间输出‘Good’,在60—79之间输出‘Pass’,在60以下则输出‘Not pass’。其程序可以如下编写:

  READ(*.*)IPOINT

  IF(1POINT.GT.100.OR.IPOINT.LT.0) WRITE(*,*)’DATAERROR’

  1F(1POINT.GE.90.AND.IPOINT.LE.100) WRITE(*,*)’Excellent’

  IF(1POINT.GE.80.AND.IPOINT.LT.89) WRITE(*,*)’Good’

  IF(1POINT.GE.60.AND.IPOINT.LT.79) WRITE(*,*)’Pass’,

  , IF(1POINT.GE.0.AND.IPOINT.LT.59) WRITE(*,*)’Not Pass’

  END

  2.块IF结构的各种形式

  (1)块IF和ENDIF形式

  IF(逻辑表达式)THEN

  语句块

  ENDIF

  当逻辑表达式的值为“真”时,执行语句块,否则按顺序执行ENDIF后的语句。例如,

  如下程序段:

  READ*,RN,AN

  IF(RN.GE.0.0.AND.AN.GT.0.0)THEN

  STRESS=RN/AN

  WRITE*,RN,AN,STRESS

  END

  当RN大于等于零且AN大于零时,执行赋值语句和输出语句。

  (2)使用ELSE的形式

  IF(逻辑表达式)THEN

  语句块1

  ELSE

  语句块2

  ENDIF.

  当逻辑表达式的值为“真”时,执行语句块1,当逻辑表达式的值为“假”时,执行语句块2。由此可见,使用ELSE的形式,可以进行两个分支的选择。

  (3)使用ELSE IF的形式

  IF(逻辑表达式1)THEN

  语句块1

  ELSE IF(逻辑表达式2)THEN

  语句块2

  ELSE

  语句块3

  ENDIF

  这种形式,允许在三个分支中作出选择。当逻辑表达式1的值为“真”时,执行语句块1表示的分支;当逻辑表达式1的值为“假”而逻辑表达式2的值为“真”时,执行语句块2表示的分支;当逻辑表达式1的值和逻辑表达式2的值均为“假”时,执行语句块3表示的分支。

  3.块IF结构的嵌套

  在一个块IF结构的语句块中,可以完整地包含另一个或多个块IF结构,称为块IF 的嵌磁。块的嵌套可以多层

  .

.

    [3] 

如果觉得《一级结构工程师考试科目-计算机应用基础辅导五》一级基础,jggcs不错,可以推荐给好友哦。
本文Tags: 结构工程师考试 - 考前辅导 - 一级基础,jggcs,
在百度中搜索相关文章:一级结构工程师考试科目-计算机应用基础辅导五
在谷歌中搜索相关文章:一级结构工程师考试科目-计算机应用基础辅导五
在soso中搜索相关文章:一级结构工程师考试科目-计算机应用基础辅导五
在搜狗中搜索相关文章:一级结构工程师考试科目-计算机应用基础辅导五
相关分类导航|
热门推荐|