版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、12一、引言一、引言 在在FORTRAN77中,用塊中,用塊IF結(jié)構(gòu)來實現(xiàn)選擇結(jié)構(gòu),結(jié)構(gòu)來實現(xiàn)選擇結(jié)構(gòu),其形式為:其形式為: IF(條件)條件)THEN then 塊塊 ELSE else 塊塊 END IF3 例:計算職工工資。正常工資例:計算職工工資。正常工資rate (yuan/h),一周超過一周超過40 hours時,超過部分按時,超過部分按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)系運算符:關(guān)系運算符:關(guān)系比較符。關(guān)系比較符。FORTRAN中有六種關(guān)系運算符中有六種關(guān)系運算符67 幾點注意:幾點注意:1. 關(guān)系運算符字母兩側(cè)各有一個句點,不要漏寫。關(guān)系運算符字母兩側(cè)各有一個句點,不要漏寫。2. 在一個關(guān)系表達(dá)式中可能包括算術(shù)運算符和關(guān)系運算符,在一個關(guān)系表達(dá)式中可能包括算術(shù)運算符和關(guān)系運算符,先進行算術(shù)運算,然后進行關(guān)系運算。(建議加括號)先進行算術(shù)運算,然后進行關(guān)系運算。(建議加括號)i+j.ne.m+n 相當(dāng)于相當(dāng)于 (i+j).ne.(m+n)3. 不同類型常變量比較時,遵循低級向高級轉(zhuǎn)化規(guī)律。不同類型常變量比較時,遵循低級向高
4、級轉(zhuǎn)化規(guī)律。X.GT.34.關(guān)系表達(dá)式的值不是一個數(shù)值,而是邏輯量關(guān)系表達(dá)式的值不是一個數(shù)值,而是邏輯量“真真”或或“假假”。5.判斷實數(shù)相等和不等,用判斷實數(shù)相等和不等,用.EQ.和和.NE.時要特別注意。時要特別注意。(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只有兩個邏輯常量只有兩個邏輯常量.TRUE. 表示表示“真真”,即滿足邏輯條件,即
5、滿足邏輯條件.FALSE. 表示表示“假假”,即不滿足邏輯條件,即不滿足邏輯條件2. 邏輯型變量邏輯型變量Fortran 用用LOGICAL語句說明邏輯變量。語句說明邏輯變量。logical a, ba=.true.b=(x+y).gt.z93. 邏輯運算符邏輯運算符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ù)運算符算術(shù)運算符的運算對象是數(shù)值量,運算結(jié)果為數(shù)值。的運算對象是數(shù)值量,運算結(jié)果為數(shù)值。關(guān)系運算符關(guān)系運算符的運算對象是數(shù)值量,運算結(jié)果為邏輯量。的運算對象是數(shù)值量,運算結(jié)果為邏輯量。邏輯運算符邏輯運算符的運算對象是邏輯量,運算結(jié)果仍為邏輯量。的運算對象是邏輯量,運算結(jié)果仍為邏輯量。邏輯運算符邏輯運算符和和算術(shù)運算符算術(shù)運算符可以可以連續(xù)連續(xù)用運算符連接運算量,用運算符連接運算量,但但關(guān)系運算符關(guān)系運算符不可以。不可以。邏輯運算符邏輯運算符可以寫成:(設(shè)可以寫成:
7、(設(shè)L1,L2,L3,L4為邏輯變量)為邏輯變量)L1 .AND. L2 .AND. L3 .AND. L4算術(shù)運算符算術(shù)運算符可以寫成:可以寫成:A+B+C+D但但關(guān)系運算符關(guān)系運算符不能寫成:不能寫成:A .LT. B .LT. C .LT. D13四、用塊四、用塊IFIF實現(xiàn)選擇結(jié)構(gòu)實現(xiàn)選擇結(jié)構(gòu) IF(邏輯表達(dá)式)邏輯表達(dá)式)THEN 塊塊1 ELSE 塊塊2 END IF幾點說明:幾點說明:1. 一個塊一個塊IF是有若干個語句組成的,其中三條語句均是有若干個語句組成的,其中三條語句均不能單獨是使用。不能單獨是使用。2. 一個塊一個塊IF必須以塊必須以塊IF語句開始,以語句開始,以END
8、 IF語句結(jié)束。語句結(jié)束。一個塊一個塊IF語句必須和一個語句必須和一個END IF語句對應(yīng)。語句對應(yīng)。143. 一個塊一個塊IF可以不包含可以不包含ELSE語句和語句和else塊,也可以不塊,也可以不包含包含then塊。塊。if(grade.lt.60.) then print *, No., num print *, grade, gradeend if4. 塊塊IF的嵌套的嵌套一個塊一個塊IF可以嵌套另一個塊可以嵌套另一個塊IF,但但另一個塊另一個塊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三個數(shù)排序,要求從小到大輸出三個數(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幾點說明:幾點說明:2. ELSE IF語句不需語句不需END IF語句與之對應(yīng)。語句與之對應(yīng)。3.一個塊一個塊IF可以有多個可以有多個ELSE IF語句,除非有塊語句,除非有塊IF嵌套嵌套否則只能有一個否則只能有一個ELSE語句。語句。1. ELSE IF語句相當(dāng)于把語句相當(dāng)于把ELSE語句和其下一行的塊語句和其下一行
13、的塊IF語句連結(jié)成一個語句。語句連結(jié)成一個語句。4.當(dāng)處理多分支選擇時,用當(dāng)處理多分支選擇時,用ELSE IF語句往往比較方便。語句往往比較方便。5. ELSE IF是在是在“條件為假條件為假”的分支中再繼續(xù)進行分支的分支中再繼續(xù)進行分支處理的。故在處理多分支的選擇時,要把出現(xiàn)幾率高的處理的。故在處理多分支的選擇時,要把出現(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語句只有語句只有“條件為真條件為真”時才有操作,為時才有操作,為“假假”時不進行任何操作,且時不進行任何操作,且條件為條件為“真真”時只能執(zhí)行一條執(zhí)行時只能執(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 因為不論因為不論“真真”或或“假假”,都接著執(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年餐飲供貨合同協(xié)議書范本
- 合同簽訂即生效 股權(quán)變更避風(fēng)險
- 組織架構(gòu)及崗位職責(zé)
- 指定汽車維修服務(wù)協(xié)議
- 年度項目可行性研究報告購買合同
- 勞動合同書【鄉(xiāng)鎮(zhèn)企業(yè)】
- 園林苗木購銷合同范本
- 場地游戲安全協(xié)議書經(jīng)典版
- 2024年個人勞務(wù)協(xié)議書
- 2024股權(quán)轉(zhuǎn)讓合同協(xié)議書范本
- 期中測試卷-2024-2025學(xué)年統(tǒng)編版語文一年級上冊
- 國家基本醫(yī)療保險、工傷保險和生育保險藥品目錄(2023年)
- 人教版一年級數(shù)學(xué)上冊《第一、二單元測試卷》(附答案)
- 人教版二年級上冊數(shù)學(xué)計算題400道
- 供應(yīng)室教學(xué)課件
- 第三單元 測量(單元測試)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 1輸變電工程施工質(zhì)量驗收統(tǒng)一表式(線路工程)-2024年版
- 華為年財務(wù)報表分析(共16張課件)
- 讓我們一起去追“星”!兩彈一星之核彈老人魏世杰課件高二下學(xué)期愛國主義教育主題班會
- 2024-2025學(xué)年七年級生物上冊 第二單元第一、二章 單元測試卷( 人教版)
- 人教部編版三年級上冊《道德與法治》教案全套
評論
0/150
提交評論