版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章結構化程序設計—控制結構第四章結構化程序設計—控制結構結構化程序設計:按照順序結構、選擇〔分支〕結構和循環(huán)結構進行程序設計,稱為結構化程序設計。任何復雜的算法都可以由以上三種根本結構來實現。早期的Fortran程序只有順序結構和以IF語句為代表的選擇結構,由于沒有循環(huán)結構,需要在程序中添加GOTO無條件轉移語句,程序的可讀性和可維護性差。IF塊〔條件轉移〕的添加和循環(huán)結構,使得Fortran程序設計真正跨入結構化階段。本章著重講解選擇結構和循環(huán)結構。第一節(jié)IF語句IF語句是最早的選擇結構,構造形式為: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,用來賦值當判斷式不成立時,會去執(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二.邏輯運算選擇結構中的條件判別式由邏輯表達式組成。邏輯表達式中的運算符,包括算術運算符、關系運算符和邏輯運算符。*算術運算符:在第2章介紹過;*關系運算符:==(.EQ.);/=(.NE.);>(.GT.);>=(.GE.);<(.LT.);<=(.LE.)*邏輯運算符:.NOT.;.AND.;.OR.;.EQV.;.NEQV.;.XOR.優(yōu)先級由高到低依次為:算術運算符,關系運算符和邏輯運算符。例4-3PROGRAMEX0403IMPLICITNONEINTEGERRAIN,WINDSPEEDWRITE(*,*)"RAIN:"READ(*,*)RAINWRITE(*,*)"WIND:"READ(*,*)WINDSPEED
IF(RAIN>=500.OR.WINDSPEED>=10)THENWRITE(*,*)"停止上班上課"ELSEWRITE(*,*)"照常上班上課"ENDIFSTOPEND
運算符的使用邏輯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結束
ENDIF第2層IF結束ENDIF第1層IF結束例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=任意數ANS=0ENDIF
IF(ANS/=0)THEN!ANS不為0時,代表有解WRITE(*,"('第',I1,'象限')")ANSELSEWRITE(*,*)"落在軸上"ENDIF!STOPEND第二節(jié)浮點數及字符的邏輯運算浮點數的邏輯判斷例4-9PROGRAMEX0409IMPLICITNONEREAL::AREAL::B=3.0
A=SQRT(B)**2-B!理論上A應該要等于0
IF(A==0.0)THEN
WRITE(*,*)"A等于0"ELSEWRITE(*,*)"A不等于0"ENDIFSTOPEND
例4-10PROGRAMEX0410IMPLICITNONEREALAREAL::B=4.0REAL,PARAMETER::E=0.0001!設置誤差范圍
A=SQRT(B)**2-B!理論上A應該要等于0
IF(ABS(A-0.0)<=E)THEN
WRITE(*,*)"A等于0"ELSEWRITE(*,*)"A不等于0"ENDIFEND二、字符的邏輯判斷比較字符大小的依據是:比較它們的字符碼,因為在保存字符時,事實上就是保存它的字符碼?!產’<‘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í)行。這可以應用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省勞動合同(2篇)
- 2024年儀用電源合作協(xié)議書
- 2024年證券經紀代理與營業(yè)部服務合作協(xié)議書
- 2024年鈹箔及鈹合金箔項目建議書
- 2024版副食品購銷合同范本
- 陵園墓地裝修設計合同
- 裝修居間服務技術支持協(xié)議
- 2024版貴州省本草種植(收購)合同
- 2024版購銷合同與采購合同的合同理賠
- 食品添加劑運輸保密合同
- 2024年食品生產企業(yè)食品安全管理人員監(jiān)督抽查考試題庫(含答案)
- 第12關:小說閱讀(含答案與解析)-2024年中考語文一輪復習題型專練
- 小學四年級英語答題卡(Word版可以編輯修改)
- 中央廣播電視大學畢業(yè)生登記表(樣本)
- 潔凈室監(jiān)測記錄表
- 復習酒水投標書
- (完整版)工字鋼懸挑腳手架施工方案
- 瑞慈健康體檢 體檢報告書
- 冷庫工程質量驗收標準
- 工程預算編制準確性的控制措施
- 【人力資源】麥肯錫的人才激勵機制
評論
0/150
提交評論