知識(shí)資料信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十一)(新版)_第1頁(yè)
知識(shí)資料信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十一)(新版)_第2頁(yè)
知識(shí)資料信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十一)(新版)_第3頁(yè)
知識(shí)資料信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十一)(新版)_第4頁(yè)
知識(shí)資料信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十一)(新版)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

朽木易折,金石可鏤。千里之行,始于足下。PAGE第頁(yè)/共頁(yè)7六、控制語(yǔ)句普通情況下,FORTRAN程序是按語(yǔ)句順序執(zhí)行的,但需要時(shí),可以改變這種順序。這種改變可以通過(guò)各種控制轉(zhuǎn)移語(yǔ)句、邏輯條件語(yǔ)句等來(lái)實(shí)現(xiàn)。(一)轉(zhuǎn)移語(yǔ)句1.無(wú)條件轉(zhuǎn)移語(yǔ)句無(wú)條件轉(zhuǎn)移語(yǔ)句的普通形式為:GOTOn當(dāng)程序流程到達(dá)GOTO語(yǔ)句時(shí),隨后就轉(zhuǎn)向語(yǔ)句標(biāo)號(hào)為n的語(yǔ)句。標(biāo)號(hào)為n的語(yǔ)句必須是可執(zhí)行語(yǔ)句,但它在程序中的羅列位置,可以在引導(dǎo)到它的GOTO語(yǔ)句之后,也可以在該GOTO語(yǔ)句之前。無(wú)條件轉(zhuǎn)移語(yǔ)句常和其他控制語(yǔ)句結(jié)合起來(lái)使用。2.算術(shù)條件轉(zhuǎn)移語(yǔ)句算術(shù)條件轉(zhuǎn)移語(yǔ)句的普通形式為:IF(e)nl,n2,n3其中,e必須是算術(shù)表達(dá)式,當(dāng)表達(dá)式運(yùn)算結(jié)果e<0時(shí),程序轉(zhuǎn)向標(biāo)號(hào)為n1的語(yǔ)句;當(dāng)e=0時(shí),轉(zhuǎn)向標(biāo)號(hào)為n2的語(yǔ)句;當(dāng)e>0時(shí),轉(zhuǎn)向標(biāo)號(hào)為n3的語(yǔ)句。例如,計(jì)算邊長(zhǎng)為B的正方形中挖去半徑為R的圓后的面積,若B<2R,則給出相關(guān)信息。該問(wèn)題的FORTRAN程序可用別遼條件轉(zhuǎn)移語(yǔ)句編寫(xiě)如下。CComputationofarea.READ*B.RIF(B-2*R)5,15,155WRITE(*,10)10FORMAT('Errormessage:Blessthan2*R‘)GOTO2015AREA=B*B-3.14159*R*RWRITE*AREA20CONTINUEEND本例中,在算術(shù)條件轉(zhuǎn)移語(yǔ)句的第1個(gè)分支后,使用了GOTO語(yǔ)句;倘沒(méi)有此語(yǔ)句,則程序按順序仍會(huì)執(zhí)行標(biāo)號(hào)為15的語(yǔ)句,從而得出不準(zhǔn)確的結(jié)果。3.計(jì)算轉(zhuǎn)移語(yǔ)句計(jì)算轉(zhuǎn)移語(yǔ)句的普通形式為:GOTO(n1,n2,……,nm),e其中,ni(i=1,2,……,m)是被轉(zhuǎn)向的語(yǔ)句標(biāo)號(hào),共m個(gè);e是一個(gè)整型算術(shù)表達(dá)式,其值不得小于1且不得大于m。當(dāng)e的值等于1時(shí),程序轉(zhuǎn)向標(biāo)號(hào)nl的語(yǔ)句,當(dāng)e的值等于2時(shí)轉(zhuǎn)向標(biāo)號(hào)n2的話句,當(dāng)e的值為m時(shí)轉(zhuǎn)向標(biāo)號(hào)為nm的語(yǔ)句。整型算術(shù)表達(dá)式e前的逗號(hào)可以省略。計(jì)算轉(zhuǎn)移語(yǔ)句通常也和GOTO語(yǔ)句結(jié)合起來(lái)使用。例如,有如下一個(gè)程序:READ*,MGOTO(20,30,40,50)M20N=MGOTO6030N=M*2GOTO6040N=M*3GOTO6050N=M*460WRITE*,NEND程序運(yùn)行時(shí),若輸入1,則轉(zhuǎn)向標(biāo)號(hào)為20的語(yǔ)句,x的值為1;若輸入2,則轉(zhuǎn)向標(biāo)號(hào)為30的語(yǔ)句,x的值為4;輸入3,轉(zhuǎn)向標(biāo)號(hào)為40的語(yǔ)句,x的值為9,輸入4,轉(zhuǎn)向標(biāo)號(hào)為50的語(yǔ)句,x的值為16(二)邏輯條件語(yǔ)句1.邏輯IF語(yǔ)句邏輯IF語(yǔ)句用來(lái)實(shí)現(xiàn)挑選結(jié)構(gòu)。它的普通形式為:IF(邏輯表達(dá)式)內(nèi)嵌語(yǔ)句其中內(nèi)嵌語(yǔ)句是單獨(dú)的一個(gè)可執(zhí)行語(yǔ)句。邏輯IF語(yǔ)句執(zhí)行時(shí),首先計(jì)算邏輯表達(dá)式的值,倘若邏輯表達(dá)式的值為"真",則執(zhí)行內(nèi)嵌語(yǔ)句,若內(nèi)嵌語(yǔ)句非轉(zhuǎn)移語(yǔ)句,則執(zhí)行該語(yǔ)句后繼續(xù)按順序往下執(zhí)行,若內(nèi)嵌語(yǔ)句是轉(zhuǎn)移語(yǔ)句,則轉(zhuǎn)向指定的語(yǔ)句;倘若邏輯表達(dá)式的值為"假",則不執(zhí)行內(nèi)嵌語(yǔ)句,而直接執(zhí)行該語(yǔ)句后面的語(yǔ)句。例如,從鍵盤(pán)讀入一個(gè)代表百分制成績(jī)的數(shù)據(jù),倘若數(shù)據(jù)在90-100之間就輸出‘Excellent',在80-89之間輸出‘Good',在60-79之間輸出‘Pass',在60以下則輸出‘Notpass'。其程序可以如下編寫(xiě):READ(*.*)IPOINTIF(IPOINT.GT.100.OR.IPOINT.LT.0)WRITE(*,*)'DATAERROR'IF(IPOINT.GE.90.AND.IPOINT.LE.100)WRITE(*.*)'Excellent'IF(IPOINT.GE.80.AND.IPOINT.LE89)WRITE(*.*'Good'IF(IPOINT.GE.60.AND.IPOINT.LE.79)WRITE(*.*)'Pass'IF(IPOINT.GE.0.AND.IPOINT.LE.59)WRITE(*.*)'NotEND2.塊IF結(jié)構(gòu)的各種形式(1)塊IF和ENDIF形式IF(邏輯表達(dá)式)THEN語(yǔ)句塊ENDIF當(dāng)邏輯表達(dá)式的值為"真"時(shí),執(zhí)行語(yǔ)句塊,否則按順序執(zhí)行ENDIF后的語(yǔ)句。例如,如下程序段:READ*,RN,ANIF(RN.GE.0.0.AND.AN.GT.0.0)THENSTRESS=RN/ANWRITE*RN,AN,STRESSENDIFEND當(dāng)RN大于等于零且AN大于零時(shí),執(zhí)行賦值語(yǔ)句和輸出語(yǔ)句。(2)使用ELSE的形式IF(邏輯表達(dá)式)THEN語(yǔ)句塊1ELSE語(yǔ)句塊2ENDIF當(dāng)邏輯表達(dá)式的值為"真"時(shí),執(zhí)行語(yǔ)句塊1,當(dāng)邏輯表達(dá)式的值為"假"時(shí),執(zhí)行語(yǔ)句塊2。由此可見(jiàn),使用ELSE的形式,可以舉行兩個(gè)分支的挑選。(3)使用ELSEIF的形式IF(邏輯表達(dá)式1)THEN語(yǔ)句塊1ELSEIF(邏輯表達(dá)式2)THEN語(yǔ)句塊2ELSE語(yǔ)句塊3ENDIF這種形式,允許在三個(gè)分支中作出挑選。當(dāng)邏輯表達(dá)式1的值為"真"時(shí),執(zhí)行語(yǔ)句塊1表示的分支;當(dāng)邏輯表達(dá)式1的值為"假"而邏輯表達(dá)式2的值為"真"時(shí),執(zhí)行語(yǔ)句塊2表示的分支;當(dāng)邏輯表達(dá)式1的值和邏輯表達(dá)式2的值均為"假"時(shí),執(zhí)行語(yǔ)句塊3表示的分支。3.塊IF結(jié)構(gòu)的嵌套在一個(gè)塊IF結(jié)構(gòu)的語(yǔ)句塊中,可以殘破地包含另一個(gè)或多個(gè)塊IF結(jié)構(gòu),稱(chēng)為塊IF的嵌套。塊的嵌套可以多層。七、函數(shù)與子程序(過(guò)程)(一)內(nèi)部函數(shù)內(nèi)部函數(shù)是預(yù)先編制的一些常用函數(shù)或算法的過(guò)程,由FORTRAN語(yǔ)言提供,可以,直接調(diào)用。內(nèi)部函數(shù)調(diào)用時(shí)的普通形式是:內(nèi)部函數(shù)名(實(shí)元表)實(shí)元表中元素的數(shù)據(jù)類(lèi)型、個(gè)數(shù)是預(yù)先規(guī)定的。常用內(nèi)部函數(shù)及其功能可查閱FORTRAN教材或用戶(hù)手冊(cè)。(二)語(yǔ)句函數(shù)1.語(yǔ)句函數(shù)的定義定義語(yǔ)句函數(shù)的語(yǔ)句稱(chēng)為語(yǔ)句函數(shù)語(yǔ)句。其普通形式為:函數(shù)名(形參表)=表達(dá)式。其中,函數(shù)名的命名規(guī)矩與普通變量名相同,所以它也可以用類(lèi)型說(shuō)明語(yǔ)句等來(lái)說(shuō)明。形參又稱(chēng)啞元,是一些變量名,普通應(yīng)浮上在表達(dá)式中。語(yǔ)句函數(shù)在程序單位中的位置,應(yīng)在所有可執(zhí)行語(yǔ)句之前。2.語(yǔ)句函數(shù)的調(diào)用調(diào)用語(yǔ)句函數(shù)的結(jié)果是得到一個(gè)函數(shù)值,因此,調(diào)用語(yǔ)句函數(shù)時(shí)代之以實(shí)際變量(又稱(chēng)實(shí)元)。(三)函數(shù)子程序一個(gè)函數(shù)子程序是一個(gè)自立的FORTRAN程序單位。它的第一個(gè)語(yǔ)句必須是FUNCTION語(yǔ)句,最后一個(gè)語(yǔ)句必須是END語(yǔ)句。即函數(shù)子程序的普通結(jié)構(gòu)為:[類(lèi)型說(shuō)明]FUNCTION函數(shù)名(形參表)語(yǔ)句塊[RETURN]END也可以寫(xiě)為:FUNCTION函數(shù)名(形參表)[類(lèi)型說(shuō)明函數(shù)名]語(yǔ)句塊[RETURN]END其中函數(shù)名的命名規(guī)矩與變量相間,而函數(shù)名的類(lèi)型決定了函數(shù)值的類(lèi)型。在函數(shù)子程序中,形參可以是變量名、數(shù)組名、外部過(guò)程名,而形參的命名與類(lèi)型說(shuō)明也與變量相同,形參數(shù)組也必須在函數(shù)子程序中予以定義。函數(shù)子程序的函數(shù)值由函數(shù)名帶回到調(diào)用該函數(shù)子程序的程序,因此,在函數(shù)子程序中必須對(duì)函數(shù)名賦值。在函數(shù)子程序中,函數(shù)名應(yīng)該像普通變量那樣來(lái)使用。在函數(shù)子程序中,所有的名字、語(yǔ)句標(biāo)號(hào)都可以和其他程序單位中的相同而彼此沒(méi)有任何關(guān)系。在函數(shù)子程序中,END語(yǔ)句的功能有兩個(gè):一是表示該程序單位的結(jié)束,二是具有返回語(yǔ)句RETURN的功能。函數(shù)子程序中必須有并且惟獨(dú)一個(gè)END語(yǔ)句,而且只能是子程序的最后一個(gè)語(yǔ)句。當(dāng)在子程序的其他位置須要返回時(shí),可以使用RETURN語(yǔ)句。(四)子程序1.子程序的結(jié)構(gòu)一個(gè)子程序是一個(gè)自立的FORTRAN程序單位。子程序的第一個(gè)語(yǔ)句必須是SUBROUTINE語(yǔ)句,最后一個(gè)語(yǔ)句必須是END語(yǔ)句。即子程序的普通結(jié)構(gòu)為:SUBROUTINE子程序名(形參表)語(yǔ)句塊[RETURN]END子程序名的命名規(guī)矩與普通變量相同。但是子程序中的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論