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