資源描述:
《fortran90第二章 選擇結(jié)構(gòu)程序設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、§2.1關(guān)系表達(dá)式與邏輯表達(dá)式§2選擇結(jié)構(gòu)程序設(shè)計§2.2塊IF結(jié)構(gòu)與IF語句§2.3CASE結(jié)構(gòu)§2.4選擇結(jié)構(gòu)程序設(shè)計舉例§2.5小結(jié)§2.1關(guān)系表達(dá)式與邏輯表達(dá)式算法中經(jīng)常要根據(jù)某種邏輯判斷的結(jié)果來決定下一個步驟應(yīng)該做什么。這就是帶分支選擇的算法。選擇結(jié)構(gòu)是結(jié)構(gòu)化算法中一種基本結(jié)構(gòu)。實現(xiàn)選擇結(jié)構(gòu)的前提是進(jìn)行關(guān)系運算和邏輯判斷?!?.1.1關(guān)系表達(dá)式算術(shù)量A與B之間存在六種關(guān)系:A>BA≥BA≠BA=BA≤BA(.GT.)表示>>=(.GE.)表示≥/=(.NE.)表示≠==(.EQ.)表示=<=(.LE.)表示≤
2、<(.LT.)表示<()中是早期版本的寫法,不提倡使用。格式:E1關(guān)系運算符E2E1與E2為算術(shù)量或字符型的量關(guān)系表達(dá)式的值是邏輯量:真或假算術(shù)運算符的優(yōu)先級別高于關(guān)系運算符:3+5.GT.SQRT(49.0)-3=8.GT.4,真實數(shù)的運算與存儲都有誤差,對實數(shù)進(jìn)行==或/=運算時要特別當(dāng)心。一般用兩者之差的絕對值作為判斷的依據(jù)。用ABS(A-B)<1E-6來代替A==B用ABS(A-B)>1E-6來代替A/=B對于整型數(shù),可直接用==,/=來判斷.§2.1.2邏輯表達(dá)式邏輯型變量:可以將關(guān)系表達(dá)式的結(jié)果賦值給一個變量,該變量的值只能是真或假,類型是邏輯型LOG
3、ICALA,B,L1A=3+5.GT.SQRT(49.0)-3邏輯賦值語句FORTRAN用五種邏輯運算符表示布爾運算:.NOT.邏輯非.AND.邏輯與.OR.邏輯或.EQV.邏輯等.NEQV.邏輯不等.NEQV.也可用.XOR.表示。布爾運算按照數(shù)學(xué)上的規(guī)定進(jìn)行。要在理解的基礎(chǔ)上掌握邏輯運算的“真值表”判斷幾個條件是否同時滿足,數(shù)學(xué)上可以用布爾運算,FORTRAN用邏輯表達(dá)式表示。邏輯表達(dá)式的格式:E1邏輯運算符E2E1與E2為邏輯型的量,可以是:邏輯變量、邏輯常量、關(guān)系表達(dá)式、邏輯表達(dá)式、整型量邏輯表達(dá)式運算次序:括號>函數(shù)>算術(shù)表達(dá)式>關(guān)系表達(dá)式>邏輯運算同一
4、級別的運算,從左至右進(jìn)行邏輯運算符優(yōu)先級別:.NOT.高于.AND.高于.OR.高于.EQV.和.NEQV.邏輯表達(dá)式的值也是邏輯量:真或假當(dāng)邏輯運算符作用于整型量時,執(zhí)行整數(shù)的按位操作,結(jié)果是一個整數(shù)而不是邏輯型數(shù)據(jù)。3.XOR.5=63.and.5=53.or.5=7五種邏輯運算符中,邏輯非、邏輯與、邏輯或是基本的。其它兩種可以由它們組合得到,例如:A.EQV.B等價于(注意邏輯運算符兩邊小圓點)A.AND.B.OR..NOT.A.AND..NOT.BA.NEQV.B等價于A.AND..NOT.B.OR..NOT.A.AND.B關(guān)系表達(dá)式不可連寫:A
5、能寫成A.LT.B.LE.C須用邏輯表達(dá)式A.LT.B.AND.B.LE.C§2.2塊IF結(jié)構(gòu)與IF語句FORTRAN90有三種方法實現(xiàn)選擇結(jié)構(gòu):IF語句、塊IF結(jié)構(gòu)和CASE結(jié)構(gòu)?!?.2.1邏輯IF語句§4.2.2塊IF結(jié)構(gòu)§2.2.1邏輯IF語句邏輯IF語句也稱為行IF語句。格式:IF(E)可執(zhí)行語句例:IF(X>0)PRINT*,XIF(X>0.and.Y>0)PRINT*,‘第一象限’邏輯IF語句本身僅僅是一條語句,當(dāng)條件為真時,也只執(zhí)行一條語句,而不可能執(zhí)行多條語句,與下面要介紹的塊IF有明顯的區(qū)別。IF(X<0)Y=XIF(X>=0)Y=X+5也可寫
6、為Y=XIF(X>=0)Y=X+5而IF(X>=0)Y=X+5Y=X是錯誤的.§2.2.2塊IFIF(E)THEN(塊IF語句)一條或多條執(zhí)行語句(THEN塊)ELSE(ELSE語句)一條或多條執(zhí)行語句(ELSE塊)ENDIF(ENDIF語句)EIF塊ELSE塊真假§2.2.2塊IFIF(E)THEN一條或多條執(zhí)行語句ELSEIF(E)THEN一條或多條執(zhí)行語句ELSEIF(E)THEN一條或多條執(zhí)行語句…………ELSE一條或多條執(zhí)行語句ENDIFEIF塊真假EELSEIF塊真假EELSEIF塊真假ELSE塊EndIfIF塊if語句和endif語句分別標(biāo)志塊IF的
7、開始和結(jié)束。每個塊IF都有且僅有一條塊if語句、endif語句塊IF中每個塊都可以省略,表示那種情況下什么也不做。每個塊IF至多有一條ELSE語句和一個ELSE塊。沒有ELSE塊的時候,ELSE語句可有可無。一個塊IF中可以沒有也可以有一條或多條Elseif語句,省略ELSEIF塊時,Elseif語句可有可無。被省略的塊也可以理解為空塊。塊IF中最多只有一個塊被執(zhí)行,在省略ELSE語句的情況下,有可能什么也不做。§2.2.2.1塊IF的幾種形式因各個塊都可省略,塊IF常以較簡單的形式出現(xiàn)形式一:只有IF塊IF(E)THEN一條或多條執(zhí)行語句ENDIFEIF塊真假形
8、式二:只有