版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
§2.1關(guān)系表達(dá)式與邏輯表達(dá)式§2
選擇結(jié)構(gòu)程序設(shè)計
§2.2
塊IF結(jié)構(gòu)與IF語句
§2.3
CASE結(jié)構(gòu)
§2.4選擇結(jié)構(gòu)程序設(shè)計舉例
§2.5小結(jié)2020/12/101§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)系運(yùn)算和邏輯判斷。2020/12/102§2.1.1關(guān)系表達(dá)式算術(shù)量A與B之間存在六種關(guān)系:A>BA≥BA≠BA=BA≤BA<B
FORTRAN用六種關(guān)系運(yùn)算符表示它們:
>(.GT.)表示>>=(.GE.)表示≥
/=(.NE.)表示≠==(.EQ.)表示=
<=(.LE.)表示≤<(.LT.)表示<()中是早期版本的寫法,不提倡使用。格式:E1關(guān)系運(yùn)算符E2E1與E2為算術(shù)量或字符型的量關(guān)系表達(dá)式的值是邏輯量:真或假2020/12/103算術(shù)運(yùn)算符的優(yōu)先級別高于關(guān)系運(yùn)算符:3+5.GT.SQRT(49.0)-3=8.GT.4,真實數(shù)的運(yùn)算與存儲都有誤差,對實數(shù)進(jìn)行==或/=運(yùn)算時要特別當(dāng)心。一般用兩者之差的絕對值作為判斷的依據(jù)。用ABS(A-B)<1E-6來代替A==B用ABS(A-B)>1E-6來代替A/=B對于整型數(shù),可直接用==,/=來判斷.2020/12/104§2.1.2邏輯表達(dá)式邏輯型變量:可以將關(guān)系表達(dá)式的結(jié)果賦值給一個變量,該變量的值只能是真或假,類型是邏輯型
LOGICALA,B,L1A=3+5.GT.SQRT(49.0)-3邏輯賦值語句FORTRAN用五種邏輯運(yùn)算符表示布爾運(yùn)算:.NOT.邏輯非
.AND.邏輯與
.OR.邏輯或
.EQV.邏輯等
.NEQV.邏輯不等.NEQV.也可用
.XOR.表示。布爾運(yùn)算按照數(shù)學(xué)上的規(guī)定進(jìn)行。要在理解的基礎(chǔ)上掌握邏輯運(yùn)算的“真值表”判斷幾個條件是否同時滿足,數(shù)學(xué)上可以用布爾運(yùn)算,FORTRAN用邏輯表達(dá)式表示。2020/12/105邏輯表達(dá)式的格式:E1邏輯運(yùn)算符E2E1與E2為邏輯型的量,可以是:
邏輯變量、邏輯常量、關(guān)系表達(dá)式、邏輯表達(dá)式、整型量邏輯表達(dá)式運(yùn)算次序:括號>函數(shù)>算術(shù)表達(dá)式>關(guān)系表達(dá)式>邏輯運(yùn)算同一級別的運(yùn)算,從左至右進(jìn)行邏輯運(yùn)算符優(yōu)先級別:.NOT.高于.AND.高于.OR.高于.EQV.和.NEQV.邏輯表達(dá)式的值也是邏輯量:真或假2020/12/106當(dāng)邏輯運(yùn)算符作用于整型量時,執(zhí)行整數(shù)的按位操作,結(jié)果是一個整數(shù)而不是邏輯型數(shù)據(jù)。3.XOR.5=63.and.5=53.or.5=7五種邏輯運(yùn)算符中,邏輯非、邏輯與、邏輯或是基本的。其它兩種可以由它們組合得到,例如:A.EQV.B等價于(注意邏輯運(yùn)算符兩邊小圓點)A.AND.B.OR..NOT.A.AND..NOT.BA.NEQV.B等價于
A.AND..NOT.B.OR..NOT.A.AND.B2020/12/107關(guān)系表達(dá)式不可連寫:A<B≤C不能寫成A.LT.B.LE.C須用邏輯表達(dá)式A.LT.B.AND.B.LE.C2020/12/108§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)2020/12/109§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ū)別。2020/12/1010IF(X<0)Y=XIF(X>=0)Y=X+5也可寫為Y=XIF(X>=0)Y=X+5而IF(X>=0)Y=X+5Y=X是錯誤的.2020/12/1011§2.2.2塊IFIF(E)THEN(塊IF語句)一條或多條執(zhí)行語句(THEN塊)ELSE(ELSE語句)一條或多條執(zhí)行語句(ELSE塊)ENDIF(ENDIF語句)EIF塊ELSE塊真假2020/12/1012§2.2.2塊IFIF(E)THEN一條或多條執(zhí)行語句ELSEIF(E)THEN一條或多條執(zhí)行語句ELSEIF(E)THEN一條或多條執(zhí)行語句…………ELSE一條或多條執(zhí)行語句ENDIFEIF塊真假EELSEIF塊真假EELSEIF塊真假ELSE塊EndIfIF2020/12/1013
塊if語句和endif語句分別標(biāo)志塊IF的開始和結(jié)束。每個塊IF都有且僅有一條塊if語句、endif語句塊IF中每個塊都可以省略,表示那種情況下什么也不做。每個塊IF至多有一條ELSE語句和一個ELSE塊。沒有ELSE塊的時候,ELSE語句可有可無。一個塊IF中可以沒有也可以有一條或多條Elseif語句,省略ELSEIF塊時,Elseif語句可有可無。被省略的塊也可以理解為空塊。塊IF中最多只有一個塊被執(zhí)行,在省略ELSE語句的情況下,有可能什么也不做。2020/12/1014§2.2.2.1塊IF的幾種形式因各個塊都可省略,塊IF常以較簡單的形式出現(xiàn)形式一:只有IF塊
IF(E)THEN
一條或多條執(zhí)行語句ENDIFEIF塊真假形式二:只有ELSE塊IF(E)THENELSE
一條或多條執(zhí)行語句ENDIFEELSE塊真假2020/12/1015形式二實際是形式一的變種IF(.NOT.E)THEN
一條或多條執(zhí)行語句ENDIF.NOT.ETHEN塊真假2020/12/1016§2.2.2.2塊IF編程例題2020/12/1017例:輸入三條邊的長度,計算三角形面積。簡要程序Read(*,*)
A,B,CIF(A.LE.0.OR.B.LE.0.OR.C.LE.0)THENSTOP‘輸入數(shù)據(jù)錯誤,邊長必須為正數(shù)’ENDIFIF(A+B.LE.C.OR.A+C.LE.B.OR.B+C.LE.A)THENPRINT*,‘不能構(gòu)成三角形!’STOP12345ELSES=(A+B+C)*0.5S=SQRT(S*(S-A)*(S-B)*(S-C))PRINT*,‘三角形邊長:’,A,B,C,‘面積:’,SENDIFEND2020/12/1018
y=例:計算分段函數(shù)的值0x<-102x+20-10≤x<0200≤x<2030-0.5x20≤x<4050-x40≤x<500x≥502020/12/1019簡要程序:Read(*,*)XIF(X.LT.–10)THENY=0ELSEIF(X.LT.0)THENY=X+X+20ELSEIF(X.LT.20)THENY=20ELSEIF(X.LT.40)THENY=30-0.5*XELSEIF(X.LT.50)THENY=50-XELSEY=0EndifEnd2020/12/1020§2.2.2.3塊IF的嵌套塊IF中各塊里的執(zhí)行語句都可以出現(xiàn)又一個塊IF結(jié)構(gòu),稱為塊IF的嵌套。塊IF的嵌套理論上可以有無窮層。塊IF結(jié)構(gòu)是由塊IF語句和ENDIF語句括起來的一段程序。塊IF嵌套中的IF與ENDIF必須成對出現(xiàn),這是顯而易見的。ENDIF與IF總是就近配對。應(yīng)該推敲算法,減少塊IF嵌套的層數(shù)。因為塊IF嵌套太深會導(dǎo)致程序結(jié)構(gòu)復(fù)雜,可讀性降低。2020/12/1021可選部分如果有,就必須與關(guān)鍵字用空格分開。為提高塊IF嵌套結(jié)構(gòu)的程序可讀性,可以給塊IF結(jié)構(gòu)取名,其一般用法為:named_if_block:if(e)thenstatementselse[named_if_block]statements
endif[named_if_block]2020/12/1022例:輸入點P(x,y)的坐標(biāo),判別P點在第幾象限。簡要程序Read(*,*)
X,YIF(X.GT.0)THENIF(Y.GT.0)THENPRINT*,‘P點在第一象限’
ELSEPRINT*,‘P點在第四象限’
ENDIFELSEIF(Y.GT.0)THENPRINT*,‘P點在第二象限’
ELSEPRINT*,‘P點在第三象限’
ENDIFENDIFEND未考慮正好在坐標(biāo)軸上的情形2020/12/1023例:將學(xué)生的成績分為A(G≥90),B(80≤G<90),C(70≤G<80),D(60≤G<70),E(G<60)五等.程序為:INTEGERGREAD*,GIF(G>=90)THENPRINT*,’A’ELSEIF(G>=80)THENPRINT*,’B’ELSEIF(G>=70)THENPRINT*,’C’ELSEIF(G>=60)THENPRINT*,’D’ELSEPRINT*,’E’ENDIFEND2020/12/1024例:閱讀程序,寫出程序的運(yùn)行結(jié)果程序1LOGICALP,QREAD(*,’(1X,2L4)’)P,QX=0;Y=0IF(P)X=1.0IF(Q)Y=1.0WRITE(*,*)X,YEND當(dāng)從鍵盤輸入FFTTFFTTFFTT,則X,Y的值為
_________.
程序2READ*,XIF(X<0)THENY=0.0ELSEIF(X<15)THENY=1.0ELSEIF(X<30)THENY=2.0ELSEY=3.0ENDIFWRITE(*,*)YEND當(dāng)X=-12,12,22,32時,對應(yīng)的Y值各為多少。2020/12/1025§2.3CASE結(jié)構(gòu)對多重分支選擇結(jié)構(gòu),可以用CASE結(jié)構(gòu)描述,比起塊IF嵌套結(jié)構(gòu)來,更加直觀簡潔。2020/12/1026§2.3.1CASE結(jié)構(gòu)的形式
CASE結(jié)構(gòu)一般形式:Selectcase(case_exp)case(case_selector1)CASE塊statementscase(case_selector2)CASE塊statements….[casedefaultDEFAULT塊statements]EndSelect2020/12/1027
Selectcase與EndSelect是CASE結(jié)構(gòu)的入口和出口,必須成對出現(xiàn)CASE表達(dá)式case_exp可以是整型、邏輯型與字符型,但不可以用實型或復(fù)型表達(dá)式CASE選擇器必須與CASE表達(dá)式類型一致CASE塊可多可少,可以省略。CASEDEFAULT語句應(yīng)不多于一條,并應(yīng)放在所有CASE語句之后。CASE選擇器是整數(shù)時,可以有多種表示法:case(1),case(1,3,5),case(1:5,9,6)case(100:200)case(100:)case(:120
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年白糖供應(yīng)與采購合同
- 2025年度航空航天導(dǎo)航系統(tǒng)研發(fā)合同3篇
- 《2024版協(xié)議離婚申請書范本:專業(yè)指導(dǎo)與法律問題解答》3篇
- 2025年度體育場館場地設(shè)施設(shè)備租賃及管理服務(wù)合同3篇
- 2025版大理石地磚石材回收與資源循環(huán)利用合同3篇
- 2025年新能源鏟車租賃及維護(hù)服務(wù)合同3篇
- 2024年瓶裝水銷售合同范本
- 2025年寵物寄養(yǎng)服務(wù)與寵物醫(yī)療支持合同3篇
- 【培訓(xùn)課件】JIT精益生產(chǎn)實務(wù)
- 2024年鋁墻面板安裝分包合作協(xié)議
- 工程機(jī)械租賃服務(wù)方案
- 水利安全生產(chǎn)風(fēng)險防控“六項機(jī)制”右江模式經(jīng)驗分享
- 《電力設(shè)備典型消防規(guī)程》(DL 5027-2015)宣貫
- 2023年山西普通高中會考信息技術(shù)真題及答案
- 劇作策劃與管理智慧樹知到期末考試答案2024年
- 老人健康飲食知識講座
- 戶外兒童樂園規(guī)劃方案
- 浙江省溫州市2022-2023學(xué)年四年級上學(xué)期語文期末試卷(含答案)
- DB37-T 5097-2021 山東省綠色建筑評價標(biāo)準(zhǔn)
- MDR醫(yī)療器械法規(guī)考核試題及答案
- 河南省鄭州高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)2023-2024學(xué)年三年級上學(xué)期1月期末科學(xué)試題
評論
0/150
提交評論