第2章 fortran95程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
第2章 fortran95程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
第2章 fortran95程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
第2章 fortran95程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
第2章 fortran95程序設(shè)計(jì)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)基礎(chǔ) Fortran 95,第二章 Fortran95 程序設(shè)計(jì)基礎(chǔ),本章將介紹:,字符集、標(biāo)識(shí)符和關(guān)鍵字 程序的書寫格式 數(shù)據(jù)類型 常量和變量 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 標(biāo)準(zhǔn)函數(shù),了解字符集、標(biāo)識(shí)符和關(guān)鍵字 了解程序的固定書寫格式 掌握程序的自由書寫格式 掌握五種內(nèi)部數(shù)據(jù)類型的表示及存儲(chǔ)方式 掌握五種內(nèi)部數(shù)據(jù)類型常量的合法表示方式 掌握變量的表示形式和變量的三種定義方法。 掌握算術(shù)運(yùn)算符和算術(shù)表達(dá)式的運(yùn)算順序 了解標(biāo)準(zhǔn)函數(shù),并掌握部分常用的標(biāo)準(zhǔn)函數(shù)。,學(xué)習(xí)目標(biāo):,Fortran95的字符集,字符集就是編寫源程序時(shí)能夠使用的全部字符及符號(hào)的集合。包括:,(1)英文字母a-z及A-Z (2

2、)阿拉伯?dāng)?shù)字0-9 (3)22個(gè)特殊字符 = + - * / ( ) , . : “ ! ; % Y=-467.0; Z=X+Y,自由格式,(3)當(dāng)一個(gè)語(yǔ)句比較長(zhǎng)時(shí),在一行中的132列中書寫不完時(shí),允許有續(xù)行。如有續(xù)行,需要使用續(xù)行標(biāo)志符“&”實(shí)現(xiàn)。續(xù)行標(biāo)志符“&”出現(xiàn)在前一行的末尾。 例如: Y=exp(-0.5*x)*cos(x+3.14258/3)+exp(0.5*x)*& sin(x+3.14258/3)+120*log(1+sqrt(1-x*x),自由格式,如果把一個(gè)語(yǔ)句名或函數(shù)名等具有特定意義的字符分成兩行,那么除在本行行末加續(xù)行標(biāo)志符外,還要在下一行的開(kāi)頭再加一個(gè)續(xù)行標(biāo)志符。例如

3、: Y= COS(ATAN(SQRT(X*3+Y*3)/(X*2+1)+CO& &S(X*Y/(SQRT(X*2+Y*2)& +EXP(A*X*2+B*X+C),特殊情況:,(4)用!作為注釋符,!可以寫在一行中的任一位置。注釋總是延伸至程序行的結(jié)束,所以在同一行的不同語(yǔ)句之間不能插入注釋。,Fortran 95程序的書寫格式自由格式,一個(gè)程序中,數(shù)據(jù)是程序加工處理的對(duì)象,而通過(guò)語(yǔ)句描述了對(duì)數(shù)據(jù)的具體操作。,不同類型的數(shù)據(jù)具有不同的特性,在計(jì)算機(jī)內(nèi)存中占有不同的存儲(chǔ)長(zhǎng)度,存儲(chǔ)的方式不同,具有不同類型的運(yùn)算。,Fortran 95的數(shù)據(jù)類型,Fortran 95的數(shù)據(jù)類型,整數(shù)類型(intege

4、r),長(zhǎng)整型 短整型,整型數(shù)據(jù)包括正整數(shù)、負(fù)整數(shù)和零。 在計(jì)算機(jī)中整數(shù)的取值范圍受限于及其所能表示的范圍,由其類型決定.,整數(shù)類型(integer),超出此范圍,則會(huì)發(fā)生溢出錯(cuò)誤。,表2.2 整數(shù)的存儲(chǔ)空間及取值范圍,實(shí)數(shù)類型(real),實(shí)數(shù)又稱為浮點(diǎn)數(shù)(floating-point number)。 實(shí)行數(shù)據(jù)有兩種類型: 單精度型 雙精度型。 數(shù)值都是近似值,而且有誤差累計(jì)。 實(shí)型數(shù)兩種表示形式:十進(jìn)制小數(shù)形式和指數(shù)形式 如:312.0、3.12e+2或0.312E3都代表3.12102。 注意: 指數(shù)部分必須是整數(shù)(若為正整數(shù)時(shí),可以省略“+”號(hào)),雙精度類型,即以兩倍的單精度的存儲(chǔ)空間

5、大小來(lái)存放數(shù)據(jù),減小累計(jì)的截?cái)嗾`差,大幅度提高計(jì)算的精度。,實(shí)數(shù)類型(real),表2.3 實(shí)數(shù)的存儲(chǔ)空間、精度及取值范圍,復(fù)數(shù)類型(complex),復(fù)數(shù)就是以 a+bi形式來(lái)表示的數(shù)值。 其中的a、b值是兩個(gè)實(shí)型數(shù)。 兩種類型: 單精度型復(fù)數(shù)和雙精度型復(fù)數(shù)。 復(fù)數(shù)的表示形式: (a,b) 如(1.2,3.5),表示復(fù)數(shù)1.2+3.5i。,Fortran是目前唯一提供復(fù)型數(shù)據(jù)類型的計(jì)算機(jī)常用語(yǔ)言。,字符類型 (character),計(jì)算機(jī)除了存儲(chǔ)數(shù)值型數(shù)據(jù)之外,也可以在內(nèi)存中存放一段文本。 字符型數(shù)據(jù)的表示形式: 用一對(duì)單引號(hào)或雙引號(hào)括起來(lái)。 如: a “hello!” 只有一個(gè)字母或符號(hào)時(shí)

6、稱為“字符”, 有一連串(多個(gè))的字符時(shí),就稱為“字符串”。,存儲(chǔ)1個(gè)字符需要1個(gè)字節(jié)的存儲(chǔ)空間 存儲(chǔ)n個(gè)字符長(zhǎng)度的字符串則需要n個(gè)字節(jié)的存儲(chǔ)空間,字符類型 (character),字符類型可以表示的東西非常廣,從鍵盤輸入的任何內(nèi)容,不論是數(shù)字、字母、文本或任何特殊符號(hào)都可以。 教材附錄A的ASCII字符集里的字符就是這個(gè)類型所能表示的所有字符。,邏輯類型 (logical),表示邏輯判斷的結(jié)果 ,只能有兩種值: “是”(true) “否”(false) 也可以翻譯成“對(duì)”、“錯(cuò)”,或 “真”、“假”等等。,數(shù)據(jù)類型只是數(shù)據(jù)的形式化和抽象化描述,它說(shuō)明一類數(shù)據(jù)的共同性質(zhì),而不是具體的數(shù)據(jù)對(duì)象。

7、程序處理的數(shù)據(jù)必須是具體的數(shù)據(jù)對(duì)象,一個(gè)數(shù)據(jù)對(duì)象可以是常量、變量、數(shù)組或指針等,用戶根據(jù)具體問(wèn)題的需要定義數(shù)據(jù)對(duì)象的數(shù)據(jù)類型。,小結(jié),常量,常量是在程序中直接生成并直接用于計(jì)算和處理,且在程序運(yùn)行期間保持不變的數(shù)據(jù)。 例如:15、0、-21、.1416、256_2、(10.2,5.3) 、 fortran、”student”、 .true.,常量無(wú)需類型定義、直接由其表示形式可確定其數(shù)據(jù)類型。 Fortran常量包括前面所介紹的五種內(nèi)部類型常量和一種特殊的常量符號(hào)常量,下面分別介紹它們的表示方法及其注意事項(xiàng)。,整型常量可以表示成十進(jìn)制及2至36進(jìn)位制形式。,整型常量:,(1)十進(jìn)制整數(shù):由09

8、的一系列數(shù)字組成。 例如-215、-16、0、18、24等。 對(duì)于十進(jìn)制整數(shù),通過(guò)整型kind值(類別類型參數(shù))確定整數(shù)的存儲(chǔ)空間大?。ㄗ止?jié)數(shù))和取值范圍。例如-16_2、18_4、5_1 整型kind值有四種(默認(rèn)值為4): 1、2、4、8(僅對(duì)alpha系統(tǒng)有效),(2)2至36進(jìn)位制數(shù):其形式r#數(shù)字。 r前面的符號(hào)代表整數(shù)的正負(fù) r代表進(jìn)位計(jì)數(shù)制中的基數(shù) 其取值范圍是:2r36。 常用的進(jìn)制有:2、8和16進(jìn)制。 缺省值為16。,整型常量,【例2-2】一個(gè)10進(jìn)制整數(shù)3994575的不同進(jìn)位制表達(dá)形式 print *, 2#1111001111001111001111 print *,

9、 7#45644664 print *, +8#17171717 print *, 3994575 print *, #3CF3CF print *, 36#2DM8F end,整型常量,整型常量,程序運(yùn)行結(jié)果:,注意:Fortran95不允許整數(shù)內(nèi)部出現(xiàn)非數(shù)值字符 如“,”、“:”和空格; 正負(fù)號(hào)和數(shù)字之間可以保留空格。,整型常量,【例2-3】判定下列整數(shù)哪些是合法整數(shù)?哪些是非法整數(shù)?說(shuō)明原因。 +0 4654_3 -128 +32769 12.45 134_1 8#79 6 #23 #12A #12_2 1,234 -0 123,456。,整型常量,合法整數(shù)有:+0、-128、+3276

10、9、#12A、-0。 非法整數(shù)有:4654_3(3不是有效的kind值) 12.45(不允許小數(shù)點(diǎn)) 134_1(超出1個(gè)字節(jié)取值范圍) 8#79(8進(jìn)制中不能包含數(shù)字9) 6 #23(不允許出現(xiàn)空格) #12_2(非十進(jìn)制不允許使用kind值) 1,234(不允許出現(xiàn)逗號(hào))。,整型常量,實(shí)型常量有2種表示形式:十進(jìn)制小數(shù)形式和指數(shù)形式。 (1) 十進(jìn)制小數(shù)形式 十進(jìn)制小數(shù)三部分組成整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部分。且必須包含小數(shù)點(diǎn)。例如: +12.5、-13.248、0.243、12.和.123 十進(jìn)制小數(shù)有 3種不同表達(dá)形式: n.m n. .m,實(shí)型常量,n代表整數(shù)部分,m代表小數(shù)部分,不允許

11、出現(xiàn)非數(shù)值字符(如逗號(hào)、頓號(hào)和空格等)。,對(duì)于實(shí)數(shù),通過(guò)實(shí)型kind值確定實(shí)數(shù)的存儲(chǔ)空間大小、取值范圍和最大有效位數(shù)(精度)。 實(shí)型kind值有兩種4、8(缺省值為4)分別表示單精度實(shí)數(shù)和雙精度實(shí)數(shù) 。,實(shí)型常量,【例2-4】 判定下列實(shí)數(shù),哪些是合法實(shí)數(shù)?哪些是非法實(shí)數(shù)?說(shuō)明原因。 +00.0.023.587_4654._5-. -.01200-34.6¥1,234,897.00$125.5。,實(shí)型常量,合法實(shí)數(shù)有:0.0、.0、23.587_4、-.01200。 非法實(shí)數(shù)有:+0(合法整數(shù),沒(méi)有小數(shù)點(diǎn)) 654._5(非法的實(shí)型kind值) -.(小數(shù)點(diǎn)前后不能都沒(méi)有數(shù)字) -34.6¥、

12、1,234,897.00、$125.5(整數(shù)、小數(shù)部分不能有非數(shù)值字符)。,實(shí)型常量,(2)指數(shù)形式 用來(lái)表示一個(gè)絕對(duì)值非常大或非常小的數(shù)。 指數(shù)形式的實(shí)數(shù)三部分組成:有效數(shù)字、E(或e)和指數(shù)。 例如: +0.125E+2、-132.48e-1、243E-3、 .12e+2,1.2e+1 1.32e5表示132000或1.32*105。 1.285E-12表示1.285*10-12。,實(shí)型常量,指數(shù)形式的實(shí)數(shù)有下列四種表達(dá)方式: n.mES n.ES nES .mES,實(shí)型常量,n代表有效數(shù)字的整數(shù)部分,m代表有效數(shù)字的小數(shù)部分,最前面的正負(fù)號(hào)表示數(shù)值的正負(fù)。 字符E后面是指數(shù)部分,正負(fù)號(hào)確

13、定指數(shù)的正負(fù),指數(shù)必須是十進(jìn)制整數(shù),表示10的多少次方。字符E前后均不能為空。有效數(shù)字部分和指數(shù)部分的數(shù)字遵循整數(shù)和小數(shù)形式實(shí)數(shù)的要求。若指數(shù)標(biāo)識(shí)為D或d,則表示該實(shí)數(shù)為雙精度實(shí)數(shù),等價(jià)于kind值為8,但不能指定kind值,即D指數(shù)不允許指定實(shí)型kind值。,指數(shù)形式應(yīng)注意以下事情: 有效數(shù)字可以是整型或?qū)嵭统A?,?E2和1.0E2兩者都表示100.0,它們等價(jià),但它們與100是不等價(jià)的,因?yàn)?00代表一個(gè)整型常量; E前面的數(shù)據(jù)不能省略,E后面的指數(shù)只能是整型常量,如5E3.2,E4.,.E8都是錯(cuò)誤的指數(shù)表示。 若指數(shù)標(biāo)識(shí)為D或d,則表示該實(shí)數(shù)為雙精度實(shí)數(shù),等價(jià)于kind值為8,但不能

14、指定kind值,即d指數(shù)不允許指定實(shí)型kind值。,實(shí)型常量,【例】 判定下列實(shí)數(shù),哪些是合法實(shí)數(shù)?哪些是非法實(shí)數(shù)?說(shuō)明原因。 0E0 0.E0-234E-5_8 23.58E-2.5 9.8E3_31,234,567E-6 .123E-1 12.3E$3¥125.5E001 E+5 - 2.34E24.5 6E2 1.35E+3 11.24E+ 312.5D3415.6D45_8。,實(shí)型常量,合法實(shí)數(shù)有:0E0、0.E0、-234E-5_8、.123E-1、 - 2.34E2、1.35E+3、12.5D34。 非法實(shí)數(shù)有:23.58E-2.5(指數(shù)部分不能為實(shí)數(shù)) 9.8E3_3(非法的實(shí)型

15、KIND值) 1,234,567E-6(不能含非數(shù)值字符) 12.3E$3(不能含非數(shù)值字符) ¥125.5E001(不能含非數(shù)值字符) E+5(E 前面不能為空) 4.5 6E2(不能含非數(shù)值字符空格) 11.24E+ 3(指數(shù)部分的正負(fù)號(hào)與數(shù)字之間不能有空格),實(shí)型常量,在計(jì)算機(jī)輸出數(shù)據(jù)時(shí),只能按照一種標(biāo)準(zhǔn)的指數(shù)形式進(jìn)行輸出。不同的計(jì)算機(jī)系統(tǒng)采用不同的標(biāo)準(zhǔn)化指數(shù)形式,常用的標(biāo)準(zhǔn)化形式有二種。,實(shí)型常量,1. 數(shù)字部分的絕對(duì)值小于1(即小數(shù)點(diǎn)前面的數(shù)字必須為0),且小數(shù)點(diǎn)后第一個(gè)數(shù)字必須為一個(gè)非0的數(shù)字。例如,0.1234E4、0.56E-3是標(biāo)準(zhǔn)化指數(shù)形式。對(duì)于不符合標(biāo)準(zhǔn)化條件的實(shí)數(shù),可以

16、通過(guò)改變指數(shù)部分的數(shù)值使其轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)化指數(shù)形式。例如實(shí)數(shù)0.0001234的標(biāo)準(zhǔn)化指數(shù)形式是0.1234E-3。 2. 數(shù)字部分的絕對(duì)值小于10且大于1(即小數(shù)點(diǎn)前只能有且只有一個(gè)非0數(shù)字)。例如,1.234E3、5.6E-4是標(biāo)準(zhǔn)化指數(shù)形式。對(duì)于不符合標(biāo)準(zhǔn)化條件的實(shí)數(shù),可以通過(guò)增大或減小指數(shù)部分的值使其轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)化指數(shù)形式。例如實(shí)數(shù)0.0001234的標(biāo)準(zhǔn)化指數(shù)形式是1.234E-5。,實(shí)型常量,復(fù)型常量是采用圓括號(hào)將兩個(gè)以逗號(hào)分割的實(shí)數(shù)或整數(shù)括起來(lái)表示的。其中第一個(gè)實(shí)數(shù)或整數(shù)表示復(fù)數(shù)中的實(shí)部,第二個(gè)實(shí)數(shù)或整數(shù)表示復(fù)數(shù)中的虛部。 (實(shí)數(shù)1,實(shí)數(shù)2)實(shí)數(shù)1+實(shí)數(shù)2i (1.25,0.4) 1.

17、25+0.4i (1E2,-3.4) 100.0-3.4i (1.0_4,4.2_8) 1.0_8+4.2_8i (1,4) 1.0+4.0i,復(fù)型常量,轉(zhuǎn)換原則是:遇整變實(shí),向高看齊,在Fortran語(yǔ)言中,復(fù)型常量的實(shí)部和虛部的數(shù)據(jù)類型被自動(dòng)識(shí)別為實(shí)型。當(dāng)復(fù)數(shù)實(shí)部和虛部的數(shù)據(jù)類型不一致,或它們的kind值不同時(shí),編譯系統(tǒng)會(huì)自動(dòng)將其轉(zhuǎn)換。,字符型常量又叫字符串,它是用單引號(hào)或雙引號(hào)括起來(lái)的字符序列。 例如,a、 123、 Im a student.、China、我是中國(guó)人! 字符型常量中的字符可以是計(jì)算機(jī)系統(tǒng)中允許使用的任何字符。在字符串內(nèi)大小寫字母均可使用,但它們是不同的字符。單引號(hào)和雙引

18、號(hào)只起定界作用,它們不是字符串的組成部分。,字符型常量,字符串本身中含有單引號(hào)或雙引號(hào)的處理,例如要將Im a student作為一個(gè)字符串來(lái)處理,為了區(qū)分是字符串中的字符還是定界符,可采用兩種方式表示: 1.交替使用法, I m a student He said:I am feeling well. 2.重復(fù)使用法, Im a student He said:Im feeling well.,字符型常量,字符串內(nèi)字符的個(gè)數(shù)稱為字符串的長(zhǎng)度。長(zhǎng)度為0的字符串稱為空串。在字符串內(nèi)部的空格是有效字符,并占有一個(gè)字符的位置。例如, ABC 和A B C 是兩個(gè)不同的字符串。前者字符串的長(zhǎng)度為3,后

19、者為5。 字符串中的一個(gè)西文字符占據(jù)一個(gè)字節(jié)的存儲(chǔ)空間,一個(gè)漢字(含漢語(yǔ)標(biāo)點(diǎn)符號(hào))占據(jù)2個(gè)字節(jié)的存儲(chǔ)空間,且按兩個(gè)西文字符計(jì)算長(zhǎng)度,如字符串中國(guó)的長(zhǎng)度是4,字符型常量,字符通常是以其ASCII代碼的二進(jìn)制存儲(chǔ)在內(nèi)存中的。,Fortran95支持C字符串,所謂C字符串就是C語(yǔ)言中的字符串。C字符串中允許出現(xiàn)非打印字符(控制字符),如回車符、換行符、退格符等等。C字符串中使用特殊字符“”后 跟非打印字符的ASCII碼或標(biāo)志符來(lái)表示非打印字符。 Fortran95中,如果一個(gè)字符串的后面緊接一個(gè)字符C,那么這個(gè)字符串就是C字符串。例如,中國(guó)NC CHINAC. 通過(guò)C字符串可表示任何可輸出的字母字符

20、、專用字符、圖形字符和控制字符。,字符型常量,一個(gè)字符常量需要寫成多行源程序時(shí),有一條特殊的規(guī)則:不僅每一續(xù)行都不能尾隨注釋,而且每一續(xù)行必須以續(xù)行標(biāo)識(shí)符(&)作為開(kāi)頭,任何尾隨&號(hào)之后或者前導(dǎo)&號(hào)之前的空格都不是字符常數(shù)的組成部分,&號(hào)本身不是常數(shù)的組成部分。其它的字符包括空格都是字符常數(shù)的有效組成部分。,字符型常量,邏輯常量只有真和假兩種值: .true. .false.。 需要注意的是:邏輯值兩邊的小數(shù)點(diǎn)“.”必須有;邏輯值中字母不區(qū)分大小寫。,邏輯型常量,符號(hào)常量,所謂符號(hào)常量,是用一個(gè)標(biāo)識(shí)符來(lái)代表一個(gè)常量。符號(hào)常量常用parameter語(yǔ)句來(lái)定義。例如: parameter(PI=3

21、.1416,M=10,)。 parameter為特有的常量定義標(biāo)識(shí),要定義的項(xiàng)必須放在()內(nèi),如果有多項(xiàng),每項(xiàng)之間要用逗號(hào)隔開(kāi)。 符號(hào)常量無(wú)需類型說(shuō)明,直接由其表示形式可確定其數(shù)據(jù)類型,注意,符號(hào)常量與變量有著本質(zhì)的區(qū)別: PARAMETER語(yǔ)句是非執(zhí)行語(yǔ)句,必須放在可執(zhí)行語(yǔ)句的前面在編譯源程序時(shí),編譯程序?qū)⒊绦蛑械姆?hào)常量名全部替換成所對(duì)應(yīng)的常量。變量對(duì)應(yīng)于一個(gè)存儲(chǔ)單元,程序執(zhí)行時(shí),可將表達(dá)式的值存放到變量所對(duì)應(yīng)的存儲(chǔ)單元中(即給變量賦值)或從變量所對(duì)應(yīng)的存儲(chǔ)單元中取出相應(yīng)的值。所以,符號(hào)常量不能當(dāng)變量使用。 符號(hào)常量也可以在需要改變一個(gè)常量的值時(shí)做到“一改全改”。,符號(hào)常量,【例2-7】符

22、號(hào)常量的使用示例。 parameter (g=9.80655) t=10 v=g*t print *, v End 該語(yǔ)句定義了符號(hào)常量g,在該語(yǔ)句所在的程序單元內(nèi),g都代表9.80655,和常量一樣進(jìn)行運(yùn)算。,符號(hào)常量,變量,變量的概念 變量是程序運(yùn)行期間其值發(fā)生改變的數(shù)據(jù),是程序主要處理的對(duì)象。變量用變量名(標(biāo)識(shí)符)表示,它代表了某個(gè)存儲(chǔ)空間及所存儲(chǔ)的數(shù)值。,在Fortran中經(jīng)??梢匀缦抡Z(yǔ)句: n=n+1 該語(yǔ)句理解為:“空間n里的數(shù)據(jù)增加1”。,+1,6,5,變量,變量通過(guò)一個(gè)變量名來(lái)識(shí)別,在同一個(gè)程序單位中不能用同一個(gè)變量名代表不同的變量。 變量名按照標(biāo)識(shí)符規(guī)則命名。,變量,在使用變

23、量之前,必須用相關(guān)標(biāo)識(shí)符(關(guān)鍵字)說(shuō)明變量的數(shù)據(jù)類型,使編譯器能夠依照數(shù)據(jù)類型給每個(gè)變量分配存儲(chǔ)單元,用于存放變量的值。 說(shuō)明語(yǔ)句是非執(zhí)行語(yǔ)句,要放在程序單元的頭部。 實(shí)行“先定義,后使用”。,變量的說(shuō)明(定義),變量,變量的說(shuō)明,FORTRAN中變量類型的定義有三種方式: 1.使用類型說(shuō)明語(yǔ)句說(shuō)明(強(qiáng)制說(shuō)明) 一般格式為: 類型說(shuō)明符: 變量名,變量名 注意:符號(hào)“:”,在變量定義語(yǔ)句中可有可無(wú)。若有可對(duì)變量賦初值,否則不能賦初值,賦值則會(huì)出錯(cuò)。,integer整型說(shuō)明符 real實(shí)型說(shuō)明符 double precision雙精度型說(shuō)明符 complex復(fù)型說(shuō)明 logical邏輯型說(shuō)明 c

24、haracter字符型說(shuō)明,類型說(shuō)明符為:,變量的說(shuō)明,例如: integer x,y,z !定義x、y和z是整型變量。 integer(2) : a=1,b Integer*2 : a=1,b !定義a、b是短整型變量,對(duì)變量a賦初值1,缺省值為4 real i !定義i是單精度實(shí)型變量 real*8 J 或real(8) J !定義J是雙精度實(shí)型變量,變量的說(shuō)明,complex : s=(1.5,8.9) !定義s是單精度復(fù)型變量,并對(duì)其賦初值(1.5,8.9) character name !定義name是字符型變量 Character*6 name1 Character(6) name

25、1,name2*8,name4 Character(len=6) name3,變量的說(shuō)明,2. 隱含說(shuō)明語(yǔ)句implicit,implicit說(shuō)明語(yǔ)句可以將某個(gè)或某些字母開(kāi)頭的變量規(guī)定為所需的類型,一般格式為: implicit 類型說(shuō)明符(變量名起始字符,變量名起始字符, ) implicit 類型說(shuō)明符(變量名起始字符-變量名起始字符) 例如: implicit integer( a, c, t-v ),real(e,k) 該語(yǔ)句的含義是將以a和c及t到v開(kāi)頭的變量規(guī)定為整型,以e和k開(kāi)頭的變量規(guī)定為實(shí)型。,變量的說(shuō)明,3. 隱含約定,Fortran語(yǔ)言規(guī)定,凡以i,j,k,l,m,n 6

26、個(gè)字母開(kāi)頭的變量被默認(rèn)為整型變量,以其他字母開(kāi)頭的變量被默認(rèn)為實(shí)型變量。該規(guī)則又稱為IN規(guī)則。 例如:在沒(méi)有前面兩種說(shuō)明的情況下,i1,ma,n3s等都為整型變量。,變量的說(shuō)明,(1)在以上三種變量說(shuō)明方式中 ,第一類優(yōu)先級(jí)最高,第二類次之,隱含約定最低。也就是說(shuō),當(dāng)一個(gè)變量被強(qiáng)制定義為某種類型時(shí),implicit語(yǔ)句和隱含約定將不再起作用。在implicit語(yǔ)句后可以使用類型定義語(yǔ)句重新說(shuō)明已隱含定義的變量類型,反之則不允許 。,說(shuō)明:,變量的說(shuō)明,例如有如下連續(xù)說(shuō)明語(yǔ)句: implicit integer(a-d) !合法 implicit real(c-f) !非法,以字母c和d開(kāi)頭的變

27、量已 被隱含定義為整型變量。 integer c,d !合法,類型定義語(yǔ)句比 implicit語(yǔ)句優(yōu)先。 implicit logical(c) !非法,以字母c開(kāi)頭的變量已被 定義為整型變量。,變量的說(shuō)明,(3) IN規(guī)則具有一定的副作用,如隱含說(shuō)明與強(qiáng)制說(shuō)明一同使用時(shí),變量類型不清晰,因此一般不提倡使用,可以通過(guò)在程序變量說(shuō)明之前加入:implicit none語(yǔ)句來(lái)取消IN規(guī)則。,(2)在一個(gè)程序中,一個(gè)字母不能同時(shí)出現(xiàn)在兩個(gè)或兩個(gè)以上的implicit語(yǔ)句中。,變量的說(shuō)明,(4) 變量類型說(shuō)明語(yǔ)句都為非執(zhí)行語(yǔ)句,應(yīng)把它們放在所有可執(zhí)行語(yǔ)句之前,其中implicit語(yǔ)句要放在類型說(shuō)明定義

28、語(yǔ)句之前。,(5)類型說(shuō)明只在所在程序單元中有效。,變量的說(shuō)明,(6)需要特別指出的是,對(duì)于字符型變量的說(shuō)明通常采用的格式為: character(len=n) 變量表 格式中的len=n 代表被說(shuō)明變量的長(zhǎng)度,len=常省略。 例如:character(20) name !定義了一個(gè)長(zhǎng)度為20的字符型變量name。 當(dāng)n=1時(shí),字符型變量的定義格式可簡(jiǎn)化為: character 變量表 例如: character a(10) !定義了一個(gè)包含10個(gè)字符型元素的數(shù)組,并且每個(gè)數(shù)組元素的長(zhǎng)度都為1。 字符型數(shù)據(jù)定義時(shí)還可以單獨(dú)指定變量表中某個(gè)變量的長(zhǎng)度,遇到這種情況時(shí),遵循的原則是“個(gè)別優(yōu)于一般

29、”。 例如: character(8) a*10,b,c*13 !定義了三個(gè)字符型變量,根據(jù)上面的原則可知a的長(zhǎng)度為10,b的長(zhǎng)度為8,c的長(zhǎng)度為13。,變量的說(shuō)明,變量 的初始化,通常一個(gè)變量是先定義,再賦值。 例如: integer a a=20 可以在定義變量時(shí)對(duì)其賦初值,即初始化。 integer : a=10,初始化時(shí),雙冒號(hào)不能省略,變量,用data語(yǔ)句初始化 格式: data 變量1,變量2,變量n/常量1,常量2,,常量n/ 例如: integer a,b,c data a,b,c/1,2,3/ data i,j,k/3*5/,變量 的初始化,說(shuō)明: 1)data可以給多個(gè)變量

30、同時(shí)賦初值,中間用逗號(hào)隔開(kāi); 2) 被賦值的常量一定要放在一對(duì)“/”之中。 3) 被賦值的常量與對(duì)應(yīng)的變量數(shù)據(jù)類型要一致。 4) 被賦值的常量中還可以使用“*”來(lái)表示數(shù)據(jù)的重復(fù)。,變量 的初始化,例如: real a,b,c data a,b,c/1.0,2.0,3.0/ 通過(guò)此data賦值語(yǔ)句a=1.0,b=2.0,c=3.0 又如下面的語(yǔ)句 data m,n,k/3*5/ 執(zhí)行此語(yǔ)句后,m,n,k的值都為5。,變量 的初始化,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,運(yùn)算符是對(duì)相同類型的數(shù)據(jù)進(jìn)行運(yùn)算操作的符號(hào) 。 將常量、變量、函數(shù)用運(yùn)算符連接起來(lái)的式子稱為表達(dá)式。 表達(dá)式的類型由運(yùn)算符

31、的類型決定,每個(gè)表達(dá)式按照規(guī)定的運(yùn)算規(guī)則產(chǎn)生一個(gè)唯一的值 。,根據(jù)運(yùn)算符的不同,表達(dá)式分為: 算術(shù)表達(dá)式 字符表達(dá)式 關(guān)系表達(dá)式 邏輯表達(dá)式,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,提供5中算術(shù)運(yùn)算,運(yùn)算符依次為: +、-、*、/、*,加、減、乘、除、乘方運(yùn)算 例如:2*3表示23,m*n表示mn。 算術(shù)運(yùn)算符的運(yùn)算優(yōu)先級(jí)為: 乘方,乘、除,加、減, +、-、*、/同級(jí)運(yùn)算從左到右依次運(yùn)算,乘方同級(jí)運(yùn)算從右到左,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,算術(shù)表達(dá)式是由算術(shù)運(yùn)算符將數(shù)值型常量、變量和返回?cái)?shù)值型數(shù)據(jù)的函數(shù)等連接起來(lái)的式子,其結(jié)果是數(shù)

32、值型數(shù)據(jù)。 例如:3+2*5/4 -5.5*4*2 sin(a+1)*2)/(n*2+1),例如: 12-5*2*3/8 計(jì)算過(guò)程為: 2*3=85*8=40 40/8=5 12-5=7。 2*3*3 3*3=27 2*27=134217728。 (A*B)*3表示(AB)3,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,注意:當(dāng)算術(shù)運(yùn)算符兩側(cè)的操作數(shù)數(shù)據(jù)類型不一致時(shí),要先轉(zhuǎn)換成同一數(shù)據(jù)類型后再計(jì)算。轉(zhuǎn)換原則是低級(jí)向高級(jí)轉(zhuǎn)換。 【例2-9】給出下面表達(dá)式的計(jì)算順序和各順序?qū)?yīng)的值及數(shù)據(jù)類型。 2*3*2.0-10.0_8 計(jì)算順序是: 2*3,結(jié)果 8

33、(整型) 8*2.0,結(jié)果16.0(雙精度) 16.0-10.0_8 結(jié)果6.0(雙精度),算術(shù)表達(dá)式注意事項(xiàng)說(shuō)明: (1)表達(dá)式中常量的表示、變量的命名以及函數(shù)的引用要符合Fortran語(yǔ)言的規(guī)定。,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,(2)Fortran表達(dá)式只能在行上從左到右書寫,即所有字符都必須寫在一行, Fortran表達(dá)式中沒(méi)有帶有下標(biāo)的變量、分式等。 例如: 寫成: x1/y1+x2/y2。,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,(3)算術(shù)表達(dá)式中的乘號(hào)不能省略。 (4)Fortran表達(dá)式只允許用小括號(hào),不能使用大、中括

34、號(hào)。根據(jù)需要用括號(hào)表明運(yùn)算順序。 例如數(shù)學(xué)表達(dá)式: 應(yīng)寫成:(a+b)*2+(a-b)*2)*3+c)+8。,(5)兩個(gè)整數(shù)相除的結(jié)果一定也為整數(shù),小數(shù)部分自動(dòng)舍去。當(dāng)分子小于分母時(shí)結(jié)果一律為0。 例如:3/2 !結(jié)果為1,而不是1.333333。 3/4*4 !結(jié)果為0,而不是3。 (6)在進(jìn)行實(shí)型數(shù)運(yùn)算時(shí),要注意誤差問(wèn)題。,Fortran95 算術(shù)運(yùn)算符與算數(shù)表達(dá)式,Fortran 95標(biāo)準(zhǔn)函數(shù),函數(shù)在科學(xué)計(jì)算領(lǐng)域有廣泛的使用,數(shù)學(xué)等學(xué)科為我們提供了大量的函數(shù),如:三角函數(shù)、對(duì)數(shù)函數(shù)、雙曲函數(shù)、字符串處理函數(shù)等等。計(jì)算機(jī)語(yǔ)言中提到的函數(shù)是對(duì)數(shù)學(xué)等學(xué)科中函數(shù)的計(jì)算機(jī)實(shí)現(xiàn),它實(shí)際上是具有獨(dú)立功能

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論