![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-8/29/8/b7a700cb-53fd-4c5d-a26b-f3daba21b74f/b7a700cb-53fd-4c5d-a26b-f3daba21b74fpic.jpg)
![fortran90程序設(shè)計(jì)chapter14_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-8/29/8/b7a700cb-53fd-4c5d-a26b-f3daba21b74f/b7a700cb-53fd-4c5d-a26b-f3daba21b74f1.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十四章第十四章公用區(qū)和存儲(chǔ)關(guān)聯(lián)公用區(qū)和存儲(chǔ)關(guān)聯(lián)14.114.1公用區(qū)公用區(qū)一個(gè)FTRAN90程序常常由多個(gè)程序單位(主程序、內(nèi)部子程序、外部子程序、模塊子程序等)組成這些程序單位并不是一段孤立的程序代碼它們之間需要通過(guò)數(shù)據(jù)交換建立聯(lián)系相互影響相互配合共同完成一個(gè)特定任務(wù)。到目前我們可通過(guò)主程序的全局變量或子程序的形實(shí)參結(jié)合方式實(shí)現(xiàn)程序單位之間的數(shù)據(jù)交換。對(duì)于大批量數(shù)據(jù)這種數(shù)據(jù)交換方式的交換速度比較慢一般只實(shí)用于所交換數(shù)據(jù)量比較少的情形
2、。在求解某些實(shí)際問(wèn)題時(shí)程序單位之間需要進(jìn)行大量的數(shù)據(jù)交換這種情況下使用全程變量或形實(shí)參結(jié)合方式交換數(shù)據(jù)的效率較低。FTRAN語(yǔ)言提供公用區(qū)數(shù)據(jù)交換方式可高效完成大批量數(shù)據(jù)的交換任務(wù)。使用公用區(qū)可快速、方便、靈活地實(shí)現(xiàn)程序單位之間的數(shù)據(jù)交換。使用公用區(qū)交換數(shù)據(jù)的方法是:如果程序單位A要將數(shù)據(jù)傳遞給程序單位B必須先將數(shù)據(jù)傳遞給公用區(qū)然后程序單位B在從公用區(qū)獲得所需數(shù)據(jù)。公用區(qū)是程序單位之間交換數(shù)據(jù)的橋梁和中轉(zhuǎn)站通過(guò)公用區(qū)將程序單位緊密地聯(lián)系
3、在一起如圖141所示。FTRAN90提供兩種公用區(qū):無(wú)名公用區(qū)和有名公用區(qū)。無(wú)名公用區(qū)指沒(méi)有名稱(chēng)的公用區(qū)一個(gè)程序只能有一個(gè)無(wú)名公用區(qū)。有名公用區(qū)指有名稱(chēng)的公用區(qū)一個(gè)程序可有多個(gè)有名公用區(qū)。在程序的說(shuō)明部分使用COMMON語(yǔ)句來(lái)設(shè)置無(wú)名或有名公用區(qū)。COMMON語(yǔ)句是一個(gè)非執(zhí)行語(yǔ)句。各程序單位內(nèi)的數(shù)據(jù)對(duì)象名稱(chēng)(變量名、數(shù)組名、數(shù)組說(shuō)明符)是相互獨(dú)立的它們有各自的存儲(chǔ)單元即使同名也沒(méi)有任何關(guān)系。如果我們?cè)诔绦騿挝粌?nèi)使用COMMON語(yǔ)句則使不
4、同程序單位內(nèi)的有關(guān)數(shù)據(jù)對(duì)象共同占用公用區(qū)中的存儲(chǔ)單元達(dá)到共享數(shù)據(jù)的目的。使用公用區(qū)求某班學(xué)生(人數(shù)不定)平均成績(jī)的示例程序如下:公用區(qū)交換數(shù)據(jù)交換數(shù)據(jù)程序單位A程序單位B圖141公用區(qū)與程序單位的關(guān)系PROGRAMmainINTEGERPARAMETER::max=50!定義對(duì)多學(xué)生人數(shù)常量maxCOMMONsce(max)n!在無(wú)名公用區(qū)設(shè)置成績(jī)數(shù)組sce和實(shí)際人數(shù)n!調(diào)用input子例行程序輸入學(xué)生成績(jī)數(shù)據(jù)至數(shù)組sceCALLinp
5、ut!無(wú)參子例行程序調(diào)用可取消括號(hào)!調(diào)用average函數(shù)統(tǒng)計(jì)平均成績(jī)使用公用區(qū)sce數(shù)組數(shù)據(jù)和人數(shù)n第十四章公用區(qū)和存儲(chǔ)關(guān)聯(lián)382下列COMMON語(yǔ)句是合法的:COMMONmnxyarr(30)!設(shè)置一個(gè)無(wú)名公用區(qū)COMMONmnxyarr(30)!設(shè)置一個(gè)無(wú)名公用區(qū)COMMONdataab(10)n!設(shè)置1個(gè)有名公用區(qū)data!設(shè)置1個(gè)無(wú)名公用區(qū)和2個(gè)有名公用區(qū)data1、data2COMMONnpdata1ax(10)data2r
6、s!第一個(gè)公用區(qū)為無(wú)名公用區(qū)COMMONnumpdata1ax(10)data2rs!第一個(gè)公用區(qū)為無(wú)名公用區(qū)COMMONdata1ax(10)numpdata2rs!第二個(gè)公用區(qū)為無(wú)名公用區(qū)COMMONdata1ax(10)data2rsnump!第三個(gè)公用區(qū)為無(wú)名公用區(qū)!公用區(qū)變量類(lèi)型遵循IN隱含規(guī)則下列類(lèi)型聲明和COMMON語(yǔ)句是合法的:INTEGERrsdat(30)COMMONmnrnumdatarr(50)matrixREA
7、Lnummatrix(54)無(wú)名公用區(qū)中設(shè)置了4個(gè)不同變量和3個(gè)數(shù)組其中:m和n為普通整型變量arr為一維實(shí)型數(shù)組它們遵循隱含規(guī)定r為普通整型變量dat為一維整型數(shù)組其類(lèi)型在前面INTEGER語(yǔ)句中聲明num為普通實(shí)型變量matrix為二維實(shí)型數(shù)組其類(lèi)型在后面REAL語(yǔ)句中聲明。下列COMMON語(yǔ)句是合法的:COMMONdata1abcd&&data2x(10)y(20)或COMMONdata1abcdCOMMONdata2x(10)y
8、(20)14.1.214.1.2公用區(qū)特性和使用規(guī)則公用區(qū)特性和使用規(guī)則?每一公用區(qū)有確定的大小。編譯系統(tǒng)根據(jù)每一公用區(qū)設(shè)置的變量和數(shù)組分配所需存儲(chǔ)單元確定公用區(qū)大小所以公用區(qū)設(shè)置的變量和數(shù)組不允許是子程序的形式參數(shù)(虛參)不允許設(shè)置動(dòng)態(tài)數(shù)組。例如下列COMMON語(yǔ)句設(shè)置的無(wú)名公用區(qū)占據(jù)214個(gè)字節(jié)其中:3個(gè)整型變量占7個(gè)字節(jié)一個(gè)單精度實(shí)型變量占4個(gè)字節(jié)一個(gè)整型數(shù)組占200個(gè)字節(jié)。INTEGER(1)m!m的KIND值為1分配1個(gè)字節(jié)存
9、儲(chǔ)單元INTEGER(2)n!n的KIND值為2分配2個(gè)字節(jié)存儲(chǔ)單元②一般情況下一般情況下COMMONCOMMON語(yǔ)句中變量的類(lèi)型遵循語(yǔ)句中變量的類(lèi)型遵循ININ隱含規(guī)則隱含規(guī)則除非使用類(lèi)型聲明語(yǔ)句對(duì)其進(jìn)行了顯除非使用類(lèi)型聲明語(yǔ)句對(duì)其進(jìn)行了顯式聲明。如果數(shù)組被顯式聲明式聲明。如果數(shù)組被顯式聲明則在則在COMMONCOMMON語(yǔ)句中只能給出數(shù)組名。如果語(yǔ)句中只能給出數(shù)組名。如果COMMONCOMMON語(yǔ)句中給出數(shù)組說(shuō)語(yǔ)句中給出數(shù)組說(shuō)明符明
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- fortran90程序設(shè)計(jì)chapter7
- fortran90程序設(shè)計(jì)chapter4
- fortran90程序設(shè)計(jì)chapter13
- fortran90第二章 選擇結(jié)構(gòu)程序設(shè)計(jì)
- chapter14
- 《程序設(shè)計(jì)語(yǔ)言(fortran)》課程教學(xué)大綱
- 語(yǔ)言學(xué)著作Basic Linguistic Theory(Chapter14)英漢翻譯實(shí)踐報(bào)告.pdf
- Java程序設(shè)計(jì) 14章_ppt.txt
- Java程序設(shè)計(jì) 14章_ppt.txt
- 《高級(jí)語(yǔ)言程序設(shè)計(jì)》第14章在線測(cè)試
- vb程序設(shè)計(jì)例題-程序改錯(cuò)程序填空程序設(shè)計(jì)
- 程序設(shè)計(jì)教案 程序設(shè)計(jì)——數(shù)據(jù)結(jié)構(gòu)
- c語(yǔ)言程序設(shè)計(jì)與項(xiàng)目實(shí)踐第14章
- 最簡(jiǎn)單的c程序設(shè)計(jì)――順序程序設(shè)計(jì)
- 自動(dòng)程序設(shè)計(jì)
- 894程序設(shè)計(jì)
- 程序設(shè)計(jì)實(shí)習(xí)
- android程序設(shè)計(jì)
- 程序設(shè)計(jì)類(lèi)
- java程序設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論