




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
FORTRAN90程序設(shè)計(jì),計(jì)算機(jī)中心 2006.3,Visual Fortran 90 程序設(shè)計(jì),6.1概述,6.5 子程序的嵌套調(diào)用,6.2 函數(shù)子程序,6.6 模塊,6.3 子例子程序,6.7 遞歸過程,6.4 虛實(shí)結(jié)合,6.8 其他部分,6.9 程序舉例,6.1 概述,主程序的結(jié)構(gòu):,單位定義 說明部分 輸入 計(jì)算或處理 輸出 END,引入子程序的目的:模塊化設(shè)計(jì),所有功能都在主程序單位內(nèi)完成,1、一個(gè)Fortran90程序主程序單元個(gè)數(shù):1個(gè) 2、子程序單元:0-n個(gè) 子程序單元被主程序單元或被其它子程序單元調(diào)用,甚至可以遞歸調(diào)用(調(diào)用本身),源程序的結(jié)構(gòu),最簡單的源程序的結(jié)構(gòu),子程序分類,1、函數(shù)子程序 分為內(nèi)部函數(shù)子程序 外部函數(shù)子程序,2、子例行子程序 分為內(nèi)部子例行子程序 外部子例行子程序,用于完成復(fù)雜的計(jì)算 返回 一個(gè)或多個(gè)值,用于完成復(fù)雜計(jì)算,返回一個(gè)或多個(gè)值,或用于其它數(shù)據(jù)處理,6.2外部函數(shù)子程序,單位定義語句 說明部分 程序體:具體計(jì)算 END語句,外部函數(shù)子程序的結(jié)構(gòu),FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL:X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END,PROGRAM NAIN READ*,A,B D=F(A,B,c) PRINT*,C,D END,兩單位相互獨(dú)立編譯 必須進(jìn)行數(shù)據(jù)的傳遞,END FUNCTION 函數(shù)名,子程序END語句寫法,1、函數(shù)單位的結(jié)束標(biāo)志 2、將控制返回到主調(diào)程序。,子程序END語句功能,函數(shù)單位定義語句的寫法,RECURSIVEFUNCTION 函數(shù)名(虛元表)RESULT(結(jié)果名) 1、函數(shù)子程序的第一行(注釋行除外)。 2、如果函數(shù)是遞歸的,則應(yīng)以RECURSIVE開頭。 3、函數(shù)名為全局名:作用域?yàn)檎麄€(gè)程序,不與已有的全局名同名。 各獨(dú)立程序單位的名字為全局名,4、主調(diào)程序與被調(diào)程序 兩個(gè)單位之間的數(shù)據(jù)傳遞,結(jié)果名:子程序的一個(gè)輸出 一般寫法:函數(shù)名_RESULT,用于保存一個(gè)計(jì)算結(jié)果,稱為函數(shù)值。且結(jié)果名有類型,必須在子程序說明部分說明類型。,虛元表:子程序的所有輸入,及除函數(shù)值之外的其他計(jì)算結(jié)果的輸出。,函數(shù)值返回給調(diào)用式,由實(shí)元傳遞給對(duì)應(yīng)的虛元,虛元數(shù)據(jù)返回給對(duì)應(yīng)的實(shí)元,FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL:X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END,PROGRAM NAIN READ*,A,B D=F(A,B,c) PRINT*,C,D END,主,子,5、虛元的含義:編寫子程序時(shí)沒有具體值(調(diào)用時(shí)或調(diào)用結(jié)束后才獲得數(shù)值),因此只是一個(gè)符號(hào),表示輸入、輸出,名字可隨便用戶取。 6、虛元可以是變量名、數(shù)組名、過程名、指針等。 7、虛元的可選屬性INTENT: INTENT(IN):作為子程序的輸入(不得再改變其值) INTENT(OUT):子程序的輸出(對(duì)應(yīng)的實(shí)元不能是表達(dá)式) INTENT(INOUT):子程序的輸入輸出 例:REAL,INTENT(IN):X,Y,子程序程序體的寫法,分為說明部分和執(zhí)行部分。 1、說明部分應(yīng)對(duì)程序體內(nèi)一切變量、數(shù)組等實(shí)體(包括虛元)作出說明,同時(shí)還要說明函數(shù)結(jié)果變量名,但不可說明函數(shù)名。 2、執(zhí)行部分中必須對(duì)函數(shù)結(jié)果名至少賦值一次。,FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL:X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END,兩單位獨(dú)立編譯,1、調(diào)用式是表達(dá)式, 調(diào)用結(jié)束后調(diào)用式得到函數(shù)值。 2、常見形式: Y=函數(shù)名(實(shí)元表) PRINT*,函數(shù)名(實(shí)元表) IF(函數(shù)名(實(shí)元表) 注意:實(shí)元與虛元一般必須在個(gè)數(shù)、次序、類型上保持一致;但實(shí)元與虛元名字可以不同。,函數(shù)子程序的調(diào)用,例1:編寫子程序求K=M*N,L=M-N,主程序輸入2,3,調(diào)用子程序,計(jì)算2*3及2-3。,Program main Implicit none Integer:M,N,K,L,F Read*,M,N K=F(M,N,L) PRINT*,K,L END,FUNCTION F(M,N,L)RESULT(F_RESULT) IMPLICIT NONE INTEGER:M,N,L,F_RESULT F_RESULT=M*N L=M-N END,注意:虛元名任意,但一般與實(shí)元一致。 檢查調(diào)用原則,程序體編寫規(guī)則。,不能省略說明 兩單位獨(dú)立編譯,PROGRAM MAIN IMPLICIT NONE REAL:X,Y,F,G,GF READ*,X F=X+SIN(30*3.1415926/180) G=GF(X,F) Y=F+G PRINT*,Y END,FUNCTION GF(X,F)RESULT(GF_RESULT) IMPLICIT NONE REAL:X,F,GF_RESULT IF(F0)THEN GF_RESULT=X+1 ELSEIF(F0)THEN GF_RESULT=X-1,ELSE GF_RESULT=0 ENDIF END,G,GF不能同名,練習(xí): 計(jì)算函數(shù)Sinh(x)的值,當(dāng)ex的通項(xiàng)值小于等于1E-6時(shí)停止。計(jì)算公式如下:,!主程序如下: Program main1 Real: MyExp,y,x Write(*,*) Enter x: Read(*,*)x Y=(MyExp(x)-MyExp(-x) /2.0 Write(*,)Y END PROGRAM,!函數(shù)子程序 Function MyExp(x) result (Exp_res) Real:Exp_res,x,s,T integer:N N=1; T=1; S=1 do T=T*X/N IF(ABS(T)=1E-5)EXIT S=S+T;N=N+1 end do Exp_res=S END FUNCTION,兩次調(diào)用,1、計(jì)算實(shí)元值(作為輸出的可預(yù)先無值) 2、虛實(shí)按地址結(jié)合:虛元按順序借用實(shí)元存儲(chǔ)單元 3、運(yùn)行權(quán)至子程序的第一句,直至遇子程序的END語句返回到主調(diào)程序: 運(yùn)行權(quán)返回至調(diào)用點(diǎn) 函數(shù)值返回給調(diào)用表達(dá)式 虛實(shí)脫離結(jié)合,但子程序運(yùn)行時(shí)造成的實(shí)元值的改變將保留。,調(diào)用的執(zhí)行過程,子程序閱讀技巧:畫出虛實(shí)結(jié)合表,INTEGER:X,Y,Z,f Y=f(X,X) PRINT*,Y Z=f(y,x) PRINT*,Z END,FUNCTION f(X,Y)RESULT(f_RESULT) INTEGER:X,Y,f_RESULT,I I=1;X=3*I;Y=2*I f_RESULT=X+Y END,注意:一個(gè)變量只有一個(gè)存儲(chǔ)單元 按順序結(jié)合,不是按名結(jié)合,1、虛元為變量,實(shí)元為同類型的變量,開辟臨時(shí)單元存放常量或表達(dá)式的值 REAL:MN,X,S X=3.0 PRINT*,S(X,MN(X),X END FUNCTION S(A,C)RESULT( S_RESULT ) REAL:A,S,S_RESULT A=A+1;B=A*A S_RESULT=B-C END FUNCTION S FUNCTION MN(X)RESULT(MN_RESULT) MN_RESULT=3.0*X END FUNCTION MN,247.0 4.0,、虛元為變量,實(shí)元為常量、表達(dá)式:,6.3 外部子例行子程序,外部子例行子程序的結(jié)構(gòu),外部子例行子程序:用戶定義,用于完成復(fù)雜計(jì)算任務(wù),返回一個(gè)或多個(gè)值,或用于其它數(shù)據(jù)處理,RecursiveSubroutine 子程序名(虛元表) 說明部分 程序體 End Subroutine 子程序名,與函數(shù)子程序的區(qū)別,1.沒有RESULT關(guān)鍵字。 2、虛元:負(fù)責(zé)子程序的全部輸入和全部輸出 3、無虛元時(shí):SUBROUTINT 子程序名 或 SUBROUTINT 子程序名() 4、函數(shù)子程序的調(diào)用是表達(dá)式中。 而子例子程序必須通過CALL語句來調(diào)用。 CALL 子程序名(實(shí)元表),例子程序求K=M+N,L=M-N 主程序輸入2,3調(diào)用子程序求2+3,2-3的值。,Program main Implicit none Integer:M,N,K,L Read*,M,N CALL S(M,N,K,L) PRINT*,K,L END,Subroutien S(m,n,k,l) Implicit None Integer:m,n,k,l K=m+n L=m-n End,所有的輸入、輸出,1、計(jì)算實(shí)元值(作為輸出的可預(yù)先無值) 2、虛實(shí)按地址結(jié)合:虛元按順序借用實(shí)元存儲(chǔ)單元 3、運(yùn)行至子程序的第一句,直至遇子程序的END語句返回到主調(diào)程序: 運(yùn)行返回至CALL語句的下一個(gè)語句 虛實(shí)脫離結(jié)合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)轉(zhuǎn)授權(quán)管理制度
- 車間降成本管理制度
- 運(yùn)動(dòng)隊(duì)藥品管理制度
- 進(jìn)入樞紐樓管理制度
- 進(jìn)小區(qū)車輛管理制度
- 連鎖小門店管理制度
- 2025至2030年中國戶外型光接收機(jī)行業(yè)投資前景及策略咨詢報(bào)告
- 郵政小浴室管理制度
- 部門內(nèi)請(qǐng)假管理制度
- 配電蓋損壞管理制度
- 工程倫理-工程案例分析
- 2023-2024部編版語文五年級(jí)上冊第二單元統(tǒng)整教學(xué)設(shè)計(jì)
- 2025年4月自考27007應(yīng)用文寫作押題及答案
- 香水廣告案例分析
- The-Art-of-War-孫子兵法-大學(xué)英語-學(xué)生講課實(shí)踐的課件
- 電線電纜產(chǎn)品生產(chǎn)許可證實(shí)施細(xì)則樣本
- 2024年北京中考記敘文閱讀專題02寫 人記事散文(含答案解析)
- 2024年西部機(jī)場集團(tuán)青海機(jī)場有限公司招聘筆試參考題庫含答案解析
- 智慧樹知到《醫(yī)學(xué)統(tǒng)計(jì)學(xué)》章節(jié)測試答案
- 李辛演講-現(xiàn)代人的壓力與管理
- 自評(píng)報(bào)告中如何展示自己在疾病防控和公共衛(wèi)生方面的能力
評(píng)論
0/150
提交評(píng)論