![fortran選擇結(jié)構(gòu)及基本語(yǔ)句_第1頁(yè)](http://file4.renrendoc.com/view/defdf5250ad39052cbee9fa96571a1f8/defdf5250ad39052cbee9fa96571a1f81.gif)
![fortran選擇結(jié)構(gòu)及基本語(yǔ)句_第2頁(yè)](http://file4.renrendoc.com/view/defdf5250ad39052cbee9fa96571a1f8/defdf5250ad39052cbee9fa96571a1f82.gif)
![fortran選擇結(jié)構(gòu)及基本語(yǔ)句_第3頁(yè)](http://file4.renrendoc.com/view/defdf5250ad39052cbee9fa96571a1f8/defdf5250ad39052cbee9fa96571a1f83.gif)
![fortran選擇結(jié)構(gòu)及基本語(yǔ)句_第4頁(yè)](http://file4.renrendoc.com/view/defdf5250ad39052cbee9fa96571a1f8/defdf5250ad39052cbee9fa96571a1f84.gif)
![fortran選擇結(jié)構(gòu)及基本語(yǔ)句_第5頁(yè)](http://file4.renrendoc.com/view/defdf5250ad39052cbee9fa96571a1f8/defdf5250ad39052cbee9fa96571a1f85.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四講選擇結(jié)構(gòu)及基本語(yǔ)句1長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所4.1概述順序結(jié)構(gòu)程序特點(diǎn):程序自上而下按語(yǔ)句順序逐句執(zhí)行。是三大結(jié)構(gòu)之一。選擇結(jié)構(gòu)程序特點(diǎn):根據(jù)條件判定結(jié)果決定語(yǔ)句執(zhí)行順序。是三大結(jié)構(gòu)之一。FORTRAN90提供IF和SELECT語(yǔ)句來(lái)實(shí)現(xiàn)選擇結(jié)構(gòu)。示例:輸入學(xué)生成績(jī),判定合格與否,輸出判定結(jié)果。
PROGRAMexam4_1CHARACTER*6gradeWRITE(*,“(‘輸入學(xué)生成績(jī):’\)”)READ(*,*)s
IF(s>=60)THENgrade=‘合格’
ELSEgrade=‘不合格’
ENDIFWRITE(*,*)‘該學(xué)生成績(jī)’,grade,‘?!?/p>
ENDprograms≥60假真輸出grade結(jié)束開始輸入成績(jī)s“合格”grade“不合格”grade2長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所4.2邏輯IF語(yǔ)句邏輯IF語(yǔ)句語(yǔ)法:
<邏輯IF語(yǔ)句>→IF(<邏輯表達(dá)式e>)<語(yǔ)句S>
其中:e為邏輯表達(dá)式或關(guān)系表達(dá)式。
S為賦值語(yǔ)句、輸入輸出語(yǔ)句、STOP、EXIT等可執(zhí)行語(yǔ)句。邏輯IF語(yǔ)句功能:先求e值,為真(.TRUE.),執(zhí)行語(yǔ)句S。示例:
READ(*,*)i,jIF(i<j)WRITE(*,*)IWRITE(*,*)‘邏輯IF語(yǔ)句執(zhí)行結(jié)束。’
END
輸入:125,200
輸出:125
邏輯IF語(yǔ)句執(zhí)行結(jié)束。輸入:200,125輸出:邏輯IF語(yǔ)句結(jié)束。3長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所邏輯IF語(yǔ)句中的可執(zhí)行語(yǔ)句S只允許是一條語(yǔ)句。語(yǔ)句S可為賦值語(yǔ)句、I/O語(yǔ)句、STOP、EXIT、CYCLE、GOTO語(yǔ)句。語(yǔ)句S不可為END、IF、DO、ELSEIF、ENDIF語(yǔ)句,及非執(zhí)行語(yǔ)句。邏輯表達(dá)式e兩邊必須有圓括號(hào)。合法邏輯IF語(yǔ)句:IF(A.GT.Max)Max=AIF(A>B)READ(*,*)AIF(X.EQ.10.0)WRITE(*,*)XIF(ABS(A-B)<1E-7)STOPIF(A>B)EXITIF(SUM.LT.100.0)G0TO10非法邏輯IF語(yǔ)句:IF(B.LT.100.0)IF(B.GE.80)A=B
IF(X.GT.100.0)ENDIF(A>B)T=AA=BB=TIF(A>B.AND.A>C)DATAA/8/IF(A>B.AND.A>C)IFA.GT.MaxMax=A
4長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所[例4.1]已知三個(gè)整數(shù)A,B,C,輸入其值并打印三個(gè)數(shù)中最大值。
解:根據(jù)題意設(shè)計(jì)算法并畫程序流程圖,如圖4-2所示。程序:
INTEGERA,B,C,maxWRITE(*,“(‘請(qǐng)輸入三個(gè)整數(shù):’\)”)READ(*,*)A,B,Cmax=AIF(B>max)max=BIF(C>max)max=CWRITE(*,100)max100FORMAT(1X,'max=',I5)END輸入:請(qǐng)輸入三個(gè)實(shí)數(shù):12,100,22↙輸出:max=100
結(jié)束max=AB>max真假max=BC>max假真max=C輸出max輸入:A,B,C5長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所4.3塊IF語(yǔ)句基本塊IF語(yǔ)句語(yǔ)法:
<基本塊IF語(yǔ)句>→IF(<邏輯表達(dá)式e>)THEN[<THEN語(yǔ)句體>][ELSE[<ELSE語(yǔ)句體>]]ENDIF<基本塊IF語(yǔ)句>→IF(<邏輯表達(dá)式e>)THEN[<THEN語(yǔ)句體>]ENDIF<THEN語(yǔ)句體>→{<可執(zhí)行語(yǔ)句>}
<ELSE語(yǔ)句體>→{<可執(zhí)行語(yǔ)句>}
基本塊IF語(yǔ)句功能:先求e值,為真,執(zhí)行<THEN語(yǔ)句體>,
為假,執(zhí)行<ELSE語(yǔ)句體>。<THEN語(yǔ)句體>和<ELSE語(yǔ)句體>為一程序段(語(yǔ)句序列)。6長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所選擇結(jié)構(gòu)有三種類型:雙邊結(jié)構(gòu)、單邊結(jié)構(gòu)1、單邊結(jié)構(gòu)2。真假THEN語(yǔ)句體eELSE語(yǔ)句體雙邊選擇結(jié)構(gòu)ENDIFENDIF真假eTHEN語(yǔ)句體單邊選擇結(jié)構(gòu)1ENDIF真假eELSE語(yǔ)句體單邊選擇結(jié)構(gòu)2IF(e)THEN
<THEN語(yǔ)句體>ELSE<ELSE語(yǔ)句體>ENDIFIF(e)THEN<THEN語(yǔ)句體>ENDIFIF(e)THENELSE<ELSE語(yǔ)句體>ENDIFIF(.NOT.e)THEN<ELSE語(yǔ)句體>ENDIF7長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所[例4.2]輸入一個(gè)整數(shù),判斷它是奇數(shù)還是偶數(shù),并打印輸出。解:根據(jù)題意設(shè)計(jì)算法并畫程序流程圖,如圖4-4所示。程序:
10FORMAT(1X,I5,'ISAEVENNUMBER.')20FORMAT(1X,I5,'ISAODDNUMBER.')WRITE(*,*)'PLEASEINPUTAINTEGERNUMBER:‘READ(*,*)NIF(MOD(N,2)=
=0)THENWRITE(*,10)NELSEWRITE(*,20)NENDIF
END輸入:77↙
輸出:77ISAODDNUMBER.假打印奇數(shù)輸入N結(jié)束MOD(N,2)=
=0打印偶數(shù)真8長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所多支塊IF語(yǔ)句語(yǔ)法:
<多支塊IF語(yǔ)句>→IF(<邏輯表達(dá)式e1>)THEN[<語(yǔ)句體1>]ELSEIF(<邏輯表達(dá)式e2>)THEN[<語(yǔ)句體2>]ELSEIF(<邏輯表達(dá)式e3>)THEN[<語(yǔ)句體3>]……ELSEIF(<邏輯表達(dá)式en>)THEN[<語(yǔ)句體n>][ELSE[<語(yǔ)句體n+1>]]ENDIF功能:求ei值,為真,執(zhí)行<語(yǔ)句體i>,均為假,執(zhí)行<語(yǔ)句體n+1>。9長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所給定一學(xué)生成績(jī)S,評(píng)判該學(xué)生等級(jí),并輸出評(píng)判結(jié)果。評(píng)判標(biāo)準(zhǔn):優(yōu):90≤S≤100;良:80≤S<90;中:70≤S<80及格:60≤S<70;不及格:S<60解:根據(jù)題意設(shè)計(jì)算法并畫程序流程圖,如下圖所示。有三個(gè)等價(jià)程序可求解這一問(wèn)題。輸出“優(yōu)”輸出“良”輸出“中”輸出“及”輸出“不及”S<60真假S<70真假S<80真假S<90真假10長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所
!程序一WRITE(*,“(‘輸入學(xué)生成績(jī):’\)”)READ(*,*)SIF(S<60)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋翰患案瘛!疘F(S>=60.AND.S<70)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋杭案??!疘F(S>=70.AND.S<80)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋褐?。’IF(S>=80.AND.S<90)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋毫?。’IF(S>=90)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋簝?yōu)?!疎ND11長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所
!程序二WRITE(*,“(‘輸入學(xué)生成績(jī):’\)”)READ(*,*)SIF(S<60)THENWRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋翰患案瘛!疎LSEIF(S<70)THENWRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋杭案??!疎LSEIF(S<80)THENWRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋褐??!疎LSEIF(S<90)THENWRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋毫肌!疎LSEwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋簝?yōu)?!疎NDIFENDIFENDIFENDIFEND12長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所READ(*,*)S!程序三IF(S<60)THENwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋翰患案瘛!疎LSEIF(S<70)THENwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋杭案??!疎LSEIF(S<80)THENwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋褐??!疎LSEIF(S<90)THENwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋毫??!疎LSEwrite(*,*)‘該學(xué)生成績(jī)?yōu)椋簝?yōu)?!疎NDIFEND13長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所嵌套塊IF:指塊IF語(yǔ)句中又包含塊IF語(yǔ)句,可有多層嵌套。對(duì)于嵌套塊IF,內(nèi)外層塊IF語(yǔ)句體不能相互交叉。塊IF語(yǔ)句可命名,在嵌套塊IF中,可對(duì)內(nèi)外層塊IF語(yǔ)句進(jìn)行命名。
示例:求解方程ax2+bx+c=0,需要檢查是否a=0,防止除0溢出。
Disc=b*b—4*a*c
Outer:IF(a/=0)THEN
Inner:IF(Disc<0)THENWRITE(*,*)'Complexroots‘ELSEInnerX1=(-b+SQRT(Disc))/(2*a)X2=(-b-SQRT(Disc))/(2*a)ENDIFInner
ENDIFOuter
14長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所MS-FORTRAN90引入類似PASCAL和C語(yǔ)言中塊CASE結(jié)構(gòu)的新功能。CASE結(jié)構(gòu)功能:計(jì)算表達(dá)式值,從多個(gè)分支中選擇一分支執(zhí)行。
<SELECT語(yǔ)句>→SELECTCASE(<表達(dá)式e>)CASE(<控制集合1>)<語(yǔ)句體1>CASE(<控制集合2>)<語(yǔ)句體2>……CASE(<控制集合n>)<語(yǔ)句體n>[CASEDEFAULT<語(yǔ)句體n+1>]ENDSELECT<控制集合>→<元素>[:<元素>]{,<元素>[:<元素>]}
集合表示示例:1,5,7-91,3,5,7,9125,250,375,500‘pen’,’pencil’,’desk’‘A’,’B’,’C’,’D’.TRUE.15長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所給定學(xué)生成績(jī)S,評(píng)定優(yōu)、良、中、及格、不及格等級(jí),并輸出。
INTEGER(1)SREAD(*,*)SSELECTCASE(INT(S))CASE(90:100)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋簝?yōu)?!?/p>
CASE(80:89)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋毫??!?/p>
CASE(70:79)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋褐小!?/p>
CASE(60:69)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋杭案??!?/p>
CASE(0:59)WRITE(*,*)‘該學(xué)生成績(jī)?yōu)椋翰患案?。?/p>
ENDSELECTCASEDEFAULT
ENDWRITE(*,*)‘輸入成績(jī)數(shù)據(jù)錯(cuò)?。?!'
16長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所4.4選擇結(jié)構(gòu)程序設(shè)計(jì)舉例[例4.4]任意輸入一個(gè)整數(shù)N(N≥2),確定N是否為素?cái)?shù),輸出判定結(jié)果。解:對(duì)于整數(shù)N,若為偶數(shù),則一定不是素?cái)?shù);若為奇數(shù),從K=3至√N(yùn)+1,逐個(gè)測(cè)試MOD(N,K)是否為零,若有一次為零,則N不是素?cái)?shù),否則N為素?cái)?shù)。LOGICAL::FLAG=.TRUE.READ(*,*)NSELECTCASE(N)CASE(2)WRITE(*,*)'2是素?cái)?shù)。'CASE(3:)IF(MOD(N,2)=
=0)THENWRITE(*,200)NSTOPENDIFM=INT(SQRT(FLOAT(N))+1)DOK=3,M,2IF(MOD(N,K)=
=0)FLAG=.FALSE.ENDDO
IF(FLAG)THENWRITE(*,100)NELSEWRITE(*,200)NENDIFCASEDEFAULTWRITE(*,*)‘?dāng)?shù)據(jù)輸入不正確?!疎NDSELECT100FORMAT(1X,I4,‘是素?cái)?shù)?!?200FORMAT(1X,I4,‘不是素?cái)?shù)。’)END17長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所[例4.5]求解方程Ax2+Bx+C=0。A,B,C由鍵盤輸入,計(jì)算且輸出方程解。
(1)A=0,B≠0;(方程只有一個(gè)解)(2)A=0,B=0,C=0;(方程有無(wú)窮個(gè)解)(3)A=0,B=0,C≠0;(方程無(wú)解)(4)A≠0,B2-4AC>0;(方程有二個(gè)不同的實(shí)數(shù)解)(5)A≠0,B2-4AC=0;(方程有二個(gè)相同的實(shí)數(shù)解)(6)A≠0,B2-4AC<0;(方程有二個(gè)不同的復(fù)數(shù)解)解:依題意設(shè)計(jì)算法,并畫流程圖(盒圖或PAD圖)。
程序:輸入:1.0,1.0,-2.0↙
輸出:X1=1.000000X2=-2.000000
18長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所真假C/=0假真輸出:無(wú)窮解輸出:無(wú)解輸出:有1解XR=-B/2AD0=SQRT(D)XI=SQRT(-D)/2AX1=(-B+D0)/2AX2=(-B-D0)/2AD=B2-4AC輸出:XR,XI輸出:X1,X2輸入A,B,C開始A=0假真B/=0假真結(jié)束D<019長(zhǎng)安大學(xué)地學(xué)信息技術(shù)研究所WRITE(*,*)'PLEASEINPUTA,B,C‘READ(*,*)A,B,CD=B*B-4*A*CIF(A==0)THENIF(B/=0)THENWRITE(*,*)'只有一個(gè)解:',C/BELSEIF(C/=0)THEN
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海外旅游產(chǎn)品代理銷售合同(2篇)
- 2025年度新能源車輛充電樁配電箱定制合同2篇
- 2024年秋八年級(jí)語(yǔ)文上冊(cè) 第二單元 7《回憶我的母親》說(shuō)課稿 新人教版
- 2024-2025學(xué)年高中語(yǔ)文 第6單元 文無(wú)定格 貴在鮮活 29 種樹郭橐駝傳說(shuō)課稿 新人教版選修《中國(guó)古代詩(shī)歌散文欣賞》
- 二零二五年度旅游區(qū)旅游咨詢服務(wù)臺(tái)租賃與服務(wù)協(xié)議3篇
- 二零二五年度內(nèi)部股權(quán)激勵(lì)與員工職業(yè)發(fā)展合同
- 2025年度木制家居產(chǎn)品設(shè)計(jì)與生產(chǎn)合作協(xié)議
- 4《藏戲》說(shuō)課稿-2023-2024學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)下冊(cè)
- 二零二五年度高速公路隔離柵鋪裝施工協(xié)議4篇
- 二零二五年度數(shù)據(jù)中心運(yùn)維服務(wù)投標(biāo)咨詢服務(wù)合同
- 2025至2030年中國(guó)減肥肽數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024內(nèi)蒙古公務(wù)員省直行測(cè)、行政執(zhí)法、省考行測(cè)考試真題(5套)
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 山東省濱州市濱城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末考試化學(xué)試題
- 期末試卷:安徽省宣城市2021-2022學(xué)年七年級(jí)上學(xué)期期末歷史試題(解析版)
- 幼兒教師新年規(guī)劃
- 2024年湖南省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- pcs-9611d-x說(shuō)明書國(guó)內(nèi)中文標(biāo)準(zhǔn)版
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計(jì)
- 酒廠食品召回制度
評(píng)論
0/150
提交評(píng)論