資源描述:
《fortran選擇結(jié)構(gòu)及基本語句》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第四講選擇結(jié)構(gòu)及基本語句14.1概述順序結(jié)構(gòu)程序特點:程序自上而下按語句順序逐句執(zhí)行。是三大結(jié)構(gòu)之一。選擇結(jié)構(gòu)程序特點:根據(jù)條件判定結(jié)果決定語句執(zhí)行順序。是三大結(jié)構(gòu)之一。FORTRAN90提供IF和SELECT語句來實現(xiàn)選擇結(jié)構(gòu)。示例:輸入學生成績,判定合格與否,輸出判定結(jié)果。PROGRAMexam4_1CHARACTER*6gradeWRITE(*,“(‘輸入學生成績:’)”)READ(*,*)sIF(s>=60)THENgrade=‘合格’ELSEgrade=‘不合格’ENDIFWRITE(*,*)‘該學生成績’,grade,‘?!疎NDprograms≥
2、60假真輸出grade結(jié)束開始輸入成績s“合格”?grade“不合格”?grade2長安大學地學信息技術(shù)研究所4.2邏輯IF語句邏輯IF語句語法:<邏輯IF語句>→IF(<邏輯表達式e>)<語句S>其中:e為邏輯表達式或關(guān)系表達式。S為賦值語句、輸入輸出語句、STOP、EXIT等可執(zhí)行語句。邏輯IF語句功能:先求e值,為真(.TRUE.),執(zhí)行語句S。示例:READ(*,*)i,jIF(i3、。3長安大學地學信息技術(shù)研究所邏輯IF語句中的可執(zhí)行語句S只允許是一條語句。語句S可為賦值語句、I/O語句、STOP、EXIT、CYCLE、GOTO語句。語句S不可為END、IF、DO、ELSEIF、ENDIF語句,及非執(zhí)行語句。邏輯表達式e兩邊必須有圓括號。合法邏輯IF語句: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語句:IF(B.LT.100.0)IF(B.GE.80
4、)A=BIF(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=A4長安大學地學信息技術(shù)研究所[例4.1]已知三個整數(shù)A,B,C,輸入其值并打印三個數(shù)中最大值。解:根據(jù)題意設計算法并畫程序流程圖,如圖4-2所示。程序:INTEGERA,B,C,maxWRITE(*,“(‘請輸入三個整數(shù):’)”)READ(*,*)A,B,Cmax=AIF(B>max)max=BIF(C>max)max=CWRITE(*,100)max100FORMAT(1X,'ma
5、x=',I5)END輸入:請輸入三個實數(shù):12,100,22↙輸出:max=100結(jié)束max=AB>max真假max=BC>max假真max=C輸出max輸入:A,B,C5長安大學地學信息技術(shù)研究所4.3塊IF語句基本塊IF語句語法:<基本塊IF語句>→IF(<邏輯表達式e>)THEN[][ELSE[]]ENDIF<基本塊IF語句>→IF(<邏輯表達式e>)THEN[]ENDIF→{<可執(zhí)行語句>}→{<可執(zhí)行語句>}基本塊IF語句功能:先求e值,為真,執(zhí)行6、>,為假,執(zhí)行。和為一程序段(語句序列)。6長安大學地學信息技術(shù)研究所選擇結(jié)構(gòu)有三種類型:雙邊結(jié)構(gòu)、單邊結(jié)構(gòu)1、單邊結(jié)構(gòu)2。真假THEN語句體eELSE語句體雙邊選擇結(jié)構(gòu)ENDIFENDIF真假eTHEN語句體單邊選擇結(jié)構(gòu)1ENDIF真假eELSE語句體單邊選擇結(jié)構(gòu)2IF(e)THENELSEENDIFIF(e)THENENDIFIF(e)THENELSEENDIFIF(.NOT.e)THENENDIF7長安大學地學信息
7、技術(shù)研究所[例4.2]輸入一個整數(shù),判斷它是奇數(shù)還是偶數(shù),并打印輸出。解:根據(jù)題意設計算法并畫程序流程圖,如圖4-4所示。程序:10FORMAT(1X,I5,'ISAEVENNUMBER.')20FORMAT(1X,I5,'ISAODDNUMBER.')WRITE(*,*)'PLEASEINPUTAINTEGERNUMBER:‘READ(*,*)NIF(MOD(N,2)==0)THENWRITE(*,10)NELSEWRITE(*,20)NENDIFEND輸入:77↙輸出:77ISAODDNUMBER.假打印奇數(shù)輸入N結(jié)束MOD(N,2)==0打印偶數(shù)真8長安大
8、學地學信息技術(shù)研究所多支