fortran程序設(shè)計.第8章_第1頁
fortran程序設(shè)計.第8章_第2頁
fortran程序設(shè)計.第8章_第3頁
fortran程序設(shè)計.第8章_第4頁
fortran程序設(shè)計.第8章_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

FORTRAN語言

--FORTRAN77結(jié)構(gòu)化程序設(shè)計講師:徐紅波Email:第八章語句函數(shù)

8.1語句函數(shù)的概念

在第三章中介紹了內(nèi)部函數(shù)。FORTRAN把常用運算(如求平方根、絕對值、三角函數(shù)……)編成內(nèi)部子程序,當程序中出現(xiàn)SQRT、ABS、SIN、COS等函數(shù)名時系統(tǒng)自動調(diào)用相應(yīng)的內(nèi)部子程序以完成所需的運算。這對用戶是很方便的。但是,除了需要內(nèi)部函數(shù)以外,還會用到一些其它的運算,特別是在一個程序中多次用到同一個表達式的運算。這時內(nèi)部函數(shù)就無能為力了,用戶必須自己在程序中定義所需的函數(shù)(即用戶自定義函數(shù)),然后象引用內(nèi)部函數(shù)一樣引用這個函數(shù)。

例如求函數(shù)f(x)=x2+x+1在x=1、2、3時的值 F(X)=X*X+X+1.0 PRINT*,F(1.0),F(2.0),F(3.0) END

語句函數(shù)定義語句是非執(zhí)行語句,作用在于定義F(X)和自變量X的函數(shù)關(guān)系。計算F(1.0)時將1.0代替語句函數(shù)定義語句中等號右側(cè)的表達式內(nèi)的參數(shù)X,即求出 F(1.0)=1.0*1.0+1.0+1.0=3.0。 語句函數(shù)必須先定義才能引用。8.2語句函數(shù)的定義8.2.1語句函數(shù)的定義形式 語句函數(shù)的定義形式:

f(x1,x2,…,xn)=e

例如求一元二次方程根的語句函數(shù)定義語句:

ROOT1(A,B,C)=(-B+SQRT(B*B-4.0*A*C)/(2.0*A)

語句函數(shù)定義語句中的虛參只是自變量的符號,用來在形式上表示右邊表達式中自變量的個數(shù)、自變量的類型和在表達式中的作用。它不代表任何值。因此函數(shù)定義語句寫成以下兩種形式作用完全相同。 F(X)=X*X+X+1.0 F(Y)=Y*Y+Y+1.0 在引用函數(shù)時完全一樣。

虛參不代表實在的值,可以與程序中的變量同名。例如:

F(X)=X*X+X+1.0 X=3.0 Y=(X+3.0)/2.0 Z=F(1.0)+F(2.0)+F(3.0) T=F(X)

虛參的類型可以用隱含規(guī)則來說明也可以用類型語句顯示說明。若在同一程序單位中有與虛參同名的變量時,則虛參和該同名變量都具有類型說明語句所說明的類型。 在語句函數(shù)定義語句中e是語句函數(shù)f(x1,x2,…,xn)所代表的算術(shù)、邏輯或字符串表達式。在表達式中除了必須包含有關(guān)虛參外,還可以包含常量、變量、數(shù)組元素、外部和內(nèi)部函數(shù)和已定義過的語句函數(shù)。8.2.2定義語句函數(shù)應(yīng)遵循的規(guī)則 1)當函數(shù)十分簡單,用一條語句足以定義時(允許使用繼續(xù)行)才用語句函數(shù)的形式定義函數(shù)。

2)語句函數(shù)定義語句是非執(zhí)行語句。它應(yīng)該放在所有可執(zhí)行語句之前和所有的說明語句之后。

3)語句函數(shù)只在其所在的程序單位中才有意義。換言之,不能引用其它程序單位所定義的語句函數(shù)。語句函數(shù)也不能作為引用子程序時的實參,也不得在EXTERNAL語句中出現(xiàn)。

4)語句函數(shù)定義語句中的虛參應(yīng)是變量名,不能是常量、表達式或數(shù)組元素。

5)語句函數(shù)定義語句中的表達式可以包含已定義過的語句函數(shù)、外部函數(shù)或內(nèi)部函數(shù)。語句函數(shù)通過表達式得到一個函數(shù)值。函數(shù)名與函數(shù)值之間必須和賦值規(guī)則一致;因此不能把字符型的函數(shù)值賦給非字符型的函數(shù)名,不能把邏輯值賦給一個非邏輯類型的函數(shù)名。例如如下的語句函數(shù)定義語句是正確的:

SUM(A,B,C)=A+B+C AVER(A,B,C)=SUM(A,B,C)/3.0 IR(ID)=MOD(ID,3) LOGICALXOR,X1,X2 XOR(X1,X2)=.NOT.X1.AND.X2.OR.X1.AND.NOT.X2 SS(I,X,Y)=A(I)+X+Y而以下的語句函數(shù)定義語句則是非法的:

BUL(I,J,K)=3*I**J EST(A,A)=SQRT(A*4.0)+A SF(B)=1.5-SF(B) 8.3語句函數(shù)的引用

語句函數(shù)被定義后可以在同一程序單位中引用它。引用的形式和引用內(nèi)部函數(shù)一樣,即用實參代替虛參。實參可以是與虛參類型一致的變量、常量或表達式,實參必須有確定的值。函數(shù)將實參的值賦給虛參,根據(jù)表達式計算出函數(shù)值。

NUMBER(M,N,X)=M*INT(X)+N IN=NUMBER(10,20,3.57)

以下的引用將是錯誤的:

IN=NUMBER(10,20,3)[例8.1]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論