當(dāng)前位置: 首頁(yè) > 結(jié)構(gòu)工程師 > 結(jié)構(gòu)工程師備考資料 > 一級(jí)基礎(chǔ)科目(一)輔導(dǎo)---控制語(yǔ)句

一級(jí)基礎(chǔ)科目(一)輔導(dǎo)---控制語(yǔ)句

更新時(shí)間:2009-10-19 15:27:29 來(lái)源:|0 瀏覽0收藏0

結(jié)構(gòu)工程師報(bào)名、考試、查分時(shí)間 免費(fèi)短信提醒

地區(qū)

獲取驗(yàn)證 立即預(yù)約

請(qǐng)?zhí)顚憟D片驗(yàn)證碼后獲取短信驗(yàn)證碼

看不清楚,換張圖片

免費(fèi)獲取短信驗(yàn)證碼

  六、控制語(yǔ)句

  一般情況下,F(xiàn)ORTRAN程序是按語(yǔ)句順序執(zhí)行的,但需要時(shí),可以改變這種順序。

  這種改變可以通過(guò)各種控制轉(zhuǎn)移語(yǔ)句、邏輯條件語(yǔ)句等來(lái)實(shí)現(xiàn)。

  (一)轉(zhuǎn)移語(yǔ)句

  1.無(wú)條件轉(zhuǎn)移語(yǔ)句

  無(wú)條件轉(zhuǎn)移語(yǔ)句的一般形式為:

  GOTO n

  當(dāng)程序流程到達(dá)GOTO語(yǔ)句時(shí),隨后就轉(zhuǎn)向語(yǔ)句標(biāo)號(hào)為n的語(yǔ)句。標(biāo)號(hào)為n的語(yǔ)句必須是可執(zhí)行語(yǔ)句,但它在程序中的排列位置,可以在引導(dǎo)到它的GOTO語(yǔ)句之后,也可以在該GOTO語(yǔ)句之前。無(wú)條件轉(zhuǎn)移語(yǔ)句常和其他控制語(yǔ)句結(jié)合起來(lái)使用。

  2.算術(shù)條件轉(zhuǎn)移語(yǔ)句

  算術(shù)條件轉(zhuǎn)移語(yǔ)句的一般形式為:

  IF (e) n1,n2,n3

  其中,e必須是算術(shù)表達(dá)式,當(dāng)表達(dá)式運(yùn)算結(jié)果e<0時(shí),程序轉(zhuǎn)向標(biāo)號(hào)為n1的語(yǔ)句;當(dāng)e=0時(shí),轉(zhuǎn)向標(biāo)號(hào)為心的語(yǔ)句;當(dāng)e>0時(shí),轉(zhuǎn)向標(biāo)號(hào)為n3的語(yǔ)句。

  例如,計(jì)算邊長(zhǎng)為B的正方形中挖去半徑為R的圓后的面積,若B<2R,則給出相關(guān)信息。該問(wèn)題的FORTRAN程序可用算術(shù)條件轉(zhuǎn)移語(yǔ)句編寫如下。

  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

  本例中,在算術(shù)條件轉(zhuǎn)移語(yǔ)句的第1個(gè)分支后,使用了GOTO語(yǔ)句;倘沒(méi)有此語(yǔ)句,則程序按順序仍會(huì)執(zhí)行標(biāo)號(hào)為15的語(yǔ)句,從而得出不正確的結(jié)果。

  3.計(jì)算轉(zhuǎn)移語(yǔ)句

  計(jì)算轉(zhuǎn)移語(yǔ)句的一般形式為:

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

  其中,ni(i=1,2,……,m)是被轉(zhuǎn)向的語(yǔ)句標(biāo)號(hào),共m個(gè);e是一個(gè)整型算術(shù)表達(dá)式,其值不得小于1且不得大于m。當(dāng)e的值等于1時(shí),程序轉(zhuǎn)向標(biāo)號(hào)n1的語(yǔ)句,當(dāng)e的值等于2時(shí)轉(zhuǎn)向標(biāo)號(hào)心的語(yǔ)句,當(dāng)e的值為m時(shí)轉(zhuǎn)向標(biāo)號(hào)為nm的語(yǔ)句。整型算術(shù)表達(dá)式e前的逗號(hào)可以省略。計(jì)算轉(zhuǎn)移語(yǔ)句通常也和GOTO語(yǔ)句結(jié)合起來(lái)使用。
 

更多信息請(qǐng)?jiān)L問(wèn)結(jié)構(gòu)工程師頻道    結(jié)構(gòu)工程師論壇

