




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、05/06第二學(xué)期第二學(xué)期 第九章第九章 函數(shù)與子程序函數(shù)與子程序FORTRAN90FORTRAN90程序設(shè)計程序設(shè)計課多媒體課件課多媒體課件05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /概述概述l使用使用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)可設(shè)計和編寫一些比較可設(shè)計和編寫一些比較復(fù)雜的程序了。復(fù)雜的程序了。l使用函數(shù)和子程序能編寫結(jié)構(gòu)清晰、層次分明、短小簡潔的使用函數(shù)和子程序能編寫結(jié)構(gòu)清晰、層次分明、短小簡潔的好程序,是編寫高質(zhì)量、高水平、高效率程序的有效手段。好程序,是編寫高質(zhì)量、高水平、高效率程序的有效手段。l通常在設(shè)計和編寫程序時通常在設(shè)計和編寫程序時,
2、,會遇到以下三種情況:會遇到以下三種情況: 同一程序內(nèi)多次出現(xiàn)相同或相似的運算或處理過程。同一程序內(nèi)多次出現(xiàn)相同或相似的運算或處理過程。 不同程序內(nèi)多次出現(xiàn)相同或相似的運算或處理過程。不同程序內(nèi)多次出現(xiàn)相同或相似的運算或處理過程。 程序復(fù)雜。程序復(fù)雜。概述概述情況情況1 1情況情況2 2情況情況3 3說明說明9.1 9.1 概述概述第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況1 19.1 9.1 概述概述 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,程序中不同部位會多次出現(xiàn)相同或程序中不同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼
3、)。相似的運算或處理過程(程序代碼)。 例如:求五邊形例如:求五邊形ABCDEABCDE的面積問題的面積問題, ,如圖如圖9-19-1所示。所示。 已知:五邊形已知:五邊形5 5條邊長為:條邊長為:a a、b b、c c、d d、e e, ,兩條對角線為:兩條對角線為:f f、g g。五邊形面積計算問題變?yōu)?。五邊形面積計算問題變?yōu)? 3個三角形面積計算問題個三角形面積計算問題,3,3個個三角形面積三角形面積area1area1、area2area2、area3area3之和就是五邊形面積之和就是五邊形面積areaarea。 三角形面積三角形面積A A求解公式:三邊長為求解公式:三邊長為x,y,
4、zx,y,z。l一般方法求解一般方法求解( (程序程序) )。l函數(shù)方法求解函數(shù)方法求解( (程序程序) )。 )xp)(yp)(xp(pA2/ )zyx(p A AB BC CD DE Ea ab bc cd de ef fg garea1area1area2area2area3area3圖圖9-1 9-1 五邊形五邊形概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況2 29.1 9.1 概述概述 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,不同程序中不同部位會多次出現(xiàn)相不同程序中不
5、同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼)。同或相似的運算或處理過程(程序代碼)。l問題一問題一:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋住宅小區(qū)住宅小區(qū), ,地價為每平方米地價為每平方米10001000元元, ,求這塊地的總價。求這塊地的總價。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l問題二問題二:某單位有一個呈三棱臺形狀的水箱:某單位有一個呈三棱臺形狀的水箱, ,平均每天消耗平均每天消耗2 2水箱水水箱水, ,水價為每立方米水價為每立方米8 8角錢角錢,
6、 ,計算每天需支付的水費。計算每天需支付的水費。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l用函數(shù)方法求解兩問題用函數(shù)方法求解兩問題( (程序程序) )。概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況3 39.1 9.1 概述概述 對于比較復(fù)雜的問題對于比較復(fù)雜的問題, ,設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法方法。模塊化和
7、結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法, ,使用這些使用這些方法可大大降低問題的復(fù)雜性方法可大大降低問題的復(fù)雜性, ,使復(fù)雜問題的求解變得相對容易。使用使復(fù)雜問題的求解變得相對容易。使用函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、復(fù)雜、高質(zhì)量程序。復(fù)雜、高質(zhì)量程序。例如:輸入一批測試數(shù)據(jù)例如:輸入一批測試數(shù)據(jù)(30(30個個),),對其排序?qū)ζ渑判? ,輸出排序結(jié)果數(shù)據(jù)。輸出排序結(jié)果數(shù)據(jù)。 l一般方法求解一般方法求解( (程序程序) )。l結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解( (分層結(jié)構(gòu)圖
8、分層結(jié)構(gòu)圖、程序程序) )。 對復(fù)雜問題逐層進(jìn)行任務(wù)分解對復(fù)雜問題逐層進(jìn)行任務(wù)分解, ,得到問題分層結(jié)構(gòu)圖得到問題分層結(jié)構(gòu)圖, ,如圖如圖9-29-2所示。所示。根據(jù)分層結(jié)構(gòu)圖根據(jù)分層結(jié)構(gòu)圖, ,采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。最頂層問題用主程序?qū)崿F(xiàn)最頂層問題用主程序?qū)崿F(xiàn), ,其余層子問題用函數(shù)或子程序?qū)崿F(xiàn)其余層子問題用函數(shù)或子程序?qū)崿F(xiàn), ,最后將最后將主程序和若干函數(shù)或子程序組裝成完整的可運行程序。主程序和若干函數(shù)或子程序組裝成完整的可運行程序。 設(shè)計和編寫主程序時設(shè)計和編寫主程序時, ,可假定下一層子問題已經(jīng)通過函數(shù)或子程序可假定
9、下一層子問題已經(jīng)通過函數(shù)或子程序?qū)崿F(xiàn)實現(xiàn), ,暫不考慮暫不考慮其其具體實現(xiàn)內(nèi)容具體實現(xiàn)內(nèi)容, ,假定:假定:“輸入輸入”子問題由子程序子問題由子程序input(A)input(A)實現(xiàn)實現(xiàn), ,功能是從鍵盤輸入數(shù)據(jù)至數(shù)組功能是從鍵盤輸入數(shù)據(jù)至數(shù)組A;“A;“排序排序”子問題由子程子問題由子程序序sort(A)sort(A)實現(xiàn)實現(xiàn), ,功能是對數(shù)組功能是對數(shù)組A A進(jìn)行排序進(jìn)行排序, ,排序結(jié)果在排序結(jié)果在A A中中;“;“輸出輸出”子子問題由子程序問題由子程序output(A)output(A)實現(xiàn)實現(xiàn), ,功能是輸出數(shù)組功能是輸出數(shù)組A A的內(nèi)容。的內(nèi)容。 概述概述情況情況1 1情況情況2
10、 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /說明說明9.1 9.1 概述概述lFORTRAN 90FORTRAN 90子程序子程序,也稱過程也稱過程,劃分為兩類:函數(shù)和子程序劃分為兩類:函數(shù)和子程序。l函數(shù)是指產(chǎn)生一個運算結(jié)果函數(shù)是指產(chǎn)生一個運算結(jié)果且通過且通過操作數(shù)調(diào)用執(zhí)行的子程序操作數(shù)調(diào)用執(zhí)行的子程序。 如上面計算三角形面積的子程序如上面計算三角形面積的子程序areaarea就是一個函數(shù)。就是一個函數(shù)。l子程序是指子程序是指可可產(chǎn)生多個處理結(jié)果且通過產(chǎn)生多個處理結(jié)果且通過CALLCALL語句調(diào)用執(zhí)行的子程序語句調(diào)用
11、執(zhí)行的子程序。 如上面完成輸入操作的子程序如上面完成輸入操作的子程序input(A)input(A)就是一個子程序。就是一個子程序。l每類子程序又劃分為標(biāo)準(zhǔn)子程序和用戶自定義子程序每類子程序又劃分為標(biāo)準(zhǔn)子程序和用戶自定義子程序。l用戶自定義子程序又劃分為內(nèi)部子程序、外部子程序和模塊子程序。用戶自定義子程序又劃分為內(nèi)部子程序、外部子程序和模塊子程序。lFORTRAN 90FORTRAN 90的子程序分類的子程序分類如圖如圖9-39-3所示所示。 概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /
12、情況情況1/1/程序程序1 19.1 9.1 概述概述A AB BC CD DE Ea ab bc cd de ef fg garea1area1area2area2area3area3圖圖9-1 9-1 五邊形五邊形 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,程序中不同部位會多次出現(xiàn)相同或程序中不同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼)。相似的運算或處理過程(程序代碼)。 例如:求五邊形例如:求五邊形ABCDEABCDE的面積問題的面積問題, ,如圖如圖9-19-1所示。所示。 已知:五邊形已知:五邊形5 5條邊長為:條邊長為:a a、b b、c c、d d、e e, ,兩條對
13、角線為:兩條對角線為:f f、g g。五邊形面積計算問題變?yōu)?。五邊形面積計算問題變?yōu)? 3個三角形面積計算問題個三角形面積計算問題,3,3個個三角形面積三角形面積area1area1、area2area2、area3area3之和就是五邊形面積之和就是五邊形面積areaarea。 三角形面積三角形面積A A求解公式:三邊長為求解公式:三邊長為x,y,zx,y,z。l一般方法求解一般方法求解( (程序程序) )。l函數(shù)方法求解函數(shù)方法求解( (程序程序) )。 )xp)(yp)(xp(pA2/ )zyx(p PROGRAM pentagonPROGRAM pentagonREAL a,b,c,d
14、,e,f,gREAL a,b,c,d,e,f,gREAL area1,area2,area3,area,p,qREAL area1,area2,area3,area,p,q! !輸入五邊形輸入五邊形5 5個邊長和兩條對角線個邊長和兩條對角線READ READ * *,a,b,c,d,e,f,g,a,b,c,d,e,f,g! !計算三角形計算三角形ABEABE的面積的面積area1area1p=(a+f+e)/2p=(a+f+e)/2q=pq=p* *(p-a)(p-a)* *(p-f)(p-f)* *(p-e)(p-e)area1=SQRT(q)area1=SQRT(q)! !計算三角形計算三
15、角形BDEBDE的面積的面積area2area2p=(g+d+f)/2p=(g+d+f)/2q=pq=p* *(p-g)(p-g)* *(p-d)(p-d)* *(p-f)(p-f)area2=SQRT(q)area2=SQRT(q)! !計算三角形計算三角形BCDBCD的面積的面積area3area3p=(b+c+g)/2p=(b+c+g)/2q=pq=p* *(p-b)(p-b)* *(p-c)(p-c)* *(p-g)(p-g)area3=SQRT(q)area3=SQRT(q) ! !計算五邊形面積計算五邊形面積areaareaarea=area1+area2+area3area=ar
16、ea1+area2+area3PRINT PRINT * *,五邊形面積五邊形面積:,area:,area END END概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況1/1/程序程序2 29.1 9.1 概述概述A AB BC CD DE Ea ab bc cd de ef fg garea1area1area2area2area3area3圖圖9-1 9-1 五邊形五邊形 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,程序中不同部位會多次出現(xiàn)相同或程序中不同部位會多次出現(xiàn)相同或相似
17、的運算或處理過程(程序代碼)。相似的運算或處理過程(程序代碼)。 例如:求五邊形例如:求五邊形ABCDEABCDE的面積問題的面積問題, ,如圖如圖9-19-1所示。所示。 已知:五邊形已知:五邊形5 5條邊長為:條邊長為:a a、b b、c c、d d、e e, ,兩條對角線為:兩條對角線為:f f、g g。五邊形面積計算問題變?yōu)?。五邊形面積計算問題變?yōu)? 3個三角形面積計算問題個三角形面積計算問題,3,3個個三角形面積三角形面積area1area1、area2area2、area3area3之和就是五邊形面積之和就是五邊形面積areaarea。 三角形面積三角形面積A A求解公式:三邊長為
18、求解公式:三邊長為x,y,zx,y,z。l一般方法求解一般方法求解( (程序程序) )。l函數(shù)方法求解函數(shù)方法求解( (程序程序) )。 )xp)(yp)(xp(pA2/ )zyx(p PROGRAM pentagonPROGRAM pentagonREAL a,b,c,d,e,f,gREAL a,b,c,d,e,f,gREAL areaREAL area! !輸入五邊形輸入五邊形5 5條邊長和兩條對角線條邊長和兩條對角線READ READ * *,a,b,c,d,e,f,g,a,b,c,d,e,f,g! !計算五邊形面積計算五邊形面積areaareaarea=t_area(a,f,e)+t_
19、area(g,d,f)+t_area(b,c,g)area=t_area(a,f,e)+t_area(g,d,f)+t_area(b,c,g)PRINT PRINT * *,五邊形面積為:五邊形面積為:,area,areaCONTAINSCONTAINS! !定義計算任意三角形面積函數(shù)定義計算任意三角形面積函數(shù)t-areat-areaFUNCTION t_area(a,b,c)FUNCTION t_area(a,b,c) REAL t_area,a,b,c,p,q REAL t_area,a,b,c,p,q p=(a+b+c)/2 p=(a+b+c)/2 q=p q=p* *(p-a)(p-a
20、)* *(p-b)(p-b)* *(p-c)(p-c) t_area=SQRT(q) t_area=SQRT(q)END FUNCTION t_areaEND FUNCTION t_areaENDEND計算任意三角形計算任意三角形概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況2/2/程序程序1 19.1 9.1 概述概述 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,不同程序中不同部位會多次出現(xiàn)相不同程序中不同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼)。同或相似的運算或處理過
21、程(程序代碼)。l問題一問題一:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋住宅小區(qū)住宅小區(qū), ,地價為每平方米地價為每平方米10001000元元, ,求這塊地的總價。求這塊地的總價。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l問題二問題二:某單位有一個呈三棱臺形狀的水箱:某單位有一個呈三棱臺形狀的水箱, ,平均每天消耗平均每天消耗2 2水箱水水箱水, ,水價為每立方米水價為每立方米8 8角錢角錢, ,計算每天需支付的水費。計算每天需支付的水費。 求解問題的核心是計算三角形面
22、積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l用函數(shù)方法求解兩問題用函數(shù)方法求解兩問題( (程序程序) )。PROGRAM total_pricesPROGRAM total_pricesREAL a,b,c,area,p,q,t_pricesREAL a,b,c,area,p,q,t_prices! !輸入三角形邊長輸入三角形邊長a,b,ca,b,cREAD READ * *,a,b,c,a,b,c! !計算三角形面積計算三角形面積areaareap=(a+b+c)/2p=(a+b+c)/2q=pq=p* *(p-a)(p-a)* *(p-b)(p-
23、b)* *(p-c)(p-c)area=SQRT(q)area=SQRT(q)! !計算總價計算總價t_pricest_pricest_prices=areat_prices=area* *10001000PRINT PRINT * *,地塊總價為:地塊總價為:,t_prices,t_pricesENDEND 概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況2/2/程序程序2 29.1 9.1 概述概述 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,不同程序中不同部位會多次出現(xiàn)相不同程序
24、中不同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼)。同或相似的運算或處理過程(程序代碼)。l問題一問題一:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋住宅小區(qū)住宅小區(qū), ,地價為每平方米地價為每平方米10001000元元, ,求這塊地的總價。求這塊地的總價。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l問題二問題二:某單位有一個呈三棱臺形狀的水箱:某單位有一個呈三棱臺形狀的水箱, ,平均每天消耗平均每天消耗2 2水箱水水箱水, ,水價為每立方米水價為每立方米8 8角錢角
25、錢, ,計算每天需支付的水費。計算每天需支付的水費。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l用函數(shù)方法求解兩問題用函數(shù)方法求解兩問題( (程序程序) )。PROGRAM water_pricesPROGRAM water_pricesREAL a,b,c,h,area,cubage,p,q,w_pricesREAL a,b,c,h,area,cubage,p,q,w_prices! !輸入三棱臺底面三角形邊長輸入三棱臺底面三角形邊長a,b,ca,b,c和三棱臺高和三棱臺高h(yuǎn) hREAD READ * *,a,b,c,
26、h,a,b,c,h! !計算三角形面積計算三角形面積areaareap=(a+b+c)/2p=(a+b+c)/2q=pq=p* *(p-a)(p-a)* *(p-b)(p-b)* *(p-c)(p-c)area=SQRT(q)area=SQRT(q)! !計算三棱臺容積計算三棱臺容積cubagecubagecubage=areacubage=area* *h h! !計算水價計算水價w_pricesw_pricesPRINT PRINT * *,每天需支付水價為:每天需支付水價為:,t_prices,t_pricesENDEND概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第
27、九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期概述概述情況情況1 1情況情況2 2情況情況3 3說明說明9.1 9.1 概述概述/ /情況情況2/2/程序程序3 39.1 9.1 概述概述 在設(shè)計和編寫程序時在設(shè)計和編寫程序時, ,不同程序中不同部位會多次出現(xiàn)相不同程序中不同部位會多次出現(xiàn)相同或相似的運算或處理過程(程序代碼)。同或相似的運算或處理過程(程序代碼)。l問題一問題一:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋:某房地產(chǎn)公司買下一塊呈三角形形狀的地盤準(zhǔn)備蓋住宅小區(qū)住宅小區(qū), ,地價為每平方米地價為每平方米10001000元元, ,求這塊地的總價。求這塊地的總價。 求解問
28、題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l問題二問題二:某單位有一個呈三棱臺形狀的水箱:某單位有一個呈三棱臺形狀的水箱, ,平均每天消耗平均每天消耗2 2水箱水水箱水, ,水價為每立方米水價為每立方米8 8角錢角錢, ,計算每天需支付的水費。計算每天需支付的水費。 求解問題的核心是計算三角形面積。用一般方法求解求解問題的核心是計算三角形面積。用一般方法求解( (程序程序) )。l用函數(shù)方法求解兩問題用函數(shù)方法求解兩問題( (程序程序) )。! !使用函數(shù)求解問題一程序,使用函數(shù)求解問題一程序,areaarea為外部函數(shù)為外部函
29、數(shù)PROGRAM total_pricesPROGRAM total_pricesEXTERNAL area EXTERNAL area ! !聲明聲明areaarea為外部函數(shù)為外部函數(shù)REAL a,b,c,t_pricesREAL a,b,c,t_pricesREAD READ * *,a,b,c ,a,b,c ! !輸入三角形邊長輸入三角形邊長a,b,ca,b,ct_prices=area(a,b,c)t_prices=area(a,b,c)* *1000 1000 ! !計算總價計算總價t_pricest_pricesPRINT PRINT * *,地塊總價為:地塊總價為:,t_pri
30、ces,t_pricesENDEND! !使用函數(shù)求解問題二程序,使用函數(shù)求解問題二程序,areaarea為外部函數(shù)為外部函數(shù)PROGRAM water_pricesPROGRAM water_pricesEXTERNAL area EXTERNAL area ! !聲明聲明areaarea為外部函數(shù)為外部函數(shù)REAL a,b,c,h,cubage,w_pricesREAL a,b,c,h,cubage,w_pricesREAD READ * *,a,b,c,h ,a,b,c,h ! !輸入棱臺底面三角形邊長輸入棱臺底面三角形邊長a,b,ca,b,c和臺高和臺高h(yuǎn) hcubage=area(a
31、,b,c)cubage=area(a,b,c)* *h h ! !計算三棱臺容積計算三棱臺容積cubagecubagew_prices=cubagew_prices=cubage* *0.80.8* *2 2 ! !計算水價計算水價w_pricesw_pricesPRINT PRINT * *,每天需支付水價為:每天需支付水價為:,w_prices ,w_prices ENDEND! !定義外部函數(shù)定義外部函數(shù)areaareaFUNCTION area(x,y,z)FUNCTION area(x,y,z) REAL area,x,y,z,p,q REAL area,x,y,z,p,q ! !計
32、算三角形面積計算三角形面積areaarea p=(x+y+z)/2 p=(x+y+z)/2 q=p q=p* *(p-x)(p-x)* *(p-y)(p-y)* *(p-z)(p-z) area=SQRT(q) area=SQRT(q)END FUNCTION areaEND FUNCTION area 第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況3/3/程序程序1 19.1 9.1 概述概述 對于比較復(fù)雜的問題對于比較復(fù)雜的問題, ,設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計方法。模塊化和結(jié)構(gòu)化程序設(shè)計方
33、法是常用的程序設(shè)計方法方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法, ,使用這些使用這些方法可大大降低問題的復(fù)雜性方法可大大降低問題的復(fù)雜性, ,使復(fù)雜問題的求解變得相對容易。使用使復(fù)雜問題的求解變得相對容易。使用函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、復(fù)雜、高質(zhì)量程序。復(fù)雜、高質(zhì)量程序。例如:輸入一批測試數(shù)據(jù)例如:輸入一批測試數(shù)據(jù)(30(30個個),),對其排序?qū)ζ渑判? ,輸出排序結(jié)果數(shù)據(jù)。輸出排序結(jié)果數(shù)據(jù)。 l一般方法求解一般方法求解( (程序程序) )。l結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解結(jié)構(gòu)化程序設(shè)
34、計方法及函數(shù)方法求解( (分層結(jié)構(gòu)圖分層結(jié)構(gòu)圖、程序程序) )。 對復(fù)雜問題逐層進(jìn)行任務(wù)分解對復(fù)雜問題逐層進(jìn)行任務(wù)分解, ,得到問題分層結(jié)構(gòu)圖得到問題分層結(jié)構(gòu)圖, ,如圖如圖9-29-2所示。所示。根據(jù)分層結(jié)構(gòu)圖根據(jù)分層結(jié)構(gòu)圖, ,采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。最頂層問題用主程序?qū)崿F(xiàn)最頂層問題用主程序?qū)崿F(xiàn), ,其余層子問題用函數(shù)或子程序?qū)崿F(xiàn)其余層子問題用函數(shù)或子程序?qū)崿F(xiàn), ,最后將最后將主程序和若干函數(shù)或子程序組裝成完整的可運行程序。主程序和若干函數(shù)或子程序組裝成完整的可運行程序。 設(shè)計和編寫主程序時設(shè)計和編寫主程序時, ,可假定下
35、一層子問題已經(jīng)通過函數(shù)或子程序可假定下一層子問題已經(jīng)通過函數(shù)或子程序?qū)崿F(xiàn)實現(xiàn), ,暫不考慮暫不考慮其其具體實現(xiàn)內(nèi)容具體實現(xiàn)內(nèi)容, ,假定:假定:“輸入輸入”子問題由子程序子問題由子程序input(A)input(A)實現(xiàn)實現(xiàn), ,功能是從鍵盤輸入數(shù)據(jù)至數(shù)組功能是從鍵盤輸入數(shù)據(jù)至數(shù)組A;“A;“排序排序”子問題由子程子問題由子程序序sort(A)sort(A)實現(xiàn)實現(xiàn), ,功能是對數(shù)組功能是對數(shù)組A A進(jìn)行排序進(jìn)行排序, ,排序結(jié)果在排序結(jié)果在A A中中;“;“輸出輸出”子子問題由子程序問題由子程序output(A)output(A)實現(xiàn)實現(xiàn), ,功能是輸出數(shù)組功能是輸出數(shù)組A A的內(nèi)容。的內(nèi)容
36、。 PROGRAM sortPROGRAM sort PARAMETER PARAMETER(N=30N=30) REAL dat(N)REAL dat(N) DO I=1,N DO I=1,N ! !輸入輸入N N個數(shù)據(jù)個數(shù)據(jù) READ READ * *,dat(I),dat(I) END END DO I=1,N-1 DO I=1,N-1 ! !對對N N個原始數(shù)據(jù)進(jìn)行排序個原始數(shù)據(jù)進(jìn)行排序 DO J=I+1,NDO J=I+1,N IF (dat(J)dat(I) THEN IF (dat(J)dat(I) THEN t=dat(J);dat(J)=dat(I);dat(I)=t t=d
37、at(J);dat(J)=dat(I);dat(I)=t ENDIF ENDIF ENDDO ENDDO ENDDO ENDDO DO I=1,N DO I=1,N ! !輸出排序后的輸出排序后的N N個數(shù)據(jù)個數(shù)據(jù) PRINT PRINT * *,dat(I),dat(I) END END END END ENDEND概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.1 9.1 概述概述/ /情況情況3/3/結(jié)構(gòu)圖結(jié)構(gòu)圖9.1 9.1 概述概述 對于比較復(fù)雜的問題對于比較復(fù)雜的問題, ,設(shè)計和編寫程序需要采用科學(xué)的程序
38、設(shè)計設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法, ,使用這些使用這些方法可大大降低問題的復(fù)雜性方法可大大降低問題的復(fù)雜性, ,使復(fù)雜問題的求解變得相對容易。使用使復(fù)雜問題的求解變得相對容易。使用函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、復(fù)雜、高質(zhì)量程序。復(fù)雜、高質(zhì)量程序。例如:輸入一批測試數(shù)據(jù)例如:輸入一批測試數(shù)據(jù)(30(30個個),),對其排序?qū)ζ渑判? ,輸出排序結(jié)果數(shù)據(jù)。輸出排序結(jié)果數(shù)據(jù)。 l一般方法求解一般方法求
39、解( (程序程序) )。l結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解( (分層結(jié)構(gòu)圖分層結(jié)構(gòu)圖、程序程序) )。 對復(fù)雜問題逐層進(jìn)行任務(wù)分解對復(fù)雜問題逐層進(jìn)行任務(wù)分解, ,得到問題分層結(jié)構(gòu)圖得到問題分層結(jié)構(gòu)圖, ,如圖如圖9-29-2所示。所示。根據(jù)分層結(jié)構(gòu)圖根據(jù)分層結(jié)構(gòu)圖, ,采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。最頂層問題用主程序?qū)崿F(xiàn)最頂層問題用主程序?qū)崿F(xiàn), ,其余層子問題用函數(shù)或子程序?qū)崿F(xiàn)其余層子問題用函數(shù)或子程序?qū)崿F(xiàn), ,最后將最后將主程序和若干函數(shù)或子程序組裝成完整的可運行程序。主程序和若干函數(shù)或子程序組裝成
40、完整的可運行程序。 設(shè)計和編寫主程序時設(shè)計和編寫主程序時, ,可假定下一層子問題已經(jīng)通過函數(shù)或子程序可假定下一層子問題已經(jīng)通過函數(shù)或子程序?qū)崿F(xiàn)實現(xiàn), ,暫不考慮暫不考慮其其具體實現(xiàn)內(nèi)容具體實現(xiàn)內(nèi)容, ,假定:假定:“輸入輸入”子問題由子程序子問題由子程序input(A)input(A)實現(xiàn)實現(xiàn), ,功能是從鍵盤輸入數(shù)據(jù)至數(shù)組功能是從鍵盤輸入數(shù)據(jù)至數(shù)組A;“A;“排序排序”子問題由子程子問題由子程序序sort(A)sort(A)實現(xiàn)實現(xiàn), ,功能是對數(shù)組功能是對數(shù)組A A進(jìn)行排序進(jìn)行排序, ,排序結(jié)果在排序結(jié)果在A A中中;“;“輸出輸出”子子問題由子程序問題由子程序output(A)outpu
41、t(A)實現(xiàn)實現(xiàn), ,功能是輸出數(shù)組功能是輸出數(shù)組A A的內(nèi)容。的內(nèi)容。 問題:將測試數(shù)據(jù)排序并輸出問題:將測試數(shù)據(jù)排序并輸出子問題:排序子問題:排序子問題:輸入子問題:輸入子問題:輸出子問題:輸出自自頂頂向向下下自自底底向向上上圖圖9-2 9-2 任務(wù)分解及分層結(jié)構(gòu)圖任務(wù)分解及分層結(jié)構(gòu)圖概述概述情況情況1 1情況情況2 2情況情況3 3說明說明第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期第九章第九章 函數(shù)與子程序函數(shù)與子程序概述概述情況情況1 1情況情況2 2情況情況3 3說明說明9.1 9.1 概述概述/ /情況情況3/3/程序程序2 29.1 9.1 概述概述 對于比
42、較復(fù)雜的問題對于比較復(fù)雜的問題, ,設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計設(shè)計和編寫程序需要采用科學(xué)的程序設(shè)計方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法方法。模塊化和結(jié)構(gòu)化程序設(shè)計方法是常用的程序設(shè)計方法, ,使用這些使用這些方法可大大降低問題的復(fù)雜性方法可大大降低問題的復(fù)雜性, ,使復(fù)雜問題的求解變得相對容易。使用使復(fù)雜問題的求解變得相對容易。使用函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、函數(shù)和子程序可使用模塊化和結(jié)構(gòu)化程序設(shè)計方法設(shè)計和編寫大型、復(fù)雜、高質(zhì)量程序。復(fù)雜、高質(zhì)量程序。例如:輸入一批測試數(shù)據(jù)例如:輸入一批測試數(shù)據(jù)(30(30個個),),對其排序?qū)ζ渑判?/p>
43、, ,輸出排序結(jié)果數(shù)據(jù)。輸出排序結(jié)果數(shù)據(jù)。 l一般方法求解一般方法求解( (程序程序) )。l結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解結(jié)構(gòu)化程序設(shè)計方法及函數(shù)方法求解( (分層結(jié)構(gòu)圖分層結(jié)構(gòu)圖、程序程序) )。 對復(fù)雜問題逐層進(jìn)行任務(wù)分解對復(fù)雜問題逐層進(jìn)行任務(wù)分解, ,得到問題分層結(jié)構(gòu)圖得到問題分層結(jié)構(gòu)圖, ,如圖如圖9-29-2所示。所示。根據(jù)分層結(jié)構(gòu)圖根據(jù)分層結(jié)構(gòu)圖, ,采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。采用自頂向下或自底向上方法逐層設(shè)計和編寫程序。最頂層問題用主程序?qū)崿F(xiàn)最頂層問題用主程序?qū)崿F(xiàn), ,其余層子問題用函數(shù)或子程序?qū)崿F(xiàn)其余層子問題用函數(shù)或子程序?qū)崿F(xiàn), ,最后將最后將主程序和若
44、干函數(shù)或子程序組裝成完整的可運行程序。主程序和若干函數(shù)或子程序組裝成完整的可運行程序。 設(shè)計和編寫主程序時設(shè)計和編寫主程序時, ,可假定下一層子問題已經(jīng)通過函數(shù)或子程序可假定下一層子問題已經(jīng)通過函數(shù)或子程序?qū)崿F(xiàn)實現(xiàn), ,暫不考慮暫不考慮其其具體實現(xiàn)內(nèi)容具體實現(xiàn)內(nèi)容, ,假定:假定:“輸入輸入”子問題由子程序子問題由子程序input(A)input(A)實現(xiàn)實現(xiàn), ,功能是從鍵盤輸入數(shù)據(jù)至數(shù)組功能是從鍵盤輸入數(shù)據(jù)至數(shù)組A;“A;“排序排序”子問題由子程子問題由子程序序sort(A)sort(A)實現(xiàn)實現(xiàn), ,功能是對數(shù)組功能是對數(shù)組A A進(jìn)行排序進(jìn)行排序, ,排序結(jié)果在排序結(jié)果在A A中中;“;
45、“輸出輸出”子子問題由子程序問題由子程序output(A)output(A)實現(xiàn)實現(xiàn), ,功能是輸出數(shù)組功能是輸出數(shù)組A A的內(nèi)容。的內(nèi)容。 ! !主程序主程序PROGRAM mainPROGRAM main PARAMETER PARAMETER(N=30N=30) REAL dat(N)REAL dat(N) CALL input(dat) ! CALL input(dat) !輸入輸入N N個數(shù)據(jù)個數(shù)據(jù) CALL sort(dat) ! CALL sort(dat) !對對N N個原始數(shù)據(jù)進(jìn)行排序個原始數(shù)據(jù)進(jìn)行排序 CALL output(dat) ! CALL output(dat)
46、!輸出排序后的輸出排序后的N N個數(shù)據(jù)個數(shù)據(jù)CONTAINSCONTAINSENDEND! !輸入子程序輸入子程序SUBROUTINE input(A)SUBROUTINE input(A) REAL A(N) REAL A(N) DO I=1,N DO I=1,N READ READ * *,A(I),A(I) ENDDO ENDDOEND SUBROUTINE inputEND SUBROUTINE input! !排序子程序排序子程序SUBROUTINE sort(A)SUBROUTINE sort(A) REAL A(N),t REAL A(N),t DO I=1,N-1 DO I=1
47、,N-1 DO J=I+1,N DO J=I+1,N IF (A(J)A(I) THEN IF (A(J)A(I) THEN t=A(J);A(J)=A(I);A(I)=t t=A(J);A(J)=A(I);A(I)=t ENDIF ENDIF ENDDO ENDDO ENDDO ENDDOEND SUBROUTINE sortEND SUBROUTINE sort ! !輸出子程序輸出子程序SUBROUTINE output(A)SUBROUTINE output(A) REAL A(N) REAL A(N) DO I=1,N DO I=1,N PRINT PRINT * *,A(I),A(
48、I) ENDDO ENDDOEND SUBROUTINE outputEND SUBROUTINE output05/06第二學(xué)期第二學(xué)期概述概述情況情況1 1情況情況2 2情況情況3 3說明說明9.1 9.1 概述概述/ /說明說明/ /分類圖示分類圖示9.1 9.1 概述概述lFORTRAN 90FORTRAN 90子程序子程序,也稱過程也稱過程,劃分為兩類:函數(shù)和子程序劃分為兩類:函數(shù)和子程序。l函數(shù)是指產(chǎn)生一個運算結(jié)果函數(shù)是指產(chǎn)生一個運算結(jié)果且通過且通過操作數(shù)調(diào)用執(zhí)行的子程序操作數(shù)調(diào)用執(zhí)行的子程序。 如上面計算三角形面積的子程序如上面計算三角形面積的子程序areaarea就是一個函數(shù)。
49、就是一個函數(shù)。l子程序是指子程序是指可可產(chǎn)生多個處理結(jié)果且通過產(chǎn)生多個處理結(jié)果且通過CALLCALL語句調(diào)用執(zhí)行的子程序語句調(diào)用執(zhí)行的子程序。 如上面完成輸入操作的子程序如上面完成輸入操作的子程序input(A)input(A)就是一個子程序。就是一個子程序。l每類子程序又劃分為標(biāo)準(zhǔn)子程序和用戶自定義子程序每類子程序又劃分為標(biāo)準(zhǔn)子程序和用戶自定義子程序。l用戶自定義子程序又劃分為內(nèi)部子程序、外部子程序和模塊子程序。用戶自定義子程序又劃分為內(nèi)部子程序、外部子程序和模塊子程序。lFORTRAN 90FORTRAN 90的子程序分類的子程序分類如圖如圖9-39-3所示所示。 FORTRAN 90 F
50、ORTRAN 90 子程序子程序子程序子程序標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序用戶自定義子程序用戶自定義子程序內(nèi)部子程序內(nèi)部子程序外部子程序外部子程序模塊子程序模塊子程序函數(shù)函數(shù)標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)用戶自定義函數(shù)用戶自定義函數(shù)內(nèi)部函數(shù)內(nèi)部函數(shù)外部函數(shù)外部函數(shù)模塊函數(shù)模塊函數(shù)語句函數(shù)語句函數(shù)標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序內(nèi)部子程序內(nèi)部子程序外部子程序外部子程序模塊子程序模塊子程序標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序內(nèi)部子程序內(nèi)部子程序外部子程序外部子程序模塊子程序模塊子程序圖圖9-3 FORTRAN 909-3 FORTRAN 90子程序分類子程序分類第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.2 9.2 標(biāo)準(zhǔn)子程
51、序標(biāo)準(zhǔn)子程序/ /概述概述l標(biāo)準(zhǔn)子程序用于求解是現(xiàn)實生活中比較常見的問題。標(biāo)準(zhǔn)子程序用于求解是現(xiàn)實生活中比較常見的問題。 如:求絕對值、三角函數(shù)值、指數(shù)值、獲取當(dāng)前系如:求絕對值、三角函數(shù)值、指數(shù)值、獲取當(dāng)前系統(tǒng)日期、獲取隨機數(shù)等。統(tǒng)日期、獲取隨機數(shù)等。l標(biāo)準(zhǔn)子程序的使用為程序設(shè)計帶來了極大的方便標(biāo)準(zhǔn)子程序的使用為程序設(shè)計帶來了極大的方便, ,讀者應(yīng)更多地了解、熟悉和掌握標(biāo)準(zhǔn)子程序的使用。讀者應(yīng)更多地了解、熟悉和掌握標(biāo)準(zhǔn)子程序的使用。l為了提高子程序的執(zhí)行效率為了提高子程序的執(zhí)行效率, ,子程序一般用執(zhí)行效子程序一般用執(zhí)行效率比較高的匯編語言編寫率比較高的匯編語言編寫, ,并匯編成機器語言目標(biāo)
52、并匯編成機器語言目標(biāo)代碼代碼, ,它們被集中保存在一個子程序庫中它們被集中保存在一個子程序庫中, ,供用戶直供用戶直接使用。接使用。 概述概述標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)注意事項注意事項1 1標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序注意事項注意事項2 29.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序/ /標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù) 標(biāo)準(zhǔn)函數(shù)有時稱系統(tǒng)函數(shù)、內(nèi)部函數(shù)標(biāo)準(zhǔn)函數(shù)有時稱系統(tǒng)函數(shù)、內(nèi)部函數(shù),FORTRAN ,FORTRAN 9090的編譯系統(tǒng)提供的編譯系統(tǒng)提供130130多個標(biāo)準(zhǔn)函數(shù)。有以下幾大多個標(biāo)準(zhǔn)函數(shù)。有以下幾大類:類: l三角函數(shù)計
53、算三角函數(shù)計算l數(shù)值計算數(shù)值計算l數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換l數(shù)據(jù)類型查詢數(shù)據(jù)類型查詢l隨機數(shù)生成隨機數(shù)生成l日期時間處理日期時間處理l字符串處理字符串處理l地址計算地址計算l位運算位運算9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)函數(shù)可作為表達(dá)式中操作數(shù)標(biāo)準(zhǔn)函數(shù)可作為表達(dá)式中操作數(shù)進(jìn)行調(diào)用進(jìn)行調(diào)用, ,并參與表達(dá)式運算。調(diào)并參與表達(dá)式運算。調(diào)用標(biāo)準(zhǔn)函數(shù)時用標(biāo)準(zhǔn)函數(shù)時, ,只需寫出函數(shù)名只需寫出函數(shù)名, ,后面括號中給出符合要求的所要后面括號中給出符合要求的所要計算的變元值。例如:計算的變元值。例如:已知已知:x=3.0,y=4.0,:x=3.0,y=4.0,計算表達(dá)式計算表達(dá)式2.52.5* *S
54、QRT(xSQRT(x* *x+yx+y* *y)+ABS(-8.5y)+ABS(-8.5* *3),3),結(jié)果為結(jié)果為38.038.0。 概述概述標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)注意事項注意事項1 1標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序注意事項注意事項2 2第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序/ /注意事項注意事項1 1使用標(biāo)準(zhǔn)函數(shù)需要注意以下幾點:使用標(biāo)準(zhǔn)函數(shù)需要注意以下幾點: l標(biāo)準(zhǔn)函數(shù)對變元的個數(shù)和類型有明確的規(guī)定和要求。標(biāo)準(zhǔn)函數(shù)對變元的個數(shù)和類型有明確的規(guī)定和要求。要求有一個變元要求有一個變元, ,如函數(shù)如函數(shù)SIN(x),SIN(x),要求兩個變元要
55、求兩個變元, ,如函如函數(shù)數(shù) M O D ( m , n ) ,M O D ( m , n ) , 要 求 多 個 變 元要 求 多 個 變 元 , , 如 函 數(shù)如 函 數(shù)MAX(x1,x2,xn)MAX(x1,x2,xn)。要求變元類型為整型。要求變元類型為整型, ,如函數(shù)如函數(shù)MOD(m,n),MOD(m,n),要求變元類型為實型要求變元類型為實型, ,如如SIND(x),SIND(x),要求變要求變元類型為整型、實型、雙精度、復(fù)型等多種類型元類型為整型、實型、雙精度、復(fù)型等多種類型, ,如如ABS(x)ABS(x)。l標(biāo)準(zhǔn)函數(shù)的函數(shù)值只有一個標(biāo)準(zhǔn)函數(shù)的函數(shù)值只有一個, ,且有明確的類型
56、規(guī)定。且有明確的類型規(guī)定。l對于對于“弧度弧度”和和“角度角度”單位單位, ,使用不同的三角函數(shù)。使用不同的三角函數(shù)。l函數(shù)變元必須寫在函數(shù)名后括號內(nèi)函數(shù)變元必須寫在函數(shù)名后括號內(nèi), ,變元可是常數(shù)、變元可是常數(shù)、變量或表達(dá)式變量或表達(dá)式, ,少數(shù)標(biāo)準(zhǔn)函數(shù)變元要求變量少數(shù)標(biāo)準(zhǔn)函數(shù)變元要求變量, ,如如LOC(v)LOC(v)9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序概述概述標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)注意事項注意事項1 1標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序注意事項注意事項2 2第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序/ /標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序 標(biāo)準(zhǔn)子程序也稱系統(tǒng)子程
57、序標(biāo)準(zhǔn)子程序也稱系統(tǒng)子程序,FORTRAN 90,FORTRAN 90的編譯的編譯系統(tǒng)提供系統(tǒng)提供2020多個標(biāo)準(zhǔn)子程序。多個標(biāo)準(zhǔn)子程序。 有以下幾大類:有以下幾大類: l程序控制程序控制(EXIT(EXIT、SLEEPQQ)SLEEPQQ)l文件管理文件管理(PACKTIMEQQ(PACKTIMEQQ、UNPACKTIMEQQ)UNPACKTIMEQQ)l隨機數(shù)生成隨機數(shù)生成(RANDOM(RANDOM、RANDOM_NUMBER)RANDOM_NUMBER)l日期處理日期處理(DATE(DATE、GETDATGETDAT、TIMETIME、GETTIM)GETTIM)l數(shù)組處理數(shù)組處理(S
58、UM(SUM、SORTQQSORTQQ、COUNTCOUNT、SIZE)SIZE)9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序可作為語句進(jìn)行調(diào)用執(zhí)行標(biāo)準(zhǔn)子程序可作為語句進(jìn)行調(diào)用執(zhí)行, ,不通過子程序名返不通過子程序名返回結(jié)果回結(jié)果, ,只通過變元向外界返回結(jié)果。調(diào)用標(biāo)準(zhǔn)子程序時只通過變元向外界返回結(jié)果。調(diào)用標(biāo)準(zhǔn)子程序時, ,需通過關(guān)鍵子需通過關(guān)鍵子CALLCALL完成完成, ,其后給出被調(diào)用標(biāo)準(zhǔn)子程序名其后給出被調(diào)用標(biāo)準(zhǔn)子程序名, ,并并在后面的括號中給出符合要求的變元值在后面的括號中給出符合要求的變元值( (一般為變量、數(shù)一般為變量、數(shù)組、結(jié)構(gòu)體組、結(jié)構(gòu)體, ,也可為常數(shù)或表達(dá)式也可為常數(shù)
59、或表達(dá)式) )。例如:。例如:CALL GETDAT( year,month,day),CALL GETDAT( year,month,day),獲取當(dāng)前系統(tǒng)日期獲取當(dāng)前系統(tǒng)日期, ,年、年、月和日數(shù)據(jù)月和日數(shù)據(jù), ,通過變元通過變元yearyear、monthmonth和和dayday返回。返回。 概述概述標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù)注意事項注意事項1 1標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序注意事項注意事項2 2第九章第九章 函數(shù)與子程序函數(shù)與子程序05/06第二學(xué)期第二學(xué)期9.2 9.2 標(biāo)準(zhǔn)子程序標(biāo)準(zhǔn)子程序/ /注意事項注意事項2 2 使用標(biāo)準(zhǔn)子程序要注意以下幾點:使用標(biāo)準(zhǔn)子程序要注意以下幾點:l標(biāo)準(zhǔn)子程序?qū)ψ冊?/p>
60、個數(shù)和類型有明確的規(guī)定和要求。標(biāo)準(zhǔn)子程序?qū)ψ冊膫€數(shù)和類型有明確的規(guī)定和要求。可有一個變元、二個、多個變元可有一個變元、二個、多個變元, ,也可以沒有變元。也可以沒有變元。變元類型可以是整型、實型、復(fù)型、字符型、邏輯型、變元類型可以是整型、實型、復(fù)型、字符型、邏輯型、數(shù)組、派生類型、指針等任意類型。數(shù)組、派生類型、指針等任意類型。l標(biāo)準(zhǔn)子程序可以產(chǎn)生多個結(jié)果數(shù)據(jù)標(biāo)準(zhǔn)子程序可以產(chǎn)生多個結(jié)果數(shù)據(jù), ,通過變元返回調(diào)通過變元返回調(diào)用程序用程序, ,也可不產(chǎn)生返回數(shù)據(jù)也可不產(chǎn)生返回數(shù)據(jù), ,而是產(chǎn)生某種操作而是產(chǎn)生某種操作, ,如如輸出一批數(shù)據(jù)。輸出一批數(shù)據(jù)。l如果標(biāo)準(zhǔn)子程序調(diào)用時沒有變元如果標(biāo)準(zhǔn)子程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 急診科護(hù)理查房中毒處理指南
- 天藝教育期末匯報
- 寵物美容培訓(xùn)
- 互動活動運營合同
- 工程設(shè)備管理與勞務(wù)合同
- 大學(xué)物理學(xué) 第一卷 經(jīng)典物理基礎(chǔ) 第6版 課件 14 熱平衡態(tài)的氣體分子動理論
- 溝通計劃與協(xié)議
- 商品質(zhì)量風(fēng)險控制合同(2篇)
- 統(tǒng)編版小學(xué)道德與法治三年級下冊《我很誠實》說課課件
- 建材零售合同范本
- 《藍(lán)橋杯》科學(xué)素養(yǎng)知識競賽考試題庫(含答案)
- 五上數(shù)學(xué)簡便運算500道及答案
- 工貿(mào)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化定級評分標(biāo)準(zhǔn)(2023版)
- 小區(qū)消防設(shè)施維修方案小區(qū)的消防設(shè)施歸誰管
- 海綿材料的降噪數(shù)值模擬與優(yōu)化
- 醫(yī)療護(hù)理員五級理論知識考核試題
- 中央戲劇學(xué)院招聘(實踐教學(xué)中心)筆試真題2023
- 中國郵政四川分公司社會招聘筆試真題2023
- 戶外體育場音視頻設(shè)計投標(biāo)方案(技術(shù)方案)
- 信息通信網(wǎng)運營管理智能化水平分級技術(shù)要求 IP網(wǎng)絡(luò)
- 項目總投資明細(xì)表模板
評論
0/150
提交評論