




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章結(jié)構(gòu)化程序設(shè)計—控制結(jié)構(gòu)第四章結(jié)構(gòu)化程序設(shè)計—控制結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計:按照順序結(jié)構(gòu)、選擇〔分支〕結(jié)構(gòu)和循環(huán)結(jié)構(gòu)進(jìn)行程序設(shè)計,稱為結(jié)構(gòu)化程序設(shè)計。任何復(fù)雜的算法都可以由以上三種根本結(jié)構(gòu)來實現(xiàn)。早期的Fortran程序只有順序結(jié)構(gòu)和以IF語句為代表的選擇結(jié)構(gòu),由于沒有循環(huán)結(jié)構(gòu),需要在程序中添加GOTO無條件轉(zhuǎn)移語句,程序的可讀性和可維護(hù)性差。IF塊〔條件轉(zhuǎn)移〕的添加和循環(huán)結(jié)構(gòu),使得Fortran程序設(shè)計真正跨入結(jié)構(gòu)化階段。本章著重講解選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。第一節(jié)IF語句IF語句是最早的選擇結(jié)構(gòu),構(gòu)造形式為:IF〔邏輯判斷式〕Then…………EndIf流程說明:邏輯成立時,才會執(zhí)行IF塊里面的程序代碼例4-1警告車速過快的程序
PROGRAMEX0401IMPLICITNONEREAL(KIND=4)::SPEEDWRITE(*,*)"SPEED:"!信息提示
READ(*,*)SPEED!讀入車速
IF(SPEED>100.0)THEN!SPEED>100時才會執(zhí)行下面這一行程序
WRITE(*,*)"SLOWDOWN."ENDIFSTOPEND
IF語句IF命令還可以搭配上ELSE,用來賦值當(dāng)判斷式不成立時,會去執(zhí)行某一段程序代碼。IF(邏輯判斷式)THEN…………邏輯成立時,執(zhí)行這一段程序代碼……ELSE…………邏輯不成立時,那么執(zhí)行這一段程序代碼……ENDIF例4-2PROGRAMEX0402IMPLICITNONEREAL(KIND=4)::HEIGHT!記錄身高
REAL(KIND=4)::WEIGHT!記錄體重
WRITE(*,*)"HEIGHT:"READ(*,*)HEIGHT!讀入身高
WRITE(*,*)"WEIGHT:"READ(*,*)WEIGHT!讀入體重
IF(WEIGHT>HEIGHT-100)THEN!如果體重大于身高減去100,會執(zhí)行下面的程序
WRITE(*,*)"TOOFAT!"ELSE!如果體重不大于身高減去100,會執(zhí)行下面的程序
WRITE(*,*)"UNDERCONTROL."ENDIF
STOPEND二.邏輯運(yùn)算選擇結(jié)構(gòu)中的條件判別式由邏輯表達(dá)式組成。邏輯表達(dá)式中的運(yùn)算符,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符。*算術(shù)運(yùn)算符:在第2章介紹過;*關(guān)系運(yùn)算符:==(.EQ.);/=(.NE.);>(.GT.);>=(.GE.);<(.LT.);<=(.LE.)*邏輯運(yùn)算符:.NOT.;.AND.;.OR.;.EQV.;.NEQV.;.XOR.優(yōu)先級由高到低依次為:算術(shù)運(yùn)算符,關(guān)系運(yùn)算符和邏輯運(yùn)算符。例4-3PROGRAMEX0403IMPLICITNONEINTEGERRAIN,WINDSPEEDWRITE(*,*)"RAIN:"READ(*,*)RAINWRITE(*,*)"WIND:"READ(*,*)WINDSPEED
IF(RAIN>=500.OR.WINDSPEED>=10)THENWRITE(*,*)"停止上班上課"ELSEWRITE(*,*)"照常上班上課"ENDIFSTOPEND
運(yùn)算符的使用邏輯A邏輯BA.AND.BTrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalse邏輯A邏輯BA.OR.BTRUETRUETRUETRUEFALSETRUEFALSETRUETRUEFALSEFALSEFALSE邏輯A.NOT.ATRUEFALSEFALSETRUE邏輯A邏輯BA.EQV.BTRUETRUETRUETRUEFALSEFALSEFALSETRUEFALSEFALSEFALSETRUE三.多重判斷IF-ELSEIFIF(條件1)THEN……條件1成立時,執(zhí)行這個模塊程序
……ELSEIF(條件2)THEN……條件2成立時,執(zhí)行這個模塊程序
……ELSEIF(條件3)THEN……條件3成立時,執(zhí)行這個模塊程序
…………ELSEIF(條件4)THEN……條件4成立時,執(zhí)行這個模塊程序
……ELSE!ELSE這個模塊可以省略
……每個條件都不成立時,才執(zhí)行這個模塊程序
……ENDIF例4-5PROGRAMEX0405IMPLICITNONEINTEGERSCORECHARACTERGRADEWRITE(*,*)"SCORE:"READ(*,*)SCORE
IF(SCORE>=90.AND.SCORE<=100)THENGRADE='A'ELSEIF(SCORE>=80.AND.SCORE<=90)THENGRADE='B'ELSEIF(SCORE>=70.AND.SCORE<=80)THENGRADE='C'ELSEIF(SCORE>=60.AND.SCORE<=70)THENGRADE='D'ELSEIF(SCORE>=0.AND.SCORE<=60)THENGRADE='E'ELSE!SCORE<0或SCORE>100的不合理情況
GRADE='?'ENDIF
WRITE(*,"('GRADE:',A1)")GRADESTOPEND
例4-6PROGRAMEX0406IMPLICITNONEINTEGERSCORECHARACTERGRADEWRITE(*,*)"SCORE:"READ(*,*)SCORE
IF(SCORE>100)THENGRADE='?'ELSEIF(SCORE>=90)THEN!會執(zhí)行到此,代表SCORE<=100GRADE='A'ELSEIF(SCORE>=80)THEN!會執(zhí)行到此,代表SCORE<=90GRADE='B'ELSEIF(SCORE>=70)THEN!會執(zhí)行到此,代表SCORE<=80GRADE='C'ELSEIF(SCORE>=60)THEN!會執(zhí)行到此,代表SCORE<=70GRADE='D'ELSEIF(SCORE>=0)THEN!會執(zhí)行到此,代表SCORE<=60GRADE='E'ELSEGRADE='?'ENDIF
WRITE(*,"('GRADE:',A1)")GRADESTOPEND
四.嵌套IF語句IF語句的嵌套IF(……)THEN第1層IF開始IF(……)THEN第2層IF開始IF(……)THEN第3層IF開始ELSEIF(……)THENELSEENDIF第3層IF結(jié)束
ENDIF第2層IF結(jié)束ENDIF第1層IF結(jié)束例4-8判斷象限
PROGRAMEX0408IMPLICITNONEREALX,YINTEGERANS
WRITE(*,*)"INPUT(X,Y)"READ(*,*)X,Y
IF(X>0)THENIF(Y>0)THEN!X>0,Y>0ANS=1ELSEIF(Y<0)THEN!X>0,Y<0ANS=4ELSE!X>0,Y=0ANS=0ENDIFELSEIF(X<0)THENIF(Y>0)THEN!X<0,Y>0ANS=2ELSEIF(Y<0)THEN!X<0,Y<0ANS=3ELSE!X<0,Y=0ANS=0ENDIF
續(xù)ELSE!X=0,Y=任意數(shù)ANS=0ENDIF
IF(ANS/=0)THEN!ANS不為0時,代表有解WRITE(*,"('第',I1,'象限')")ANSELSEWRITE(*,*)"落在軸上"ENDIF!STOPEND第二節(jié)浮點數(shù)及字符的邏輯運(yùn)算浮點數(shù)的邏輯判斷例4-9PROGRAMEX0409IMPLICITNONEREAL::AREAL::B=3.0
A=SQRT(B)**2-B!理論上A應(yīng)該要等于0
IF(A==0.0)THEN
WRITE(*,*)"A等于0"ELSEWRITE(*,*)"A不等于0"ENDIFSTOPEND
例4-10PROGRAMEX0410IMPLICITNONEREALAREAL::B=4.0REAL,PARAMETER::E=0.0001!設(shè)置誤差范圍
A=SQRT(B)**2-B!理論上A應(yīng)該要等于0
IF(ABS(A-0.0)<=E)THEN
WRITE(*,*)"A等于0"ELSEWRITE(*,*)"A不等于0"ENDIFEND二、字符的邏輯判斷比較字符大小的依據(jù)是:比較它們的字符碼,因為在保存字符時,事實上就是保存它的字符碼?!產(chǎn)’<‘b’!因為a的ASCII碼為97,b的ASCII碼為98‘A’<’a’!因為A的ASCII碼為65,a的ASCII碼97其他流程控制GOTO命令例4-14PROGRAMEX0414IMPLICITNONEREALHEIGHT!記錄身高
REALWEIGHT!記錄體重
WRITE(*,*)"HEIGHT:"READ(*,*)HEIGHT!讀入身高
WRITE(*,*)"WEIGHT:"READ(*,*)HEIGHT!讀入體重
IF(WEIGHT>HEIGHT-100)GOTO200!上面不成立,沒有跳到200才會執(zhí)行這里
WRITE(*,*)"UNDERCONTROL."GOTO300!下一行不能執(zhí)行所以要跳到300200WRITE(*,*)"TOOFAT!"300STOPENDPAUSE,CONTINUE,STOPPAUSE的功能就跟它的字面意義相同,程序執(zhí)行到PAUSE時,會暫停執(zhí)行,直到用戶按下Enter鍵才會繼續(xù)執(zhí)行。這可以應(yīng)用
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濕稻谷訂購合同范本
- 個人述職報告范文
- 個人求職簡歷中的自薦信
- 個人房屋抵押借款簡單的合同范本
- 下鄉(xiāng)扶貧工作計劃
- 大學(xué)計算機(jī)基礎(chǔ)模擬試題及答案
- 單位發(fā)包合同范本
- 制氧機(jī)購銷合同范本
- 北京小汽車租賃合同范本
- 賣貨合同范例001
- 測繪安全生產(chǎn)專題培訓(xùn)課件
- 心肺復(fù)蘇簡易呼吸器使用除顫儀使用
- 油缸裝配作業(yè)指導(dǎo)書
- 2022年濟(jì)南工程職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試筆試試題及答案解析
- 初中數(shù)學(xué)競賽試題匯編
- 湖南非稅在線繳費(fèi)操作步驟
- GB∕Z 27735-2022 野營帳篷
- 高分子材料研究方法 X 射線法
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學(xué)年高中音樂人音版(2019)必修音樂鑒賞
- 高中人音版必修 音樂鑒賞20人民音樂家課件
- 風(fēng)電齒輪箱講義(20151010)
評論
0/150
提交評論