当前位置: 首页 > 结构工程师 > 结构工程师备考资料 > 一级基础科目(一)辅导---控制语句

一级基础科目(一)辅导---控制语句

更新时间:2009-10-19 15:27:29 来源:|0 浏览0收藏0

结构工程师报名、考试、查分时间 免费短信提醒

地区

获取验证 立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

  六、控制语句

  一般情况下,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语句结合起来使用。
 

更多信息请访问结构工程师频道    结构工程师论坛

?2009年结构工程师考试时间:9月19、20日
?08年考试规范、标准: 2008年一级注册结构工程师考试成绩查询汇总

  例如,有如下一个程序:

  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。

  (二)逻辑条件语句

  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 的嵌磁。

分享到: 编辑:环球网校

资料下载 精选课程 老师直播 真题练习

结构工程师资格查询

结构工程师历年真题下载 更多

结构工程师每日一练 打卡日历

0
累计打卡
0
打卡人数
去打卡

预计用时3分钟

结构工程师各地入口
环球网校移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载

返回顶部