版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、12一、引言一、引言 在在FORTRAN77中,用塊中,用塊IF結(jié)構(gòu)來實(shí)現(xiàn)選擇結(jié)構(gòu),結(jié)構(gòu)來實(shí)現(xiàn)選擇結(jié)構(gòu),其形式為:其形式為: IF(條件)條件)THEN then 塊塊 ELSE else 塊塊 END IF3 例:計(jì)算職工工資。正常工資例:計(jì)算職工工資。正常工資rate (yuan/h),一周超過一周超過40 hours時(shí),超過部分按時(shí),超過部分按1.5 rate (yuan/h) 。4cPayroll with overtimeprogram payrollread(*,*) rate, hoursif(hours.gt.40.0) then regpay=rate*40.0 ovtpay
2、=1.5*rate*(hours-40.0)else regpay=rate*hours ovtpay=0.0end ifpay=regpay+ovtpaywrite(*,*) rate=, rate, hours=, hourswrite(*,*) regular pay=, regpay, overtime pay=, ovtpaywrite(*,*) total pay=, payend 5二、關(guān)系表達(dá)式二、關(guān)系表達(dá)式關(guān)系表達(dá)式是最簡單的一種邏輯表達(dá)式。關(guān)系表達(dá)式是最簡單的一種邏輯表達(dá)式。其一般形式為:其一般形式為: 算術(shù)量:算術(shù)量:數(shù)值常數(shù)、數(shù)值型變量、數(shù)值函數(shù)、算術(shù)表達(dá)式。數(shù)值常數(shù)、
3、數(shù)值型變量、數(shù)值函數(shù)、算術(shù)表達(dá)式。關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:關(guān)系比較符。關(guān)系比較符。FORTRAN中有六種關(guān)系運(yùn)算符中有六種關(guān)系運(yùn)算符67 幾點(diǎn)注意:幾點(diǎn)注意:1. 關(guān)系運(yùn)算符字母兩側(cè)各有一個(gè)句點(diǎn),不要漏寫。關(guān)系運(yùn)算符字母兩側(cè)各有一個(gè)句點(diǎn),不要漏寫。2. 在一個(gè)關(guān)系表達(dá)式中可能包括算術(shù)運(yùn)算符和關(guān)系運(yùn)算符,在一個(gè)關(guān)系表達(dá)式中可能包括算術(shù)運(yùn)算符和關(guān)系運(yùn)算符,先進(jìn)行算術(shù)運(yùn)算,然后進(jìn)行關(guān)系運(yùn)算。(建議加括號)先進(jìn)行算術(shù)運(yùn)算,然后進(jìn)行關(guān)系運(yùn)算。(建議加括號)i+j.ne.m+n 相當(dāng)于相當(dāng)于 (i+j).ne.(m+n)3. 不同類型常變量比較時(shí),遵循低級向高級轉(zhuǎn)化規(guī)律。不同類型常變量比較時(shí),遵循低級向高
4、級轉(zhuǎn)化規(guī)律。X.GT.34.關(guān)系表達(dá)式的值不是一個(gè)數(shù)值,而是邏輯量關(guān)系表達(dá)式的值不是一個(gè)數(shù)值,而是邏輯量“真真”或或“假假”。5.判斷實(shí)數(shù)相等和不等,用判斷實(shí)數(shù)相等和不等,用.EQ.和和.NE.時(shí)要特別注意。時(shí)要特別注意。(1.0/3.0+1.0/3.0+1.0/3.0).EQ. 1.0 (10.0*0.1).NE. 1.0 A.EQ.B 可改為可改為 ABS(A-B).LT.1E-6 C.NE.D 可改為可改為 ABS(C-D).GT.1E-6 8三、邏輯表達(dá)式三、邏輯表達(dá)式1. 邏輯常量邏輯常量FORTRAN只有兩個(gè)邏輯常量只有兩個(gè)邏輯常量.TRUE. 表示表示“真真”,即滿足邏輯條件,即
5、滿足邏輯條件.FALSE. 表示表示“假假”,即不滿足邏輯條件,即不滿足邏輯條件2. 邏輯型變量邏輯型變量Fortran 用用LOGICAL語句說明邏輯變量。語句說明邏輯變量。logical a, ba=.true.b=(x+y).gt.z93. 邏輯運(yùn)算符邏輯運(yùn)算符104. 邏輯表達(dá)式邏輯表達(dá)式 FORTRAN7777邏輯量包括:邏輯量包括:邏輯常量邏輯常量邏輯型變量邏輯型變量關(guān)系表達(dá)式關(guān)系表達(dá)式(a.lt.b).and.(a.gt.c)(x.lt.0.).or.(a.gt.100.).not.(x.le.0.)(a.gt.b).eqv.(c.gt.d)(l1.lt.0.).neqv.tru
6、e.注意:注意:.AND.和和.EQV.的區(qū)別。的區(qū)別。11例如,例如,A=3.5, B=5.0, C=2.5, D=1.012算術(shù)運(yùn)算符算術(shù)運(yùn)算符的運(yùn)算對象是數(shù)值量,運(yùn)算結(jié)果為數(shù)值。的運(yùn)算對象是數(shù)值量,運(yùn)算結(jié)果為數(shù)值。關(guān)系運(yùn)算符關(guān)系運(yùn)算符的運(yùn)算對象是數(shù)值量,運(yùn)算結(jié)果為邏輯量。的運(yùn)算對象是數(shù)值量,運(yùn)算結(jié)果為邏輯量。邏輯運(yùn)算符邏輯運(yùn)算符的運(yùn)算對象是邏輯量,運(yùn)算結(jié)果仍為邏輯量。的運(yùn)算對象是邏輯量,運(yùn)算結(jié)果仍為邏輯量。邏輯運(yùn)算符邏輯運(yùn)算符和和算術(shù)運(yùn)算符算術(shù)運(yùn)算符可以可以連續(xù)連續(xù)用運(yùn)算符連接運(yùn)算量,用運(yùn)算符連接運(yùn)算量,但但關(guān)系運(yùn)算符關(guān)系運(yùn)算符不可以。不可以。邏輯運(yùn)算符邏輯運(yùn)算符可以寫成:(設(shè)可以寫成:
7、(設(shè)L1,L2,L3,L4為邏輯變量)為邏輯變量)L1 .AND. L2 .AND. L3 .AND. L4算術(shù)運(yùn)算符算術(shù)運(yùn)算符可以寫成:可以寫成:A+B+C+D但但關(guān)系運(yùn)算符關(guān)系運(yùn)算符不能寫成:不能寫成:A .LT. B .LT. C .LT. D13四、用塊四、用塊IFIF實(shí)現(xiàn)選擇結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu) IF(邏輯表達(dá)式)邏輯表達(dá)式)THEN 塊塊1 ELSE 塊塊2 END IF幾點(diǎn)說明:幾點(diǎn)說明:1. 一個(gè)塊一個(gè)塊IF是有若干個(gè)語句組成的,其中三條語句均是有若干個(gè)語句組成的,其中三條語句均不能單獨(dú)是使用。不能單獨(dú)是使用。2. 一個(gè)塊一個(gè)塊IF必須以塊必須以塊IF語句開始,以語句開始,以END
8、 IF語句結(jié)束。語句結(jié)束。一個(gè)塊一個(gè)塊IF語句必須和一個(gè)語句必須和一個(gè)END IF語句對應(yīng)。語句對應(yīng)。143. 一個(gè)塊一個(gè)塊IF可以不包含可以不包含ELSE語句和語句和else塊,也可以不塊,也可以不包含包含then塊。塊。if(grade.lt.60.) then print *, No., num print *, grade, gradeend if4. 塊塊IF的嵌套的嵌套一個(gè)塊一個(gè)塊IF可以嵌套另一個(gè)塊可以嵌套另一個(gè)塊IF,但但另一個(gè)塊另一個(gè)塊if必須必須完整地出現(xiàn)在完整地出現(xiàn)在then塊或塊或else塊的位置塊的位置。if(grade.ge.60.) thenelse print
9、*, No., num print *, grade, gradeend if15read(*,*) gradeif(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) A else write(*,*) B end if else write(*,*) C end ifelse write(*,*) Dend ifend成績分級成績分級A : 80B : 70且且80C : 60且且70D : 6016給給a, b, c三個(gè)數(shù)排序,要求從小到大輸出三個(gè)數(shù)排序,要求從小到大輸出17read(*,*)
10、 a,b,cif(a.le.b) thenelse t=a a=b b=tend ifif(b.le.c) thenelse t=b b=c c=t if(a.le.b) then else t=a a=b b=t end ifend ifwrite(*,*) a,b,cend18五、五、ELSE IF ELSE IF 語句語句read(*,*) gradeif(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) A else write(*,*) B end if else write(*,*)
11、C end ifelse write(*,*) Dend ifend 為了避免過多的塊為了避免過多的塊IF嵌套,嵌套,F(xiàn)ORTRAN 還提供了還提供了ELSE IF語句來處理語句來處理“否則,如果否則,如果”的情況。的情況。19read(*,*) gradeif(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) A else write(*,*) B end if else write(*,*) C end ifelse write(*,*) Dend ifendread(*,*) gradeif
12、(grade.ge.80.) then write(*,*) A else if(grade.ge.70.) then write(*,*) Belse if(grade.ge.60.) then write(*,*) Celse write(*,*) Dend ifend20幾點(diǎn)說明:幾點(diǎn)說明:2. ELSE IF語句不需語句不需END IF語句與之對應(yīng)。語句與之對應(yīng)。3.一個(gè)塊一個(gè)塊IF可以有多個(gè)可以有多個(gè)ELSE IF語句,除非有塊語句,除非有塊IF嵌套嵌套否則只能有一個(gè)否則只能有一個(gè)ELSE語句。語句。1. ELSE IF語句相當(dāng)于把語句相當(dāng)于把ELSE語句和其下一行的塊語句和其下一行
13、的塊IF語句連結(jié)成一個(gè)語句。語句連結(jié)成一個(gè)語句。4.當(dāng)處理多分支選擇時(shí),用當(dāng)處理多分支選擇時(shí),用ELSE IF語句往往比較方便。語句往往比較方便。5. ELSE IF是在是在“條件為假條件為假”的分支中再繼續(xù)進(jìn)行分支的分支中再繼續(xù)進(jìn)行分支處理的。故在處理多分支的選擇時(shí),要把出現(xiàn)幾率高的處理的。故在處理多分支的選擇時(shí),要把出現(xiàn)幾率高的條件寫在前面,以提高效率。條件寫在前面,以提高效率。21read(*,*) gradeif(grade.ge.80.) then write(*,*) A else if(grade.ge.70.) then write(*,*) Belse if(grade.ge
14、.60.) then write(*,*) Celse write(*,*) Dend ifendread(*,*) gradeif(grade.le.60.) then write(*,*) D else if(grade.le.70.) then write(*,*) Celse if(grade.le.80.) then write(*,*) Belse write(*,*) Aend ifend22read(*,*) xif(x.lt.-10.0) then y=0.0else if(x.lt.0.0) then y=2.0*x+20.0else if(x.lt.20.0) then
15、y=20.0else if(x.lt.40.0) then y=30.0-0.5*xelse if(x.lt.50.0) then y=50.0-xelse y=0.0end ifwrite(*,*) y=,yend求函數(shù)值求函數(shù)值23六、邏輯六、邏輯IFIF語句語句 邏輯邏輯IF語句只有語句只有“條件為真條件為真”時(shí)才有操作,為時(shí)才有操作,為“假假”時(shí)不進(jìn)行任何操作,且時(shí)不進(jìn)行任何操作,且條件為條件為“真真”時(shí)只能執(zhí)行一條執(zhí)行時(shí)只能執(zhí)行一條執(zhí)行語句,而后不論語句,而后不論“真真”或或“假假”,都接著執(zhí)行邏輯,都接著執(zhí)行邏輯IF語句語句的下一條語句。的下一條語句。邏輯邏輯IF語句又稱行語句又稱
16、行IF語句。語句。 如果在塊如果在塊IF結(jié)構(gòu)中結(jié)構(gòu)中else塊空塊,而塊空塊,而then塊只有一條語句,塊只有一條語句,則用邏輯則用邏輯IF語句比較方便。語句比較方便。if(x.lt.60.0) then write(*,*) gradeend ifendif(x.lt.60.0) write(*,*) grade 因?yàn)椴徽撘驗(yàn)椴徽摗罢嬲妗被蚧颉凹偌佟?,都接著?zhí)行邏輯,都接著執(zhí)行邏輯IF語句語句的下一條語句的下一條語句,故故邏輯邏輯IF語句的條件要寫全。語句的條件要寫全。24read(*,*) gradeif(grade.ge.80.) write(*,*) Aif(grade.ge.70.and.grade.lt.80.) write(*,*) Bif(grade.ge.60.and.grade.lt.70.) write(*,*) Cif(grade.lt.60.) write(*,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)服務(wù)備案管理規(guī)則
- 猶太教堂防水施工墻面協(xié)議
- 研發(fā)經(jīng)理解除聘用合同分析
- 圖書館環(huán)境衛(wèi)生工招聘合同
- 2024年網(wǎng)絡(luò)游戲運(yùn)營合同范本
- 2024年物聯(lián)網(wǎng)技術(shù)應(yīng)用開發(fā)與合作合同
- 地下排水樁基夯擴(kuò)樁施工合同
- 2025年酒水新品研發(fā)與技術(shù)合作合同2篇
- 2025版智能家居系統(tǒng)解決方案供貨與安裝合同
- 2024年瑜伽館學(xué)員培訓(xùn)協(xié)議3篇
- 腦卒中偏癱患者早期康復(fù)護(hù)理現(xiàn)狀(一)
- 模特的基礎(chǔ)訓(xùn)練
- 急救技術(shù)-洗胃術(shù) (2)
- 藥品招商流程
- 混凝土配合比檢測報(bào)告
- 100道遞等式計(jì)算(能巧算得要巧算)
- 【2019年整理】園林景觀設(shè)計(jì)費(fèi)取費(fèi)標(biāo)準(zhǔn)
- 完整word版,ETS5使用教程
- 《血流動(dòng)力學(xué)監(jiān)測》PPT課件.ppt
- 2018年秋季人教版十一冊數(shù)學(xué)第7、8單元測試卷
- 學(xué)生作業(yè)提交與批閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)探討
評論
0/150
提交評論