fortran邏輯運(yùn)算和選擇結(jié)構(gòu).ppt
-
資源ID:7423494
資源大?。?span id="6666661" class="font-tahoma">845.50KB
全文頁數(shù):25頁
- 資源格式: PPT
下載積分:9.9積分
快捷下載
會(huì)員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。
|
fortran邏輯運(yùn)算和選擇結(jié)構(gòu).ppt
第八章常用算法的程序設(shè)計(jì)舉例 第一章算法 第二章計(jì)算機(jī)和計(jì)算機(jī)程序 第四章邏輯運(yùn)算和選擇結(jié)構(gòu) 第五章循環(huán)結(jié)構(gòu)的實(shí)現(xiàn) 第六章Fortran的數(shù)據(jù)結(jié)構(gòu) 第七章數(shù)據(jù)的輸入 輸出 第三章Fortran語言程序設(shè)計(jì)初步 一 引言 在FORTRAN77中 用塊IF結(jié)構(gòu)來實(shí)現(xiàn)選擇結(jié)構(gòu) 其形式為 IF 條件 THENthen塊ELSEelse塊ENDIF 例 計(jì)算職工工資 正常工資rate yuan h 一周超過40hours時(shí) 超過部分按1 5rate yuan h cPayrollwithovertimeprogrampayrollread rate hoursif hours gt 40 0 thenregpay rate 40 0ovtpay 1 5 rate hours 40 0 elseregpay rate hoursovtpay 0 0endifpay regpay ovtpaywrite rate rate hours hourswrite regularpay regpay overtimepay ovtpaywrite totalpay payend 二 關(guān)系表達(dá)式 關(guān)系表達(dá)式是最簡(jiǎn)單的一種邏輯表達(dá)式 其一般形式為 算術(shù)量 數(shù)值常數(shù) 數(shù)值型變量 數(shù)值函數(shù) 算術(shù)表達(dá)式 關(guān)系運(yùn)算符 關(guān)系比較符 FORTRAN中有六種關(guān)系運(yùn)算符 幾點(diǎn)注意 1 關(guān)系運(yùn)算符字母兩側(cè)各有一個(gè)句點(diǎn) 不要漏寫 2 在一個(gè)關(guān)系表達(dá)式中可能包括算術(shù)運(yùn)算符和關(guān)系運(yùn)算符 先進(jìn)行算術(shù)運(yùn)算 然后進(jìn)行關(guān)系運(yùn)算 建議加括號(hào) i j ne m n相當(dāng)于 i j ne m n 3 不同類型常變量比較時(shí) 遵循低級(jí)向高級(jí)轉(zhuǎn)化規(guī)律 X GT 3 4 關(guān)系表達(dá)式的值不是一個(gè)數(shù)值 而是邏輯量 真 或 假 5 判斷實(shí)數(shù)相等和不等 用 EQ 和 NE 時(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 三 邏輯表達(dá)式 1 邏輯常量 FORTRAN只有兩個(gè)邏輯常量 TRUE 表示 真 即滿足邏輯條件 FALSE 表示 假 即不滿足邏輯條件 2 邏輯型變量 Fortran用LOGICAL語句說明邏輯變量 logicala ba true b x y gt z 3 邏輯運(yùn)算符 4 邏輯表達(dá)式 FORTRAN77邏輯量包括 邏輯常量邏輯型變量關(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 true 注意 AND 和 EQV 的區(qū)別 例如 A 3 5 B 5 0 C 2 5 D 1 0 算術(shù)運(yùn)算符的運(yùn)算對(duì)象是數(shù)值量 運(yùn)算結(jié)果為數(shù)值 關(guān)系運(yùn)算符的運(yùn)算對(duì)象是數(shù)值量 運(yùn)算結(jié)果為邏輯量 邏輯運(yùn)算符的運(yùn)算對(duì)象是邏輯量 運(yùn)算結(jié)果仍為邏輯量 邏輯運(yùn)算符和算術(shù)運(yùn)算符可以連續(xù)用運(yùn)算符連接運(yùn)算量 但關(guān)系運(yùn)算符不可以 邏輯運(yùn)算符可以寫成 設(shè)L1 L2 L3 L4為邏輯變量 L1 AND L2 AND L3 AND L4算術(shù)運(yùn)算符可以寫成 A B C D但關(guān)系運(yùn)算符不能寫成 A LT B LT C LT D 四 用塊IF實(shí)現(xiàn)選擇結(jié)構(gòu) IF 邏輯表達(dá)式 THEN塊1ELSE塊2ENDIF 幾點(diǎn)說明 1 一個(gè)塊IF是有若干個(gè)語句組成的 其中三條語句均不能單獨(dú)是使用 2 一個(gè)塊IF必須以塊IF語句開始 以ENDIF語句結(jié)束 一個(gè)塊IF語句必須和一個(gè)ENDIF語句對(duì)應(yīng) 3 一個(gè)塊IF可以不包含ELSE語句和else塊 也可以不包含then塊 if grade lt 60 thenprint No numprint grade gradeendif 4 塊IF的嵌套 一個(gè)塊IF可以嵌套另一個(gè)塊IF 但另一個(gè)塊if必須完整地出現(xiàn)在then塊或else塊的位置 if grade ge 60 thenelseprint No numprint grade gradeendif read gradeif grade ge 60 thenif grade ge 70 thenif grade ge 80 thenwrite A elsewrite B endifelsewrite C endifelsewrite D endifend 成績(jī)分級(jí)A 80B 70且 80C 60且 70D 60 給a b c三個(gè)數(shù)排序 要求從小到大輸出 read a b cif a le b thenelset aa bb tendifif b le c thenelset bb cc tif a le b thenelset aa bb tendifendifwrite a b cend 五 ELSEIF語句 read gradeif grade ge 60 thenif grade ge 70 thenif grade ge 80 thenwrite A elsewrite B endifelsewrite C endifelsewrite D endifend 為了避免過多的塊IF嵌套 FORTRAN還提供了ELSEIF語句來處理 否則 如果 的情況 read gradeif grade ge 60 thenif grade ge 70 thenif grade ge 80 thenwrite A elsewrite B endifelsewrite C endifelsewrite D endifend read gradeif grade ge 80 thenwrite A elseif grade ge 70 thenwrite B elseif grade ge 60 thenwrite C elsewrite D endifend 幾點(diǎn)說明 2 ELSEIF語句不需ENDIF語句與之對(duì)應(yīng) 3 一個(gè)塊IF可以有多個(gè)ELSEIF語句 除非有塊IF嵌套否則只能有一個(gè)ELSE語句 1 ELSEIF語句相當(dāng)于把ELSE語句和其下一行的塊IF語句連結(jié)成一個(gè)語句 4 當(dāng)處理多分支選擇時(shí) 用ELSEIF語句往往比較方便 5 ELSEIF是在 條件為假 的分支中再繼續(xù)進(jìn)行分支處理的 故在處理多分支的選擇時(shí) 要把出現(xiàn)幾率高的條件寫在前面 以提高效率 read gradeif grade ge 80 thenwrite A elseif grade ge 70 thenwrite B elseif grade ge 60 thenwrite C elsewrite D endifend read gradeif grade le 60 thenwrite D elseif grade le 70 thenwrite C elseif grade le 80 thenwrite B elsewrite A endifend read xif x lt 10 0 theny 0 0elseif x lt 0 0 theny 2 0 x 20 0elseif x lt 20 0 theny 20 0elseif x lt 40 0 theny 30 0 0 5 xelseif x lt 50 0 theny 50 0 xelsey 0 0endifwrite y yend 求函數(shù)值 六 邏輯IF語句 邏輯IF語句只有 條件為真 時(shí)才有操作 為 假 時(shí)不進(jìn)行任何操作 且條件為 真 時(shí)只能執(zhí)行一條執(zhí)行語句 而后不論 真 或 假 都接著執(zhí)行邏輯IF語句的下一條語句 邏輯IF語句又稱行IF語句 如果在塊IF結(jié)構(gòu)中else塊空塊 而then塊只有一條語句 則用邏輯IF語句比較方便 if x lt 60 0 thenwrite gradeendifend if x lt 60 0 write grade 因?yàn)椴徽?真 或 假 都接著執(zhí)行邏輯IF語句的下一條語句 故邏輯IF語句的條件要寫全 read gradeif grade ge 80 write A if grade ge 70 and grade lt 80 write B if grade ge 60 and grade lt 70 write C if grade lt 60 write D end read gradeif grade ge 80 write A if grade ge 70 write B if grade ge 60 write C write D end C單價(jià)850 100以上95折優(yōu)惠 求貨款 price 850read nif n ge 100 price price 0 95amount n pricewrite n n amount amountend