?2009年結(jié)構(gòu)工程師考試時(shí)間:9月19、20日
?08年考試規(guī)范、標(biāo)準(zhǔn): 2008年一級(jí)注冊(cè)結(jié)構(gòu)工程師考試成績(jī)查詢匯總

  例如,有如下一個(gè)程序:

  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

  程序運(yùn)行時(shí),若輸入1,則轉(zhuǎn)向標(biāo)號(hào)為20的語(yǔ)句,X的值為1;若輸入2,則轉(zhuǎn)向標(biāo)號(hào)為30的語(yǔ)句,X的值為4;輸入3,轉(zhuǎn)向標(biāo)號(hào)為40的語(yǔ)句,X的值為9,輸入4,轉(zhuǎn)向標(biāo)號(hào)為50的語(yǔ)句,X的值為16。

  (二)邏輯條件語(yǔ)句

  1.邏輯IF語(yǔ)句

  邏輯IF語(yǔ)句用來(lái)實(shí)現(xiàn)選擇結(jié)構(gòu)。它的一般形式為:

  IF(邏輯表達(dá)式) 內(nèi)嵌語(yǔ)句

  其中內(nèi)嵌語(yǔ)句是單獨(dú)的一個(gè)可執(zhí)行語(yǔ)句。邏輯IF語(yǔ)句執(zhí)行時(shí),首先計(jì)算邏輯表達(dá)式的值,如果邏輯表達(dá)式的值為“真”,則執(zhí)行內(nèi)嵌語(yǔ)句,若內(nèi)嵌語(yǔ)句非轉(zhuǎn)移語(yǔ)句,則執(zhí)行該語(yǔ)句后繼續(xù)按順序往下執(zhí)行,若內(nèi)嵌語(yǔ)句是轉(zhuǎn)移語(yǔ)句,則轉(zhuǎn)向指定的語(yǔ)句;如果邏輯表達(dá)式的值為“假”,則不執(zhí)行內(nèi)嵌語(yǔ)句,而直接執(zhí)行該語(yǔ)句后面的語(yǔ)句。

  例如,從鍵盤讀人一個(gè)代表百分制成績(jī)的數(shù)據(jù),如果數(shù)據(jù)在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結(jié)構(gòu)的各種形式

  (1)塊IF和ENDIF形式

  IF(邏輯表達(dá)式)THEN

  語(yǔ)句塊

  ENDIF

  當(dāng)邏輯表達(dá)式的值為“真”時(shí),執(zhí)行語(yǔ)句塊,否則按順序執(zhí)行ENDIF后的語(yǔ)句。例如,如下程序段:

  READ*,RN,AN

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

  STRESS=RN/AN

  WRITE*,RN,AN,STRESS

  END

  當(dāng)RN大于等于零且AN大于零時(shí),執(zhí)行賦值語(yǔ)句和輸出語(yǔ)句。

  (2)使用ELSE的形式

  IF(邏輯表達(dá)式)THEN

  語(yǔ)句塊1

  ELSE

  語(yǔ)句塊2

  ENDIF.

  當(dāng)邏輯表達(dá)式的值為“真”時(shí),執(zhí)行語(yǔ)句塊1,當(dāng)邏輯表達(dá)式的值為“假”時(shí),執(zhí)行語(yǔ)句塊2。由此可見(jiàn),使用ELSE的形式,可以進(jìn)行兩個(gè)分支的選擇。

  (3)使用ELSE IF的形式

  IF(邏輯表達(dá)式1)THEN

  語(yǔ)句塊1

  ELSE IF(邏輯表達(dá)式2)THEN

  語(yǔ)句塊2

  ELSE

  語(yǔ)句塊3

  ENDIF

  這種形式,允許在三個(gè)分支中作出選擇。當(dāng)邏輯表達(dá)式1的值為“真”時(shí),執(zhí)行語(yǔ)句塊1表示的分支;當(dāng)邏輯表達(dá)式1的值為“假”而邏輯表達(dá)式2的值為“真”時(shí),執(zhí)行語(yǔ)句塊2表示的分支;當(dāng)邏輯表達(dá)式1的值和邏輯表達(dá)式2的值均為“假”時(shí),執(zhí)行語(yǔ)句塊3表示的分支。

  3.塊IF結(jié)構(gòu)的嵌套

  在一個(gè)塊IF結(jié)構(gòu)的語(yǔ)句塊中,可以完整地包含另一個(gè)或多個(gè)塊IF結(jié)構(gòu),稱為塊IF 的嵌磁。

分享到: 編輯:環(huán)球網(wǎng)校

資料下載 精選課程 老師直播 真題練習(xí)

結(jié)構(gòu)工程師資格查詢

結(jié)構(gòu)工程師歷年真題下載 更多

結(jié)構(gòu)工程師每日一練 打卡日歷

0
累計(jì)打卡
0
打卡人數(shù)
去打卡

預(yù)計(jì)用時(shí)3分鐘

結(jié)構(gòu)工程師各地入口
環(huán)球網(wǎng)校移動(dòng)課堂APP 直播、聽(tīng)課。職達(dá)未來(lái)!

安卓版

下載

iPhone版

下載

返回頂部