




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、頁(yè)碼,1/29從本章開(kāi)始,義。這種涵義與其說(shuō)是賦予語(yǔ)言實(shí)質(zhì)性的語(yǔ)義,也就是規(guī)定上章所描述的語(yǔ)言的每一個(gè)細(xì)節(jié)所具有的涵對(duì)于一種語(yǔ)言細(xì)節(jié)的定義,不如說(shuō)是算法的要求,要求語(yǔ)言具有足夠多的細(xì)節(jié),用來(lái)表達(dá)在算法當(dāng)中有可能出現(xiàn)的精細(xì)情節(jié)。對(duì)于任何,站在計(jì)算機(jī)的角度來(lái)看,總是可以把它抽象為如下圖所示的結(jié)構(gòu):輸入數(shù)據(jù)輸出數(shù)據(jù)因此要準(zhǔn)備通過(guò)計(jì)算來(lái)解決一個(gè)問(wèn)題,首先要作到的是把該問(wèn)題所涉及到的數(shù)據(jù)整理好,也就是列出所有的數(shù)據(jù),然后根據(jù)數(shù)據(jù)的數(shù)學(xué)屬性進(jìn)行分類,這個(gè)分類的過(guò)程就是對(duì)數(shù)據(jù)施加足夠的標(biāo)記的過(guò)程,將來(lái)把這些數(shù)據(jù)輸入到計(jì)算機(jī),計(jì)算機(jī)將能夠依據(jù)這些標(biāo)記,辨識(shí)出數(shù)據(jù)所應(yīng)該具有的數(shù)學(xué)屬性,從而施加相應(yīng)的合法數(shù)算。所
2、以作為向計(jì)算機(jī)描述計(jì)算問(wèn)題的FORTRAN語(yǔ)言,它首先要作到的是約定如何給數(shù)據(jù)施加足夠詳細(xì)的標(biāo)記。對(duì)這個(gè)標(biāo)記過(guò)程的第一個(gè)要求是保證準(zhǔn)確性,也就是說(shuō)這個(gè)語(yǔ)言的標(biāo)記系統(tǒng)必須正確地反映真實(shí)世界里面,數(shù)據(jù)所具有的數(shù)學(xué)屬性,因此這個(gè)標(biāo)記系統(tǒng)必然是與數(shù)據(jù)的數(shù)學(xué)分類結(jié)構(gòu)保持一致的。從數(shù)學(xué)的觀點(diǎn)來(lái)看,世界上的所有數(shù)據(jù),總是可以被表示為整數(shù),實(shí)數(shù),復(fù)數(shù)等等基本的數(shù)據(jù)種類,因此本章的內(nèi)容就是:FORTRAN語(yǔ)言如何把數(shù)據(jù)歸結(jié)為一些基本數(shù)據(jù)類型;然后為了足夠詳盡地描述每一個(gè)數(shù)據(jù)類型的屬性,F(xiàn)ORTRAN是如何施加相應(yīng)的標(biāo)記的;FORTRAN語(yǔ)言對(duì)于這些標(biāo)記(語(yǔ)法形式)所約定的語(yǔ)義是什么。然后就可以知道,要想用FOR
3、TRAN來(lái)描述一個(gè)問(wèn)題的算法,并進(jìn)而以問(wèn)題算法的FORTRAN語(yǔ)言版本為媒介,通過(guò)計(jì)算機(jī)來(lái)得到計(jì)算結(jié)果,第一個(gè)步驟,就是準(zhǔn)備好數(shù)據(jù)的FORTRAN描述。5.1 數(shù)據(jù)是什么在上一章里,據(jù)稱計(jì)算機(jī)能夠使用語(yǔ)言,而且是非常類似于人類的語(yǔ)言,至少?gòu)男问缴峡春芟?,這難免會(huì)令某些人(特別是看過(guò)KUBRICK的影片2001: A Space Odyssey的觀眾們)感到恐懼:)別怕!且先不 FORTRAN作為語(yǔ)言是否具有與人類語(yǔ)言等價(jià)的表達(dá)能力,至少?gòu)淖匀徽Z(yǔ)言的語(yǔ)義學(xué)的角度來(lái)看,F(xiàn)ORTRAN說(shuō)出來(lái)的話其實(shí)是絕對(duì)空洞的,因?yàn)镕ORTRAN語(yǔ)言的全部語(yǔ)義基礎(chǔ)就只是數(shù)據(jù),而數(shù)據(jù)對(duì)機(jī)器而言,只是意味著經(jīng)過(guò)編碼的符
4、號(hào)。一臺(tái)計(jì)算機(jī)其實(shí)是由以下6個(gè)部分組成:數(shù)據(jù)也就是基本數(shù)據(jù)元素以及數(shù)據(jù)結(jié)構(gòu);基本操作也就是一個(gè)對(duì)上述數(shù)據(jù)進(jìn)行操作的基本操作集;順序控制也就是一個(gè)控制針對(duì)數(shù)據(jù)的基本操作執(zhí)行的時(shí)間順序的機(jī)制;數(shù)據(jù)存取也就是一個(gè)如何給操作提供數(shù)據(jù)的機(jī)制;管理也就是一個(gè)數(shù)據(jù)分配機(jī)制;操作環(huán)境也就是一個(gè)支持程序和外部環(huán)境進(jìn)行數(shù)據(jù)通訊的機(jī)制。因此一臺(tái)計(jì)算機(jī)在程序的使用者看來(lái),就是給它輸入數(shù)據(jù),它再給你加工過(guò)的結(jié)果數(shù)據(jù);2006-1-5計(jì)算過(guò)程頁(yè)碼,2/29在程序的編制者看來(lái),就是把對(duì)數(shù)據(jù)的處理過(guò)程表示為計(jì)算機(jī)有限的一系列基本操作(指令)的集合,使得計(jì)算機(jī)能夠處理相應(yīng)的數(shù)據(jù);因此,計(jì)算機(jī)的一切可以說(shuō)都是圍繞著數(shù)據(jù)如何表達(dá)數(shù)
5、據(jù),如何處理數(shù)據(jù)。而計(jì)算機(jī)語(yǔ)言所要具備的兩個(gè)部分的功能,首先就是完備的描述數(shù)據(jù)的性質(zhì),然后就是描述數(shù)據(jù)的處理過(guò)程。那么,數(shù)據(jù)呢?數(shù)據(jù)就是符號(hào)化了的信息!對(duì)于計(jì)算機(jī)來(lái)說(shuō),任何信息都只有表示為符號(hào),才能被認(rèn)可;反過(guò)來(lái)說(shuō),計(jì)算機(jī)只能輸入符號(hào),而不會(huì)也不能理解符號(hào)的含義,它的能力只是體現(xiàn)在按照既定規(guī)則來(lái)處理符號(hào)。然后,就是給出數(shù)據(jù)的表示,即如何用符號(hào)來(lái)明確而無(wú)歧義地表達(dá)數(shù)據(jù)。要使得符號(hào)具備數(shù)據(jù)的含義,需要經(jīng)過(guò)這么幾個(gè)步驟:處理符號(hào)的第一步:給符號(hào)分類,并給出描述符號(hào)性質(zhì)的方法。這個(gè)分類是人作為設(shè)計(jì)者給符號(hào)規(guī)定語(yǔ)義的第一步,因?yàn)閷?duì)于人來(lái)說(shuō),數(shù)據(jù)不能只是符號(hào),而是具有來(lái)自真實(shí)世界的語(yǔ)義,設(shè)計(jì)者正是根據(jù)符號(hào)
6、的這種語(yǔ)義,制定相應(yīng)的處理符號(hào)的規(guī)則,而計(jì)算機(jī)要想能夠正確地處理符號(hào),基本的前提,就是每當(dāng)引入一個(gè)數(shù)據(jù),都得由人向機(jī)器數(shù)據(jù)具備什么性質(zhì),而且假設(shè)計(jì)算機(jī)已經(jīng)被引入處理該種數(shù)據(jù)類型的規(guī)則。處理符號(hào)的第二步:區(qū)分常量與變量。這個(gè)數(shù)據(jù)是什么類型,這個(gè)這一對(duì)范疇反映了最基本的人類抽象能力,也正是人類思維的基本模式。要想讓機(jī)器模擬這種能力,最簡(jiǎn)單的做法就是:任何時(shí)候都必須首先,哪些符號(hào)表示常量,哪些符號(hào)表示變量,而變量相應(yīng)的取值范圍必須規(guī)定好,也就是說(shuō)必須描述其取值為具有何種屬性的常量值的集合;或至少已經(jīng)被機(jī)器默認(rèn)。處理符號(hào)的第三步:給每一類數(shù)據(jù)規(guī)定相應(yīng)的合法運(yùn)算。對(duì)于一種數(shù)據(jù)可以執(zhí)行什么樣的運(yùn)算,來(lái)自于
7、語(yǔ)言設(shè)計(jì)者對(duì)數(shù)據(jù)語(yǔ)義的規(guī)定,只有當(dāng)運(yùn)算被表示為相應(yīng)的機(jī)器指令或指令集合,這時(shí)在表面看來(lái),機(jī)器才開(kāi)始真正“理解”了數(shù)據(jù)的“涵義”。因此可以說(shuō),數(shù)據(jù)的定義了計(jì)算機(jī)的“”。按照上面的步驟,說(shuō)明一個(gè)數(shù)據(jù)類型包括四個(gè)方面:命名的語(yǔ)法取值的范圍與屬性說(shuō)明該數(shù)據(jù)類型的常量的表示方法定義合法的運(yùn)算因此相應(yīng)的一個(gè)數(shù)據(jù)類型的四個(gè)要素就是:名字;值的集合;表示值(相應(yīng)的常量)的方法;操作值的運(yùn)算的集合。對(duì)于這四個(gè)要素,F(xiàn)ORTRAN一方面要約定它們的語(yǔ)法形式,從而可以符號(hào)描述的唯一性標(biāo)記,保證相應(yīng)的描述語(yǔ)句能夠被FORTRAN編譯系統(tǒng)無(wú)歧義的辨識(shí),另一方面就是要給出這些語(yǔ)法形式所對(duì)應(yīng)的含義。5.2 用FORTRAN
8、來(lái)說(shuō)明數(shù)據(jù)的性質(zhì)真實(shí)世界的數(shù)據(jù)顯然是多種多樣的,幾匹馬,軸承的內(nèi)徑,圓周長(zhǎng)與直徑的比值,電子的波函數(shù),非各向同性電介質(zhì)的電極化率,10個(gè)被試的最高血壓等等,這些數(shù)據(jù)都具有非常不同的形式與性質(zhì),如果每針對(duì)一種數(shù)據(jù)形式,都把它定義為某一種新的數(shù)據(jù)類型,則肯定是煩不勝舉,因此合理的途徑是找到一種的數(shù)據(jù)描述方式,而對(duì)于科學(xué)計(jì)算問(wèn)題來(lái)說(shuō),自然的數(shù)據(jù)分類方式是數(shù)學(xué)對(duì)數(shù)值數(shù)據(jù)的分類,再加上非數(shù)值型數(shù)據(jù),會(huì)是非常適合于科學(xué)計(jì)算的數(shù)據(jù)表達(dá)方式。2006-1-5頁(yè)碼,3/29當(dāng)然,如果是以描述其他類型會(huì)更有效。為目的,如事務(wù)處理,符號(hào)演算等,則選用另外的數(shù)據(jù)分類方式至少?gòu)臄?shù)學(xué)的觀點(diǎn)來(lái)看,常常需要處理的數(shù)據(jù),都可以
9、表示為一些基本數(shù)據(jù)類型的組合,例如我們知道向量實(shí)際上就是一個(gè)數(shù)組,數(shù)組的每個(gè)元素為標(biāo)量,因此應(yīng)用數(shù)組這種結(jié)構(gòu),就可以自然地表示向量,另外復(fù)數(shù)盡管也可表示為一個(gè)二元數(shù)組,但是這種二元數(shù)組的乘法不同于二維向量,因此為了避免這種歧義, FORTRAN把復(fù)數(shù)當(dāng)成一個(gè)基本數(shù)據(jù)類型。而幾種基本標(biāo)量里面,整數(shù)和實(shí)數(shù)都同樣必須本的數(shù)據(jù)類型。由此可以建立FORTRAN的對(duì)數(shù)據(jù)的類似描述?;捎谡鎸?shí)世界問(wèn)題的要求的不同,對(duì)數(shù)據(jù)的描述也有程度不等的情況,最基本的情況就是直接說(shuō)明數(shù)據(jù)的類型以及其他屬性,又由于數(shù)據(jù)表示的實(shí)現(xiàn)具有一個(gè)重要的參數(shù),即空間,所以當(dāng)問(wèn)題要求的數(shù)據(jù),不能滿足于默認(rèn)的空間的時(shí)候,這時(shí),就需要進(jìn)一步
10、給出數(shù)據(jù)的種別參數(shù),這是更加詳細(xì)的數(shù)據(jù)描述。如果在真實(shí)世界問(wèn)題當(dāng)中出現(xiàn)的的數(shù)據(jù)對(duì)象,干脆不符合已有的固有數(shù)據(jù)類型以及數(shù)組的定義,這時(shí)就還需要根據(jù)用戶的要求構(gòu)造一個(gè)依賴于問(wèn)題的特定的數(shù)據(jù)結(jié)構(gòu),這就是數(shù)據(jù)描述時(shí)會(huì)遇到的第三種情況。對(duì)于這三種情況,F(xiàn)ORTRAN的解決方式如下:第一種情況:確定數(shù)據(jù)的類型以及相應(yīng)的可能具有的屬性。首先,F(xiàn)ORTRAN所能辨識(shí)的數(shù)據(jù)類型首先分為兩大類:固有數(shù)據(jù)類型派生數(shù)據(jù)類型根據(jù)語(yǔ)義上的基本差別,數(shù)據(jù)首先具有一些基本的類型,這些基本類型一般是和真實(shí)世界里的信息的那些基本元素相對(duì)應(yīng),比方說(shuō)數(shù)字,字符等。然后其他情況下遇到的數(shù)據(jù)都可以由這些基本數(shù)據(jù)類型組合得到。不過(guò)一種語(yǔ)言
11、具體的規(guī)定哪些基本的數(shù)據(jù)類型,往往受到該種語(yǔ)言主要應(yīng)用的場(chǎng)合的影響,由于FORTRAN主要用來(lái)進(jìn)行科學(xué)計(jì)算,因此它所定義的基本數(shù)據(jù)類型,正是與到的數(shù)據(jù)類型相契合的。在科學(xué)計(jì)算問(wèn)題當(dāng)中遇所謂固有類型,是FORTRAN語(yǔ)言所定義的最基本的數(shù)據(jù)類型,每一種固有類型是和該種數(shù)據(jù)類型相應(yīng)的各種運(yùn)算一起隱式定義的,也就是說(shuō)一旦引入某種固有數(shù)據(jù)類型,則系統(tǒng)總是默認(rèn)為對(duì)它進(jìn)行相應(yīng)的運(yùn)算是合法的,并且總是可這樣就做到了每種數(shù)據(jù)類型都和它相應(yīng)的運(yùn)算固有類型包括五種:的。在一起,使得問(wèn)題的描述非常自然。整型(EGER)、實(shí)型(REAL)、復(fù)型(COMPLEX)、邏輯型(LOGICAL)和字符型(CHARACTER)
12、。這個(gè)分類完全是遵循數(shù)據(jù)的數(shù)學(xué)分類,即整型指整數(shù),實(shí)型指實(shí)數(shù),復(fù)型指復(fù)數(shù),邏輯型指邏輯值,字符型則是語(yǔ)言的基本元素。這樣就可以把基本的數(shù)學(xué)語(yǔ)言一一對(duì)應(yīng)的直接翻譯為FORTRAN語(yǔ)言。所謂派生類型是由用戶定義的,非隱式定義的類型,只要用一個(gè)類型定義來(lái)其成員是何種固有類型,或者是何種其它已經(jīng)定義過(guò)的派生類型,就能夠被FORTRAN認(rèn)可為一種數(shù)據(jù)類型。由于派生數(shù)據(jù)類型正是由固有數(shù)據(jù)類型充當(dāng)成員而的,因此在結(jié)構(gòu)關(guān)系上,可以把固有數(shù)據(jù)類型看成原子,而把派生數(shù)據(jù)類型看成分子。由于語(yǔ)言的根本目的就是為描述算法服務(wù)的,因此從這個(gè)角度出發(fā),派生數(shù)據(jù)類型本質(zhì)上體現(xiàn)了非常重要的數(shù)據(jù)抽象與數(shù)組合的,由于需要運(yùn)用語(yǔ)言來(lái)
13、描述的問(wèn)題是開(kāi)放性,很難劃定需要FORTRAN來(lái)描述的范圍,因此通過(guò)構(gòu)造派生數(shù)據(jù)類型,使得可以很自然而簡(jiǎn)潔地建立新的數(shù)據(jù)類型。這是FORTRAN在FORTRAN77標(biāo)準(zhǔn)之后的一個(gè)進(jìn)步。派生類型數(shù)據(jù)最重要的用途就是擴(kuò)充了數(shù)組這種重要的數(shù)據(jù)結(jié)構(gòu),由于數(shù)組在科學(xué)計(jì)算領(lǐng)域,是一種重要的數(shù)據(jù)結(jié)構(gòu)類型,F(xiàn)ORTRAN除了能夠直接描述數(shù)組,同時(shí)還能描述更為廣泛的派生數(shù)據(jù)類型,也就可以直接對(duì)一個(gè)數(shù)據(jù)集合的各個(gè)成員同時(shí)施加運(yùn)算,擁有了這種自然的數(shù)據(jù)類型,就避免了象FORTRAN的早期版本那樣,需要通過(guò)特別設(shè)計(jì)的算法來(lái)實(shí)現(xiàn)這種運(yùn)算。所謂固有數(shù)據(jù)類型的固有,對(duì)于FORTRAN來(lái)說(shuō),就是為每一種固有數(shù)據(jù)類型規(guī)定了它的
14、模式。2006-1-5頁(yè)碼,4/29在FORTRAN77及其之前的標(biāo)準(zhǔn)里,整型,實(shí)型,邏輯型數(shù)據(jù)都是使用了一個(gè)數(shù)值單元,而復(fù)型和雙精度數(shù)據(jù)則使用了兩個(gè)數(shù)值單元,字符型數(shù)據(jù)使用一個(gè)字符單元。由于模式是非常底層的語(yǔ)言實(shí)現(xiàn)結(jié)構(gòu),因此FORTRAN后續(xù)的標(biāo)準(zhǔn)要想保持兼容,只有繼承這個(gè)約定。因此在FORTRAN90與95當(dāng)中,默認(rèn)的整型,實(shí)型,邏輯型數(shù)據(jù)都是使用了一個(gè)數(shù)值單元,而默認(rèn)的復(fù)型和雙精度數(shù)據(jù)則使用了兩個(gè)數(shù)值單元,默認(rèn)的字符型數(shù)據(jù)使用一個(gè)字符單元。而作為語(yǔ)言的一個(gè)發(fā)展,在FORTRAN90之后的標(biāo)準(zhǔn)里,開(kāi)始允許在一個(gè)程序單元內(nèi),由用戶定義特定的不依賴于固有數(shù)據(jù)模式的數(shù)據(jù)類型,這就是第6章的派生數(shù)
15、據(jù)類型。建立一種數(shù)據(jù)類型,最大的好處就是可以把相關(guān)的運(yùn)算和數(shù)據(jù)在一起,對(duì)于一個(gè)特定問(wèn)題當(dāng)中的數(shù)據(jù)對(duì)象,是否應(yīng)該被明確地看成數(shù)據(jù)類型,屬于語(yǔ)言設(shè)計(jì)的權(quán)宜,因?yàn)榻⒁环N數(shù)據(jù)類型所能帶來(lái)的好處可以用算法來(lái)補(bǔ)償,而FORTRAN77之后的版本的選擇是增加派生數(shù)據(jù)類型,這樣使得學(xué)計(jì)算時(shí),有更為自然的描述方式??梢栽谶M(jìn)行科數(shù)據(jù)類型的全部分類總結(jié)如下:固有數(shù)據(jù)類型數(shù)值型數(shù)據(jù)整型實(shí)型復(fù)型非數(shù)值型數(shù)據(jù)邏輯型字符型派生數(shù)據(jù)類型就數(shù)據(jù)的屬性而言,類型當(dāng)然是最重要的屬性了。在指定類型之后,緊接著的就是根據(jù)實(shí)際情況,看需要描述的數(shù)據(jù)是否還具有其他需明的屬性。對(duì)于數(shù)組來(lái)說(shuō),具有一個(gè)基本的屬性,就是數(shù)組的大小,相應(yīng)的就是如
16、何指定數(shù)組的??臻g的大小由于FORTRAN具備可分配數(shù)組與指針的功能,因此在程序開(kāi)頭并不一定需要指定數(shù)組的大小(維度),在程序執(zhí)行過(guò)程當(dāng)中,數(shù)組的大小會(huì)作為輸入或計(jì)算結(jié)果被讀入,這個(gè)指標(biāo)可以針對(duì)具體的要求,以及運(yùn)行的狀況而定。在FORTRAN還不具備這種動(dòng)態(tài)功能的時(shí)候,就需要在數(shù)組里指定數(shù)組的維度,而在事先又很難準(zhǔn)確預(yù)料程序運(yùn)行過(guò)程當(dāng)中對(duì)數(shù)組空間的要求,因此如果指定的數(shù)組過(guò)大,就會(huì)大量地浪費(fèi)當(dāng)時(shí)非常寶貴的內(nèi)存空間,而如果指定的數(shù)據(jù)組過(guò)小,則肯定會(huì)在程序運(yùn)行過(guò)程當(dāng)中導(dǎo)致錯(cuò)誤。所以為了避免這些問(wèn)題,現(xiàn)在一般不會(huì)在數(shù)據(jù)動(dòng)態(tài)對(duì)象,從而有效地回避了這個(gè)問(wèn)題。的時(shí)候精確指定數(shù)組大小,而是把數(shù)組處理成一個(gè)數(shù)
17、據(jù)的一個(gè)重要屬性,就是它的可性。在FORTRAN語(yǔ)言里,模塊提供了對(duì)數(shù)據(jù)的控制。任何數(shù)據(jù)對(duì)象只要想把自己局限在模塊內(nèi)使用,模塊就能夠提供足夠的保護(hù),使得外部程序無(wú)法象。模塊的這個(gè)功能使得FORTRAN成為一種安全可靠的語(yǔ)言。該數(shù)據(jù)對(duì)是否打開(kāi)數(shù)據(jù)的其他許多具體的屬性,取決于具體的數(shù)據(jù)應(yīng)用環(huán)境,因此要數(shù)據(jù)的每一種屬性,在這里不太現(xiàn)實(shí),只有等到下面具體地說(shuō)明每一種語(yǔ)句時(shí)再具體說(shuō)明,因?yàn)閷傩灾付偸窃诔霈F(xiàn)在語(yǔ)句當(dāng)中。第二種情況:指定固有數(shù)據(jù)類型的種別參數(shù)。對(duì)于計(jì)算機(jī)來(lái)說(shuō),在確定數(shù)據(jù)的類型,從而可以引導(dǎo)到相應(yīng)的運(yùn)算之后,進(jìn)一步就需要為數(shù)據(jù)在內(nèi)存指定位置和空間,實(shí)際上對(duì)于馮紐曼型計(jì)算機(jī)來(lái)說(shuō),這個(gè)步驟是非常
18、關(guān)鍵的,因?yàn)轳T紐曼型計(jì)算機(jī)的要點(diǎn),就是硬件之外的一切,都必須表示為數(shù)據(jù),都必須在內(nèi)存當(dāng)中,然后在程序的運(yùn)行當(dāng)中,隨時(shí)與CPU進(jìn)行通訊,因此在程序的開(kāi)頭就明確數(shù)據(jù)在內(nèi)存當(dāng)中的位置與每個(gè)數(shù)據(jù)所占有空間的大小,是保證程序運(yùn)行非?;镜囊?。2006-1-5頁(yè)碼,5/29用來(lái)指定程序當(dāng)中需要使用的每一種固有數(shù)據(jù)類型所要求占據(jù)的內(nèi)存空間大小的屬性由種別參數(shù)表示。給這個(gè)變量(參數(shù))指定一個(gè)數(shù)值,就可以說(shuō)明數(shù)據(jù)所需要的許的數(shù)值數(shù)據(jù)的位數(shù)和字符串的字符數(shù)目??臻g的大小,也就是程序允KIND(種類種別參數(shù))分別說(shuō)明整數(shù)類型的十進(jìn)指數(shù)范圍,實(shí)數(shù)類型和復(fù)數(shù)類型的十進(jìn)制精度和指數(shù)范圍,字符類型和邏輯類型的表示方法。L
19、EN(長(zhǎng)度種別參數(shù))對(duì)字符類型規(guī)定了字符的個(gè)數(shù)?!纠?-1】REAL(KIND3):ABC,X,LONGCHARACTER(LEN40,KINDGREECE):NAME具體的種別參數(shù)的約定是與語(yǔ)言的具體實(shí)現(xiàn)相關(guān)的,因此具體的取值還是得參考編譯器的文檔。如果沒(méi)有數(shù)據(jù)的種別,那么程序就會(huì)采用默認(rèn)的參數(shù),由于FORTRAN的早期版本沒(méi)有引入種別參數(shù),因此對(duì)于有不同精度要求的實(shí)型變量,直接采用了兩種不同的數(shù)據(jù)類型,這就是REAL和DOUBLE PRECI,從FORTRAN90以來(lái)的版本里,通過(guò)引入種別參數(shù),對(duì)種別參數(shù)的不同取值,就足夠表達(dá)不同的精度,而同時(shí)為了保證和早期版本的兼容,單獨(dú)的數(shù)據(jù)類型DOU
20、BLEPRECI還是被保存下來(lái)了,這樣一來(lái),就產(chǎn)生了一個(gè)有一定任意性的,即新的語(yǔ)言標(biāo)準(zhǔn)對(duì)不同精度的實(shí)型數(shù)據(jù),可以通過(guò)使用同一個(gè)數(shù)據(jù)類型的不同的種別參數(shù)值來(lái)表示,而同時(shí)用DOUBLE PRECI的兼容性。作為數(shù)據(jù)也是有效的,這樣就保證了源碼向前的兼容性,卻不具備向后對(duì)于在指定種別參數(shù)的數(shù)值時(shí),一般是以字為,這樣對(duì)于字長(zhǎng)不同的機(jī)器而言,相互之間就會(huì)出現(xiàn)程序移植的,下面分情況予以說(shuō)明:實(shí)型由于DOUBLE PRECI是屬于老式標(biāo)準(zhǔn)的遺留物,因此使用DOUBLE PRECI作為數(shù)據(jù)的程序就不具備良好的可移植性,因?yàn)樗^雙精度是針對(duì)具體的機(jī)器的字長(zhǎng)而言的,對(duì)于32位的機(jī)器,雙精度就是64位,而對(duì)于64位
21、機(jī)器,雙精度就意味著128位,這樣在不同字長(zhǎng)的機(jī)器環(huán)境里,雙精度就具有不同的位數(shù),使得程序無(wú)法在不同字長(zhǎng)的之間進(jìn)行直接的移植。因此在這種情況下,最好還是使用REAL的種別參數(shù)來(lái)表達(dá)算法所要求的實(shí)數(shù)精度??梢哉f(shuō)種別參數(shù)一勞永逸地解決了實(shí)數(shù)精度的可移植性問(wèn)題。復(fù)型由于所謂復(fù)型本質(zhì)上就是由兩個(gè)實(shí)數(shù)表達(dá)的,因此按道理復(fù)型同樣應(yīng)該能夠具有表達(dá)多種精度的能力,而實(shí)際上早期的版本在這方面是有欠缺的,不過(guò)隨著FORTRAN90引入種別參數(shù),就可以在COMPLEX的語(yǔ)句里通過(guò)運(yùn)用種別參數(shù)來(lái)實(shí)現(xiàn)多種精度的表達(dá),對(duì)于任何FORTRAN的實(shí)現(xiàn),至少能表達(dá)兩種精度,而一般來(lái)說(shuō)是多于兩種的。字符型對(duì)于字符,一般的機(jī)器都是
22、用單字節(jié)8bits來(lái)表示一個(gè)字符,這樣就可以總共表示28=256個(gè)不同的字符,這對(duì)于任何以字母寫(xiě)出來(lái)的語(yǔ)言都是足夠的了,不過(guò)對(duì)于漢語(yǔ),日語(yǔ)這樣一些語(yǔ)言就不夠用了,一般得需要雙字節(jié),即16bits,這樣就可以表達(dá)216個(gè)字符。因此字符型數(shù)據(jù)同樣需要附加種別參數(shù),以便除了使用默認(rèn)的基本字符之外,還可以使用輔助字符集里的字符,從而實(shí)現(xiàn)程序的本地化。不過(guò)某個(gè)具體的編譯器是否支持雙字節(jié)字符,必須參考相應(yīng)95標(biāo)準(zhǔn)也沒(méi)有強(qiáng)制要求FORTRAN的任何實(shí)現(xiàn)都必須支持雙字節(jié)字符。邏輯型由于一切邏輯型數(shù)據(jù)都只有兩個(gè)值,因此如何確定邏輯型數(shù)據(jù)的冊(cè)。因?yàn)镕ORTRAN空間應(yīng)該是非常好辦的,不過(guò)不幸的是,F(xiàn)ORTRAN的
23、早期版本規(guī)定邏輯型數(shù)據(jù)使用和實(shí)型數(shù)據(jù)一樣大小的機(jī)器,這樣當(dāng)機(jī)器的字長(zhǎng)很大時(shí),就會(huì)非常的浪費(fèi)機(jī)器的空間。因此到了FORTRAN90和FORTRAN 95,除了作為默認(rèn)的情形,和舊的語(yǔ)言標(biāo)準(zhǔn)保持兼容之外,還可以通過(guò)指定種別參數(shù),使得邏輯型數(shù)據(jù)的譯器的說(shuō)明??臻g大小只有一個(gè)字,甚至一個(gè)bit。當(dāng)然具體的使用方法需要參考相應(yīng)編整型顯然在程序應(yīng)用當(dāng)中會(huì)出現(xiàn)幾乎任何大小的整型數(shù)據(jù),因此無(wú)法在語(yǔ)言標(biāo)準(zhǔn)里面的規(guī)2006-1-5頁(yè)碼,6/29定整型數(shù)據(jù)的多大的空間大小,這就同樣需要依靠種別參數(shù)來(lái)指定應(yīng)該給具體問(wèn)題當(dāng)中的整型數(shù)據(jù)確定空間。具體地指定方式屬于編譯器設(shè)計(jì)者的選擇,需要參考相應(yīng)編譯器的語(yǔ)言說(shuō)明。第三種情
24、況:派生數(shù)據(jù)類型。數(shù)據(jù)的本義就是對(duì)真實(shí)世界里的事物的描述。這種描述可以是簡(jiǎn)單的,如一個(gè)標(biāo)量,也可以是復(fù)雜的,如一個(gè)張量,對(duì)于更復(fù)雜的對(duì)象,在自然語(yǔ)言里有一種自然的描述方法,就是使用一系列的詞匯,每個(gè)詞匯都是對(duì)象在某個(gè)方面的屬性的度量;在計(jì)算機(jī)語(yǔ)言里,可以采用類似的解決方案,即把對(duì)象的每一個(gè)需要描述的性質(zhì)用一個(gè)適當(dāng)?shù)幕緮?shù)據(jù)類型來(lái)表示,這樣用一組基本數(shù)據(jù)類型就可以描述該對(duì)象。而這一組數(shù)據(jù)可以看成是一個(gè)新的數(shù)據(jù)類型,表示了一個(gè)變量。這樣構(gòu)造出來(lái)的數(shù)據(jù)類型稱為派生數(shù)據(jù)類型,和固有數(shù)據(jù)類型一樣,在派生數(shù)據(jù)類型時(shí),需要給出名稱,描述它的每一個(gè)元素的固有數(shù)據(jù)類型以及相應(yīng)屬性和種別參數(shù)(如果非默認(rèn)的話),當(dāng)
25、然也需要適當(dāng)?shù)囟x其運(yùn)算。既然這種派生數(shù)據(jù)類型是由一組數(shù)組成,就會(huì)出現(xiàn)兩種情況:這組數(shù)據(jù)都是屬于一個(gè)數(shù)據(jù)類型這樣面專門(mén)說(shuō)明。的派生數(shù)據(jù)類型就是數(shù)組,顯然對(duì)于數(shù)組的元素的描述就可以進(jìn)行。具體的用在后這組數(shù)據(jù)的各個(gè)元素屬于不同的數(shù)據(jù)類型這樣的派生數(shù)據(jù)類型稱為結(jié)構(gòu),這時(shí)就需要對(duì)每個(gè)數(shù)據(jù)元素進(jìn)行分別的說(shuō)明, 即每一個(gè)元素的數(shù)據(jù)類型,可能有的屬性,種別參數(shù)等等。上面對(duì)派生數(shù)據(jù)類型的描述實(shí)際上是遞歸式的,即一個(gè)派生數(shù)據(jù)類型的元素同樣可以是另一種派生數(shù)據(jù)類型,而沒(méi)有限定必須是固有數(shù)據(jù)類型?!纠?-2】 下面是一個(gè)典型的派生數(shù)據(jù)類型。TYPE SLEREAL CURRENTCOMPLEX (KIND = QU
26、AD) PHASE CHARACTER (LEN = 50) SOURCEEND TYPE SLETYPE (SLE)SI401,SI402,SI403,SI404在上面的例子里,首先定義了一個(gè)名稱為SLE的數(shù)據(jù)類型,每一個(gè)SLE類型的數(shù)據(jù)由三個(gè)分量組成,它們的名稱分別為CURRENT,PHASE,SOURCE,分別屬于實(shí)型,復(fù)型和字符型,其中復(fù)型和字符型還分別說(shuō)明了種別參數(shù)和字符長(zhǎng)度屬性,然后給出了程序當(dāng)中需要使用的四個(gè)屬于該種數(shù)據(jù)類型的變量:SI401,SI402,SI403,SI404。上面例子當(dāng)中派生數(shù)據(jù)類型的定義,以TYPE開(kāi)始,以END TYPE結(jié)束。5.3數(shù)據(jù)不同種類的模式對(duì)于計(jì)
27、算機(jī)來(lái)說(shuō),數(shù)據(jù)分類的第一個(gè)反應(yīng)就是針對(duì)不同類型的數(shù)據(jù)約定不同的模式。由于模式的規(guī)定涉及到編譯環(huán)境的設(shè)置,因此模式的約定是與系統(tǒng)環(huán)境相關(guān)的,鑒于Compaq Visual Fortran的廣泛應(yīng)用,本節(jié)特別針對(duì)Compaq Visual Fortran系統(tǒng)而言的說(shuō)明了數(shù)據(jù)的各種模式。paq Visual Fortran所有的固有數(shù)據(jù)類型的下表列出了空間要求,和相應(yīng)的能夠在這個(gè)空間里表達(dá)的數(shù)據(jù)規(guī)模。2006-1-5頁(yè)碼,7/29表5-1 固有數(shù)據(jù)類型的模式:數(shù)據(jù)類型空間能表示的數(shù)據(jù)規(guī)模表中的EGER(4)等價(jià)于EGER(KIND=4)以及EGER*4.2006-1-5BYTEEGER(1)1 by
28、te (8 bits)BYTE表示等價(jià)于EGER(1)的帶符號(hào)的整型數(shù)據(jù)類型。EGER參 見(jiàn) EGER(2), EGER(4), 以 及 EGER(8).帶符號(hào)的整型數(shù)據(jù), 包括EGER(2),EGER(4), or EGER(8)。數(shù)據(jù)規(guī)模由編譯器選項(xiàng)/ eger_size:nn 控制。默認(rèn)的規(guī)??刂七x項(xiàng)為/ eger_size:32 ( 等價(jià)于EGER(4)。EGER(1)1 byte (8 bits)從-128到127帶符號(hào)的整數(shù)。EGER(2)2 bytes (16 bits)從-32,768到32,767帶符號(hào)的整數(shù)。EGER(4)4 bytes (32 bits)從-2,147,4
29、83,648到2,147,483,647帶符號(hào)的整型數(shù)據(jù)。EGER(8)8 bytes (64 bits)從-9,223,372,036,854,775,808到9,223,372,036,854,775,807帶符號(hào)的整型數(shù)據(jù)。REAL(4) REAL4 bytes (32 bits)從1.17549435E-38到 3.40282347E38的按照IEEE S_floating格式的單精度實(shí)型浮點(diǎn)值。在1.17549429E-38和1.40129846E-45之間的值是非常態(tài)的。REAL(8) DOUBLE PRECI8 bytes (64 bits)從2.2250738585072013
30、D-308到1.7976931348623158D308的按照 IEEE T_floating 格式 的 雙精 度 實(shí)型 浮 點(diǎn) 值。在2.2250738585072008D-308和4.94065645841246544D-324之間的值是非常態(tài)的。COMPLEX(4) COMPLEX8 bytes (64 bits)由一 對(duì)從 1.17549435E-38 到 3.40282347E38 的按照 IEEES_floating格式的單精度實(shí)型浮點(diǎn)值組成的單精度復(fù)型浮點(diǎn)值。在1.17549429E-38 和1.40129846E-45 之間的值是非常態(tài)的。COMPLEX(8) DOUBLE C
31、OMPLEX16 bytes (128 bits)由 一 對(duì) 從 2.2250738585072013D-308 到1.7976931348623158D308的按照IEEE T_floating格式的雙精度 實(shí)型浮 點(diǎn)值 組成的 雙精度 復(fù) 型浮 點(diǎn) 值。在 2.2250738585072008D-308和4.94065645841246544D-324之間的值是非常態(tài)的。LOGICAL參 見(jiàn) LOGICAL(2), LOGICAL(4), 以 及 LOGICAL(8).邏輯型值, 包括LOGICAL(2), LOGICAL(4), 以及 LOGICAL(8). 數(shù)據(jù)規(guī)模由編譯器選項(xiàng)/ eg
32、er_size:nn 控制。默認(rèn)的規(guī)模控制選項(xiàng)為/ eger_size:32 (等價(jià)于LOGICAL(4)。LOGICAL(1)1 byte (8 bits)邏輯型值.TRUE. 或.FALSE.LOGICAL(2)2 bytes (16 bits)邏輯型值.TRUE. 或.FALSE.LOGICAL(4)4 bytes (32 bits)邏輯型值.TRUE. 或.FALSE.LOGICAL(8)8 bytes (64 bits)邏輯型值.TRUE. 或.FALSE.CHARACTER每個(gè)字符1 byte (8 bits)根據(jù)約定的字符編碼表示的字符數(shù)據(jù),通過(guò)字符數(shù)據(jù)的形式:CHARACTER
33、(LEN=n)或 CHARACTER*n,其中n 表示byte數(shù),來(lái)表示數(shù)據(jù)規(guī)模。HOLLERITH每個(gè) Hollerith 字符 1byte (8 bits)Hollerith 常量。頁(yè)碼,8/295.4 FORTRAN數(shù)據(jù)類型描述的四個(gè)基本屬性一個(gè)數(shù)據(jù)如何才是被完備描述了,以及FORTRAN所要求的描述一個(gè)數(shù)據(jù)的要素是哪些,是一個(gè)問(wèn)題的兩面。這個(gè)問(wèn)題對(duì)于程序的作者是很重要的,因?yàn)镕ORTRAN現(xiàn)在允許用戶自己定義合乎自己需要的派生數(shù)據(jù)類型,這就要求知道一個(gè)派生數(shù)據(jù)類型的定義是否完備。FORTRAN的數(shù)據(jù)類型必須包含如下四個(gè)部分:數(shù)據(jù)類型的名稱數(shù)據(jù)取值的集合可以施加于數(shù)據(jù)的值的運(yùn)算該數(shù)據(jù)類型
34、的常量的表示形式5.4.1數(shù)據(jù)類型的名稱要能夠說(shuō)明數(shù)據(jù)的類型所屬,首先每種數(shù)據(jù)類型本身得有個(gè)名稱,才能在描述數(shù)據(jù)對(duì)象的時(shí)候,說(shuō)某個(gè)數(shù)據(jù)對(duì)象屬于某個(gè)數(shù)據(jù)類型。固有數(shù)據(jù)類型就只有5種,它們的名稱:是語(yǔ)言標(biāo)準(zhǔn)的規(guī)定。EGER,REAL,COMPLEX,LOGICAL,CHARACTER但派生數(shù)據(jù)類型則完全是程序作者自定義的,因此必須由作者使用TYPE來(lái)給出其構(gòu)造的派生數(shù)據(jù)類型的名稱,也就是說(shuō)只要一個(gè)數(shù)據(jù)或一個(gè)變量的取值符合TYPE與END TYPE之間的定義,就被該程序單元識(shí)別為屬于該數(shù)據(jù)類型,就可以應(yīng)用相應(yīng)的運(yùn)算。如果一個(gè)程序單元里出現(xiàn)的數(shù)據(jù)不能被識(shí)別為該程序單元的數(shù)據(jù)里的諸種類型,那么FORTR
35、AN還會(huì)嘗試運(yùn)用式來(lái)試圖確定它的數(shù)據(jù)類型,就是根據(jù)數(shù)據(jù)名稱的第一個(gè)字符來(lái)進(jìn)行判別,這種方式屬于FORTRAN的古老傳統(tǒng),因?yàn)樵缙贔ORTRAN所處理的數(shù)據(jù)類型比較單純,顧可以如此簡(jiǎn)化處理,F(xiàn)ORTRAN90與FORTRAN 95都繼承了這點(diǎn)。5.4.2 數(shù)據(jù)取值的集合對(duì)于每種數(shù)據(jù)類型,存在一個(gè)允許的具體取值的集合。而屬于該數(shù)據(jù)類型的變量的取值范圍必定是在這個(gè)集合內(nèi)。表面看起來(lái)數(shù)據(jù)類型的取值集合都是明確的數(shù)學(xué)意義,但是由于本質(zhì)上計(jì)算機(jī)的任何具體取值,都必須是有限的,因此數(shù)據(jù)類型表面的所謂數(shù)學(xué)涵義并不是很符合實(shí)際的。固然整型必定是取整數(shù)值,但只能取有限的整數(shù)值,而且這個(gè)值還有上限,即一個(gè)整型數(shù)據(jù)能
36、夠取多大的整數(shù)不僅在機(jī)器的硬件方面有制語(yǔ)言的具體實(shí)現(xiàn)上也進(jìn)行了約束。同樣,對(duì)于實(shí)型來(lái)說(shuō),更不可能就是和實(shí)數(shù)集合等價(jià),實(shí)型數(shù)據(jù)的具體取值同樣只能取可有限表示的實(shí)數(shù),即有限小數(shù)。至于某些(如MATHEMATICA)聲稱可以精確的無(wú)理常數(shù),例如常數(shù),實(shí)際上是使用了一個(gè)收斂級(jí)數(shù)來(lái)表達(dá)無(wú)理常數(shù),只有當(dāng)用戶指定有理表示的精度后,計(jì)算機(jī)才對(duì)級(jí)數(shù)做相應(yīng)的截?cái)?,給出相應(yīng)精度的有理表示,而并不是說(shuō)該常數(shù)的無(wú)限位表示完全在計(jì)算機(jī)里面。邏輯型數(shù)據(jù)能夠取得的值的個(gè)數(shù)是完全確定的,即僅有真和假兩個(gè)值(即兩個(gè)元素)。由此可見(jiàn)所有邏輯型變量都是某種判斷,而對(duì)該判斷的取值只能或真或假,這里實(shí)際上就規(guī)定了FORTRAN語(yǔ)言只能用
37、來(lái)表述滿足排中律的數(shù)學(xué)。對(duì)于整型和實(shí)型來(lái)說(shuō),既然只可能取有限值,那么剩下就是如何給某個(gè)具體取值分配空間了,由于程序單元是根據(jù)數(shù)據(jù)當(dāng)中對(duì)數(shù)據(jù)取值的規(guī)劃來(lái)確定如何為數(shù)值分配空間的,因此對(duì)于具有極大處理能力的現(xiàn)代計(jì)算機(jī)而言,最好針對(duì)數(shù)值占用空間的大小進(jìn)行分級(jí),以做到在保證數(shù)值表達(dá)需求的前提下,盡量避免空間的浪費(fèi)。FORTRAN為了給數(shù)值占用空間的大小分級(jí),引入了種別參數(shù)(K1ND),使得在數(shù)據(jù)的時(shí)候,就可以一致地規(guī)定該類數(shù)據(jù)在表達(dá)時(shí),允2006-1-5頁(yè)碼,9/29許占用空間的大小。例如整型除了默認(rèn)表示之外,還可以標(biāo)志以種別參數(shù)“SHORT”,這個(gè)參數(shù)意味著在整型的默認(rèn)取值范圍了劃出了一個(gè)子集,只要
38、是屬于這個(gè)子集的數(shù)據(jù),允許系統(tǒng)給它分配較為小的,但更為合算的間。空對(duì)于實(shí)型來(lái)所,則完全可以根據(jù)算法的需要,在開(kāi)始的數(shù)據(jù)里,就給程序單元里可能出現(xiàn)的數(shù)據(jù)劃出三流九等,使得程序?qū)臻g的占用更為合理。當(dāng)然FORTRAN語(yǔ)言標(biāo)準(zhǔn)只是規(guī)定了實(shí)型必須至少在默認(rèn)精度種別之外,還需要有一個(gè)雙精度種別,而在FORTRAN的各種編譯實(shí)現(xiàn)里,還可以規(guī)定精度種別。的對(duì)于字符型數(shù)據(jù)來(lái)說(shuō),它的個(gè)數(shù),就可以一致地得到其空間完全和字符串長(zhǎng)度成正比,因此只要直接規(guī)定字符串的字符空間分配標(biāo)準(zhǔn)。至于復(fù)型和派生類型,則完全以其他數(shù)據(jù)類型作為成員,自身沒(méi)有獨(dú)特的針對(duì)這兩種數(shù)據(jù)類型的種別參數(shù)。特別的規(guī)定,因此也就沒(méi)顯然,F(xiàn)ORTRAN通
39、過(guò)運(yùn)用種別參數(shù)來(lái)明確地規(guī)定數(shù)據(jù)的表示,使得Fortran的標(biāo)準(zhǔn)化程度得到了進(jìn)一步提高,從而提高了程序的可移植性。5.4.3 數(shù)據(jù)類型的合法運(yùn)算允許施加于數(shù)據(jù)的運(yùn)算同樣可以分為兩類,即與固有數(shù)據(jù)類型相應(yīng)的固有運(yùn)算,還有自定義運(yùn)算。由于在FORTRAN里面,運(yùn)算的主要語(yǔ)的章節(jié)。能是表達(dá)式,因此詳細(xì)的關(guān)于運(yùn)算的,參見(jiàn)有關(guān)表達(dá)式1. 固有運(yùn)算固有運(yùn)算就是固有數(shù)據(jù)類型在FORTRAN里面指定了表示符從而可以直接的那些固有運(yùn)算,根據(jù)運(yùn)算所能施加的算術(shù)運(yùn)算串聯(lián)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算簡(jiǎn)述如下:算術(shù)運(yùn)算據(jù)的不同,一共分為四類:針對(duì)三種數(shù)值型數(shù)據(jù),可以直接7種固有的算術(shù)運(yùn)算:2種一元運(yùn)算:求反運(yùn)算,其運(yùn)算符為-;求
40、同運(yùn)算,其運(yùn)算符為+。這兩種一元運(yùn)算可以施加于任意數(shù)值型數(shù)據(jù)和種別參數(shù)的組合,其運(yùn)算結(jié)果的數(shù)據(jù)類型與種別參數(shù)和的數(shù)據(jù)類型和種別參數(shù)保持一致。5種二元運(yùn)算是:加法運(yùn)算,其運(yùn)算符為+;減法運(yùn)算,其運(yùn)算符為-;乘法運(yùn)算,其運(yùn)算符為*;除法運(yùn)算,其運(yùn)算符為;乘冪運(yùn)算,其運(yùn)算符為*。這5種運(yùn)算的兩個(gè)如果參與運(yùn)算的兩個(gè)可以是數(shù)值型數(shù)據(jù)的任意數(shù)據(jù)類型與任意種別參數(shù)的任意組合。不是同一個(gè)類型或種別參數(shù)不同,那么FORTRAN如何決定結(jié)果的數(shù)據(jù)類型或種別參數(shù)呢?基本的原則就是向需要空間大的操作數(shù)看齊,以免損失的信息。具體地說(shuō),就2006-1-5頁(yè)碼,10/29是:若兩個(gè)數(shù)。若兩個(gè)是相同類型和相同種別參數(shù),則運(yùn)算
41、結(jié)果的類型與種別參數(shù)就是的類型與種別參都是整型但種別參數(shù)不同,則運(yùn)算結(jié)果的種別參數(shù)是取十進(jìn)制冪范圍大的那個(gè)的種別參數(shù);若范圍一樣大,則由系統(tǒng)決定。當(dāng)一個(gè)是整型、另一是實(shí)型或復(fù)型,則運(yùn)算結(jié)果的種別參數(shù)就取那個(gè)實(shí)型或復(fù)型的的種別參數(shù)。若兩個(gè)屬于不同種別參數(shù)的實(shí)型或復(fù)型數(shù)據(jù),則運(yùn)算結(jié)果的種別參數(shù)取十進(jìn)制精度高的那個(gè)的種別參數(shù);若精度一樣,則由系統(tǒng)決定取舍。規(guī)定了運(yùn)算結(jié)果的屬性,具體的值就是通常的算術(shù)運(yùn)算的結(jié)果,即加法為兩個(gè)減法為兩個(gè)乘法為兩個(gè)除法為兩個(gè)之和;之差;之積;之商,如果兩個(gè)都是整型數(shù)據(jù),它們相除時(shí)稱為整除,其結(jié)果商就是首先進(jìn)行算術(shù)上的除法運(yùn)算,得到的商去掉小數(shù)部分,取得的整數(shù)值即為整除的結(jié)
42、果。這是為了滿足上面關(guān)于保持類型一致性的規(guī)則。例如:99/100的值為0;(-99)/100的值為0;58/3的值為19;(-58)/3的值為-19。乘冪為以第一個(gè)串聯(lián)運(yùn)算為底,第二個(gè)為指數(shù)的乘冪值。針對(duì)相同種別參數(shù)的字符型數(shù)據(jù)定義了串聯(lián)運(yùn)算,其運(yùn)算符是/。串聯(lián)運(yùn)算的結(jié)果為保持種別參數(shù)不變的字符型數(shù)據(jù)。運(yùn)算結(jié)果的值為第一的字符值,在右邊緊接第二個(gè)的字符值。例如:ABC/RTY的值為ABCRTY關(guān)系運(yùn)算關(guān)系運(yùn)算是分別針對(duì)整型、實(shí)型、復(fù)型和字符型數(shù)據(jù)來(lái)定義的二元運(yùn)算。關(guān)系運(yùn)算的結(jié)果為邏輯型數(shù)據(jù),即只能取.TRUE.和.FALSE.兩個(gè)值之一。FORTRAN 95定義了六種固有關(guān)系運(yùn)算,這六種固有關(guān)
43、系運(yùn)算根據(jù)其可以施加的操作數(shù)的不同,又可以分為兩類:可以施加于除復(fù)型之外的數(shù)值類型,種別參數(shù)以及字符型的第一類:大于,其運(yùn)算符為.GT.,或;大于等于,其運(yùn)算符為.GE.,或=;小于,其運(yùn)算符為.LT.,或;小于等于,其運(yùn)算符為.LE.,或=;可以施加于所有數(shù)值型與字符型的第二類:等于,其運(yùn)算符為.EQ.,或=;不等于,其運(yùn)算符為.NE.,或/=。對(duì)于數(shù)值型數(shù)據(jù)來(lái)說(shuō),關(guān)系運(yùn)算具有通常的涵義,并且兩個(gè)參數(shù)的組合。當(dāng)然只有復(fù)型不能比較大小,而只能比較是否相等。對(duì)于字符數(shù)據(jù)來(lái)說(shuō),關(guān)系運(yùn)算具有獨(dú)特的涵義??梢允侨我獾臄?shù)值型類型與任意種別首先要求兩個(gè)為執(zhí)行下列幾個(gè)步驟:具有相同的種別類型參數(shù),但是可以具
44、有任意的長(zhǎng)度。其關(guān)系運(yùn)算的執(zhí)行可以理解(1)首先使兩個(gè)作為以空格字符填充,直到兩個(gè)的字符串的字符長(zhǎng)度變?yōu)橐恢?,如果相?duì)來(lái)說(shuō)有個(gè)字符的長(zhǎng)度較短,就在右邊長(zhǎng)度相同為止。(2)然后對(duì)兩個(gè)按字符位置從左邊第一個(gè)字符開(kāi)始逐個(gè)進(jìn)行比較判別,直到足夠判別關(guān)系是否成立2006-1-5頁(yè)碼,11/29為止。(3)而字符的比較是按字符在字符集中排列序列的位置的先后來(lái)進(jìn)行的:若字符1在字符2之前,則認(rèn)為滿足小于關(guān)系,小于等于關(guān)系和不等于關(guān)系;若字符1在字符2之后,則認(rèn)為滿足大于關(guān)系,大于等于關(guān)系和不等于關(guān)系;如果位置相同,即為同一個(gè)字符,則認(rèn)為滿足等于關(guān)系。所有空串都是相等的。等于關(guān)系和不等于關(guān)系的運(yùn)算結(jié)果與字符集
45、序列無(wú)關(guān),而其它四種關(guān)系的運(yùn)算結(jié)果是依賴于字符集排列序列的。由于ASCII的排列序列對(duì)于任何系統(tǒng)都是一致的,所以一般而言可移植性是能得到保證的。如果參與運(yùn)算的默認(rèn)字符數(shù)據(jù)值全是字母或全是數(shù)字,則按語(yǔ)言的規(guī)定,其順序是嚴(yán)格確定的;如果參與運(yùn)算的默認(rèn)字符數(shù)據(jù)值參雜了字母與數(shù)字,則把其中的數(shù)字看成字符,而排序則依賴于系統(tǒng)的具體規(guī)定。所以在使用時(shí)要注意這點(diǎn)。如果參與運(yùn)算的字符數(shù)據(jù)值包含了非默認(rèn)的字符型數(shù)據(jù),則同樣依賴于系統(tǒng)的規(guī)定。邏輯運(yùn)算針對(duì)任意種別參數(shù)的邏輯型數(shù)據(jù)定義五種邏輯運(yùn)算。知道數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)進(jìn)行關(guān)系運(yùn)算后的結(jié)果是邏輯型數(shù)據(jù),此外還 可以根據(jù)算法的需要自定義邏輯型數(shù)據(jù),邏輯運(yùn)算就是施加
46、于邏輯型數(shù)據(jù),而得到邏輯型數(shù)據(jù)值的運(yùn)算。根據(jù)的數(shù)目,邏輯運(yùn)算包含兩種,其中一元運(yùn)算為:非運(yùn)算,運(yùn)算符為.NOT.;非運(yùn)算的運(yùn)算結(jié)果定義如下表5-2:表5-2非運(yùn)算的運(yùn)算結(jié)果.NOT.的.TRUE.FALSE.二元運(yùn)算包括:與運(yùn)算,運(yùn)算符為.AND.;或運(yùn)算,運(yùn)算符為.OR.;邏輯等價(jià)運(yùn)算,運(yùn)算符為.EQV.;邏輯不等價(jià)運(yùn)算,運(yùn)算符為.NEQV.;各運(yùn)算的結(jié)果定義如下列各表:表5-3 與運(yùn)算的運(yùn)算A.AND.BAB表5-4 或運(yùn)算的運(yùn)算A.OR.BAB2006-1-5.TRUE.FALSE.A.TRUE.TRUE.TRUE.TRUE.FALSE.A.TRUE.TRUE.FALSE.B.FALSE
47、.FALSE.FALSE.NOT.的運(yùn)算值.FALSE.TRUE.頁(yè)碼,12/29表5-5 邏輯等價(jià)運(yùn)算的運(yùn)算A.EQV.BAB表5-6 邏輯不等價(jià)運(yùn)算的運(yùn)算A.NEQV.BAB邏輯運(yùn)算的結(jié)果的種別參數(shù)的約定:當(dāng)兩個(gè)的種別參數(shù)相同時(shí),則結(jié)果的種別參數(shù)與的相同;當(dāng)兩個(gè)的種別參數(shù)不同時(shí),則結(jié)果的種別參數(shù)依賴于系統(tǒng)的約定。2. 自定義運(yùn)算由于上面列出的固有運(yùn)算,并不能滿足在構(gòu)造表達(dá)式時(shí)對(duì)運(yùn)算的全部需求。顯然,要使得語(yǔ)言具有開(kāi)放性,就不可能期望通過(guò)指定有限的對(duì)象來(lái)概括任意需求,因此必然需要制定一個(gè)構(gòu)造規(guī)則,以便允許程序作者自定義運(yùn)算。所謂自定義運(yùn)算就是需要程序作者根據(jù)算法的需要自己來(lái)定義的運(yùn)算。從語(yǔ)法
48、的角度來(lái)講,一個(gè)運(yùn)算的定義包括三個(gè)部分:符號(hào)的表示;所謂符號(hào)的表示就是給出運(yùn)算的名稱,命名規(guī)則為一個(gè)字符串的左右分別加一個(gè)小數(shù)點(diǎn)(句點(diǎn))?!纠?-3】.REMAINDER.REVERSE.EGRAL.固有運(yùn)算的表示符號(hào)除了通常的數(shù)學(xué)表示符號(hào)之外,同時(shí)還有一套等價(jià)的字符串加左右句點(diǎn)的表示方法,這就和自定義運(yùn)算的符號(hào)表示起來(lái)了。這樣做的好處就是可以用符號(hào)串直接作為文字來(lái)表示運(yùn)算的涵義,(例如上面的三個(gè)名稱就可以用來(lái)表示求余,反號(hào),求積分這三種運(yùn)算),從而便于程序的寫(xiě)作和閱讀。這是一個(gè)值得遵循的良好的寫(xiě)作風(fēng)格。運(yùn)用固有運(yùn)算的組合給出的自定義運(yùn)算的定義; 自定義運(yùn)算的定義是通過(guò)函數(shù)用OPERATOR來(lái)
49、完成的,具體的說(shuō)明見(jiàn)有關(guān)過(guò)程的章節(jié)。自定義運(yùn)算的集合的描述。 數(shù)學(xué)上定義一個(gè)函數(shù),必定要函數(shù)的定義域,同樣一種自定義的運(yùn)算也需要指定能夠施加于其上的的范圍,這里包括如下幾種情況:定義在某個(gè)固有數(shù)據(jù)類型的真子集上;如果對(duì)一個(gè)固有運(yùn)算也做這樣的限制,那么就把這個(gè)固有運(yùn)算看成自定義運(yùn)算了。定義在不止一個(gè)固有數(shù)據(jù)類型上,例如數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)的某種組合上;可以針對(duì)某個(gè)固有運(yùn)算做這樣的擴(kuò)展,同樣視之為自定義運(yùn)算。定義在派生數(shù)據(jù)類型上;這樣得首先定義該派生數(shù)據(jù)類型。2006-1-5.TRUE.FALSE.A.TRUE.FALSE.TRUE.B.FALSE.TRUE.FALSE.TRUE.FALSE.A
50、.TRUE.TRUE.FALSE.B.FALSE.FALSE.TRUE.B.FALSE.TRUE.FALSE.頁(yè)碼,13/29 定義在上述任意情形的組合而成的集合上。5.4.4 數(shù)據(jù)類型的常量的表示形式數(shù)據(jù)在程序當(dāng)中的行為,除了以指定數(shù)據(jù)類型的變量形式出現(xiàn)之外,還有就是以常量形式出現(xiàn),也就是給出某個(gè)數(shù)據(jù)類型的具體取值的形式。因此對(duì)于數(shù)據(jù)類型的說(shuō)明,還包括給出該數(shù)據(jù)類型的常量的書(shū)寫(xiě)語(yǔ)法?!纠?-4】 下面給出每一種數(shù)據(jù)類型的說(shuō)明常量的例子:例子數(shù)據(jù)類型例子的取值345713.2或7.132E2 (2.77,5.38).TRUE.“SPACE_A”EGER 345REAL713.2COMPLEX
51、2.77+5.38i LOGICAL TRUECHARACTER SPACE_ASLE(1.582,(3.2,5.5),”CHENG”) 派生類型SLE(1.582,3.2+5.5i,”CHENG”)可以看出,對(duì)于數(shù)值型數(shù)據(jù),直接給出常量數(shù)據(jù),就可以了,而對(duì)于字符型數(shù)據(jù)則需要寫(xiě)在定界符里面,對(duì)于派生類型則需要遵循派生數(shù)據(jù)類型的說(shuō)明語(yǔ)法。當(dāng)然一個(gè)數(shù)據(jù)類型里的常量同樣具有種別參數(shù)的屬性,只要給出的常量不是屬于默認(rèn)的種別,就需要給常量加上種別參數(shù),而種別參數(shù)有兩種情況:一種是采用整數(shù),由于不同的編譯器對(duì)于這些整數(shù)的具體解釋有可能是不同的,因此會(huì)妨礙程序的可移植性;一種是采用命名常量來(lái)作為種別參數(shù),那
52、么只要這些命名常量一直被使用,就能保證對(duì)它的解釋的一致性?!纠?-5】類型例子EGER REAL COMPLEX LOGICALCHARACTER2_SHORT3.14159267895632_QUAD (3.14159_HIGH, 56.2).TRUE._BYTECHI_”例子”例子里SHORT,QUAD,HIGH,BYTE,CHI都是命名常量。對(duì)于整型,實(shí)型,復(fù)型和邏輯型來(lái)說(shuō),種別參數(shù)寫(xiě)在數(shù)據(jù)的右邊,以下劃線隔開(kāi),而字符型則是寫(xiě)在數(shù)據(jù)的左邊,同樣以下劃線隔開(kāi)。5.5 數(shù)據(jù)的基本類型:固有數(shù)據(jù)類型對(duì)于計(jì)算機(jī)來(lái)說(shuō),數(shù)據(jù)的意義無(wú)非就是要知道在空間為一個(gè)特定的數(shù)據(jù)劃出多大的空間來(lái)裝載它,然后才談得
53、上給每一個(gè)數(shù)據(jù)編制地址,從而隨時(shí)可以對(duì)數(shù)據(jù)進(jìn)行讀入讀出操作。確定數(shù)據(jù)占用空間大小的自然方式就是地給一類數(shù)據(jù)指定固定的模式,這就是FORTRAN早期的做法,即整型,實(shí)型,邏輯型地用一個(gè)數(shù)值來(lái),而雙精度實(shí)型與復(fù)型則采用兩個(gè)數(shù)值來(lái),字符型數(shù)據(jù)則采用一個(gè)字符來(lái)。由于數(shù)值與字符具有不一樣的情況,因此這兩種不過(guò)語(yǔ)言的進(jìn)步,單元的字節(jié)數(shù)大小不一樣。說(shuō)是算法的進(jìn)步,要求語(yǔ)言能夠提供更加靈活的模式的可選擇性,這就是FORTRAN90引進(jìn)的種別參數(shù),這樣就擴(kuò)充了固有數(shù)據(jù)類型的模式。同時(shí)為了使得程序能夠與舊的標(biāo)2006-1-5頁(yè)碼,14/29準(zhǔn)兼容,一般采取在默認(rèn)的情況下采取舊的模式,而需要擴(kuò)充時(shí),則額外加上種別參
54、數(shù)。數(shù)據(jù)的模式是通過(guò)對(duì)數(shù)據(jù)進(jìn)行來(lái)指定的。詳盡的語(yǔ)句的使用參見(jiàn)數(shù)據(jù)的,不過(guò)下面給出描述各個(gè)數(shù)據(jù)類型的四個(gè)基本屬性的詞法與句法,以備尋檢。5.5.1 整型何謂FORTRAN里的整數(shù)?數(shù)學(xué)上的整數(shù)用整型數(shù)據(jù)來(lái)表示。而所謂整數(shù),具體表示出來(lái),在數(shù)學(xué)上一般的表示形式如下:li s wrk 1 。kk 1其中:i 是一個(gè)任意的整數(shù)。s 表示正負(fù)符號(hào)(可以取+1或-1)。l 是一個(gè)正整數(shù),表示i的位數(shù),即表示i需要多少個(gè)數(shù)字。r 是一個(gè)大于1的正整數(shù),表示i的進(jìn)制的基數(shù),即逢r進(jìn)一位的意思。wk 是一個(gè)小于r的非負(fù)整數(shù),表示了i的每一位的值。例如一個(gè)形如-41的整數(shù),也可以表示為二進(jìn)制形式-0101001,
55、因?yàn)橛校?1) (0 26 1 25 0 24 1 23 0 22 0 21 1 20 )要完全 的4描1述整數(shù)i,顯然s,l,r,wk(k=1,2,l)這些數(shù)值都是必須提供的。例如給出十進(jìn)制整數(shù)-41,實(shí)際上也就是提供了s=-1;l=2;r=10;w1=1;w2=4這一套完整的信息。不過(guò)如果的目的是描述一個(gè)取整數(shù)值的變量n的數(shù)據(jù)類型,顯然s和wk(k=1,2,l)都無(wú)須給出,而整型數(shù)據(jù)的分類都是圍繞l和r來(lái)進(jìn)行的?!纠?-6】 下面的帶種別參數(shù)的整型數(shù)據(jù)的語(yǔ)句:EGER(4) i實(shí)際上表示的是如下形式的整數(shù):31i s w 2k 1k也就是取l=3k1和1 r=2。下面就給出說(shuō)明整型數(shù)據(jù)的四
56、個(gè)基本屬性的方式與相關(guān)功能函數(shù)1. 整型的名稱整型的名稱就是EGER。也可以說(shuō)就是整型數(shù)據(jù)類型的語(yǔ)句的。一個(gè)數(shù)據(jù)對(duì)象屬于整型數(shù)據(jù)的基本語(yǔ)句句法為:EGER ( KIND = kind-parameter) , attribuist : entity-list【例5-7】 以下這些語(yǔ)句主要是明數(shù)據(jù)項(xiàng):EGER XEGER DIMEN(:), POER : days, hoursEGER(SHORT)RED_BALLEGER(2) POER : k, limitEGER(1) DIMEN(10) : min2006-1-5頁(yè)碼,15/29【例5-8】 以下這些語(yǔ)句主要是明數(shù)據(jù)的屬性:EGER da
57、ys, hoursEGER(2) k, limit EGER(1) minDIMENdays(:), hours(:), min (10)POER days, hours, k, limit整型數(shù)據(jù)也可用于【例5-9】某個(gè)變量為整型也可以一個(gè)條件語(yǔ)句。EGER I, X READ (*,*) I IF (I) THENX = 1END IF2. 整型數(shù)據(jù)的取值取值為整數(shù)值的數(shù)據(jù)對(duì)象被定義為整型數(shù)據(jù)對(duì)象。值得注意的是整型數(shù)據(jù)的取值范圍,無(wú)論如何都只能是整數(shù)集合的一個(gè)真子集,因?yàn)橛?jì)算機(jī)所能表示出來(lái)的整數(shù)的大小是受到一個(gè)有限數(shù)值的限制的。至于某一個(gè)具體的編譯器能夠表示的最大的數(shù)值是多少,并不是的,需
58、要具體的依據(jù)編譯器的約定,當(dāng)然只有在需要考慮有可能取非常大的數(shù)值時(shí),才會(huì)注意到系統(tǒng)的這方面的限制。更具體地考慮一下,當(dāng)要定義一個(gè)整型變量的時(shí)候,不止是需要考慮它是否可能取非常大的數(shù)值,更重要的是要在滿足算法的數(shù)據(jù)精度要求與節(jié)約機(jī)器的內(nèi)存空間之間取得某種折中。因?yàn)楸M管語(yǔ)言標(biāo)準(zhǔn)只要求編譯器提供整數(shù)的一種標(biāo)準(zhǔn),但是現(xiàn)在一般的編譯器都能提供多種模式,針對(duì)算法的具體情況,程序作者就可以選擇不同的數(shù)據(jù)模式,來(lái)獲得高效的程序。FORTRAN 語(yǔ)言可以很方便地描述數(shù)據(jù)對(duì)象的具體的模式,那就是種別參數(shù),實(shí)際上對(duì)于FORTRAN 來(lái)說(shuō),每一個(gè)數(shù)據(jù)總是認(rèn)為它不僅屬于一個(gè)數(shù)據(jù)類型,進(jìn)一步還屬于該數(shù)據(jù)類型的某個(gè)種別,在
59、種別參數(shù)沒(méi)有表達(dá)出來(lái)的時(shí)候,就會(huì)賦予默認(rèn)的種別參數(shù)值。由于FORTRAN標(biāo)準(zhǔn)只是規(guī)范了固有數(shù)據(jù)類型的定義,對(duì)于每一個(gè)固有數(shù)據(jù)類型所定義的各個(gè)種別的具體模式,則一般由具體的編譯系統(tǒng)來(lái)約定,因?yàn)榻o具有不同字長(zhǎng)的數(shù)據(jù)規(guī)定適當(dāng)?shù)目臻g,得依據(jù)系統(tǒng)不同具體情況來(lái)確定。FORTRAN提供了三個(gè)固有函數(shù),可以用于查詢具體的某個(gè)系統(tǒng)對(duì)整型數(shù)據(jù)的KINDRANGE模式的設(shè)置: SELECTED_固有函數(shù)KIND_KIND這個(gè)函數(shù)能夠給出任意屬于固有數(shù)據(jù)類型的數(shù)據(jù)對(duì)象的種別參數(shù)句法:result = KIND (x)輸入x,可以是任意屬于固有數(shù)據(jù)類型的數(shù)據(jù)對(duì)象,如變量或常量。輸出為一個(gè)屬于默認(rèn)整型數(shù)據(jù)的標(biāo)量,就是x
60、的種別參數(shù)值?!纠?-10】KIND (0)為默認(rèn)整型的種別參數(shù)值; KIND (12)同樣為默認(rèn)整型的種別參數(shù)值;2006-1-5頁(yè)碼,16/29固有查詢函數(shù)RANGE這個(gè)函數(shù)能夠給出數(shù)據(jù)用十進(jìn)制表示時(shí)的冪次范圍。一般句法為:result = RANGE (x)輸入x是數(shù)值型數(shù)據(jù)。輸出為一個(gè)屬于默認(rèn)整型數(shù)據(jù)的標(biāo)量,表示數(shù)據(jù)用十進(jìn)制表示時(shí)的冪次范圍。由于機(jī)器的模式是以二進(jìn)制的位數(shù)為的,因此這個(gè)函數(shù)的作用就在于把二進(jìn)制的冪次范圍轉(zhuǎn)換為十進(jìn)制的冪次范圍。對(duì)于一個(gè)整型變量,輸出值為(LOG10( HUGE(x) )。對(duì)于一個(gè)實(shí)型或復(fù)型變量,輸出值為-LOG10( TINY(x) ).【例5-11】(
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《藥品市場(chǎng)營(yíng)銷學(xué)》課程標(biāo)準(zhǔn)
- 農(nóng)莊轉(zhuǎn)讓帳篷合同范本
- 化肥區(qū)域授權(quán)合同范本
- 上海電子營(yíng)銷咨詢合同范例
- 余姚市房地產(chǎn)經(jīng)紀(jì)合同范本
- 接觸網(wǎng)中級(jí)工題庫(kù)與參考答案
- 化工總控工高級(jí)測(cè)試題及參考答案
- 道路交通安全模擬試題含參考答案
- 個(gè)人安全與社會(huì)責(zé)任心得體會(huì)
- 公司收購(gòu)資產(chǎn)合同范本
- 全國(guó)2018年10月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 《又見(jiàn)平遙》課件
- 噴涂設(shè)備點(diǎn)檢表
- GB/T 2831-2009光學(xué)零件的面形偏差
- 廣東省佛山市《綜合基礎(chǔ)知識(shí)》事業(yè)單位國(guó)考真題
- 02 第2章 城市與城市化-城市管理學(xué)
- 六年級(jí)上冊(cè)英語(yǔ)教案-Culture 2 Going Green 第二課時(shí) 廣東開(kāi)心英語(yǔ)
- 警察叔叔是怎樣破案的演示文稿課件
- 2019石景山初三一模語(yǔ)文試題及答案
- 09式 新擒敵拳 教學(xué)教案 教學(xué)法 圖解
- CAD術(shù)語(yǔ)對(duì)照表
評(píng)論
0/150
提交評(píng)論