FORTRAN語(yǔ)言程序設(shè)計(jì)(課堂PPT)_第1頁(yè)
FORTRAN語(yǔ)言程序設(shè)計(jì)(課堂PPT)_第2頁(yè)
FORTRAN語(yǔ)言程序設(shè)計(jì)(課堂PPT)_第3頁(yè)
FORTRAN語(yǔ)言程序設(shè)計(jì)(課堂PPT)_第4頁(yè)
FORTRAN語(yǔ)言程序設(shè)計(jì)(課堂PPT)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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、.31.1 程序設(shè)計(jì)基本概念1.程序:計(jì)算機(jī)操作命令的集合。例:求x、y、z的平均值aver的程序。2.程序設(shè)計(jì):編制程序(操作命令)的過(guò)程。 3.程序設(shè)計(jì)語(yǔ)言:書(shū)寫(xiě)程序所采用的某種專用語(yǔ)言。 高級(jí)語(yǔ)言:數(shù)學(xué)語(yǔ)言或自然語(yǔ)言。如:FORTRAN語(yǔ)言等 程序設(shè)計(jì)語(yǔ)言的類型: 低級(jí)語(yǔ)言:機(jī)器語(yǔ)言和匯編語(yǔ)言。.41.2 程序設(shè)計(jì)方法和步驟1.2.1 程序設(shè)計(jì)方法 1.結(jié)構(gòu)化方法 (1)采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法. (2)采用“單入口單出口”的控制結(jié)構(gòu). (3)三種基本程序結(jié)構(gòu):順序、選擇和循環(huán). 結(jié)構(gòu)化程序設(shè)計(jì)的特征: (a)模塊化:把一個(gè)較大的程序劃分為若干個(gè)子程序,每一個(gè)子程序獨(dú)立成

2、為一個(gè)模塊; (b)層次化:先設(shè)計(jì)第一層(即頂層)。然后步步深入,逐層細(xì)分,逐步求精,直到整個(gè)問(wèn)題可用程序設(shè)計(jì)語(yǔ)言明確地描述為止。 (c)逐步求精:是對(duì)一個(gè)復(fù)雜問(wèn)題,從抽象到具體,最終編制出一個(gè)可執(zhí)行的程序。 2.面向?qū)ο蠓椒?詳見(jiàn)P5.51.2.2 程序設(shè)計(jì)步驟 1.分析問(wèn)題 2.建立數(shù)學(xué)模型 3.選擇算法 4.編寫(xiě)程序 5.調(diào)試運(yùn)行 6.分析結(jié)果 7.寫(xiě)出程序的文檔 .72.1 算法概述1.算法:計(jì)算機(jī)解題的方法和步驟.2.算法特征: (1)有窮性 一個(gè)算法必須總是在執(zhí)行有限步驟之后結(jié)束。 (2)確定性 算法中的每一個(gè)步驟應(yīng)當(dāng)是確定的,無(wú)二義性;相同的輸入只能得出相同的輸出。 (3)可行性

3、 算法中的每步驟都是有效地執(zhí)行。 (4)有零個(gè)或多個(gè)輸入 (5)有一個(gè)或多個(gè)輸出3.算法的分類: (1)數(shù)字運(yùn)算:用于求數(shù)值解,此類算法有現(xiàn)成的模型,運(yùn)用較成熟. (2)非數(shù)字運(yùn)算:用于非數(shù)據(jù)處理的一些事務(wù)性工作,此類算法面廣量大,要求各異,有一定難度.8 2.2 算法特點(diǎn) 計(jì)算機(jī)特別適合做大量的重復(fù)性操作,如連續(xù)加、連續(xù)乘或者其他連續(xù)判斷或處理。計(jì)算機(jī)對(duì)于大量的重復(fù)性操作,并非一次性完成,而是每次按部就班,循環(huán)往復(fù)重復(fù)前一次的操作 ,即每次操作方法(即循環(huán)體)相同,但操作數(shù)據(jù)不同而已。 例如,求1,2,10的累加和,其程序如下: do i=1,10 !循環(huán)語(yǔ)句 s=s+i !循環(huán)體 endd

4、o 上述循環(huán)所要執(zhí)行的重復(fù)操作是: s=s+i (即循環(huán)體),但每一次循環(huán)時(shí),循環(huán)體的操作數(shù)據(jù)s,i的值是不同的。.92.3 算法的表示方法(1)傳統(tǒng)流程圖 即用有向線段將描述算法步驟的各功能框連接起來(lái).如下圖所示: 圖(a)順序結(jié)構(gòu) 圖(b)選擇結(jié)構(gòu) AB條件PAB真假圖(c)當(dāng)型循環(huán)結(jié)構(gòu) 圖(d)直到型循環(huán)結(jié)構(gòu)循環(huán)條件循環(huán)體循環(huán)體循環(huán)條件真假假真.10(2)N-S流程圖 它是一種去掉流程線的流程圖,稱為盒圖. N-S流程圖形式如下圖所示:AB圖(a)順序結(jié)構(gòu) 圖(b)選擇結(jié)構(gòu)圖(c)當(dāng)型循環(huán)結(jié)構(gòu) 圖(d)直到型循環(huán)結(jié)構(gòu)當(dāng)執(zhí)行循環(huán)的條件成立循環(huán)體直到退出循環(huán)的條件成立循環(huán)體條件真假AB.12

5、 3.1 FORTRAN 語(yǔ)言概述1.何謂FORTRAN語(yǔ)言? FORTRAN是英文“FORmula TRANslate”的縮寫(xiě),即中文的“公式翻譯器”之意。FORTRAN語(yǔ)言是一種用于科學(xué)計(jì)算的程序設(shè)計(jì)語(yǔ)言。2.何謂FORTRAN源程序? 用FORTRAN語(yǔ)言編制的程序,稱為FORTRAN源程序。 舉例:編制FORTRAN源程序ex02_01.f90,求x、y、z的平均值aver 。 PROGRAM ex02_01 READ *,x,y,z aver=(x+y+z)/3 PRINT *,aver END .133.2 FORTRAN程序的執(zhí)行過(guò)程 .143.3 FORTRAN語(yǔ)言的發(fā)展歷程(

6、1)1951年,John Backus在紐約首次提出FORTRAN語(yǔ)言 ,并于1954年對(duì)外發(fā)布,稱FORTRAN。 (2)1958年,擴(kuò)充和完善FORTRAN, 推出FORTRAN。 (3)1960年,推出FORTRAN ,但沒(méi)有在計(jì)算機(jī)上實(shí)現(xiàn)。 (4)1963年,推出了FORTRAN 。沒(méi)有充分考慮兼容性。 (5)1966年,推出FORTRAN 66美國(guó)標(biāo)準(zhǔn),后被ISO采用。 (6)1978年,推出FORTRAN 77,兼容性好,結(jié)構(gòu)化特征。 (7)1991年,推出FORTRAN 90現(xiàn)代語(yǔ)言,可視化編程。 (8)1997年,公布FORTRAN 95標(biāo)準(zhǔn),并行運(yùn)算的支持。 (9)1997年

7、,微軟和數(shù)據(jù)設(shè)備公司合作推出Digital Visual FORTRAN 5.0。 詳見(jiàn)教材:3.3 FORTRAN語(yǔ)言開(kāi)發(fā)環(huán)境.175.1 字符集 FORTRAN語(yǔ)言允許使用的字符集為: 英文字母英文字母A-Z A-Z 或或 a-za-z(即大、小寫(xiě)英文字母)阿拉伯?dāng)?shù)字阿拉伯?dāng)?shù)字0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9特殊符號(hào)特殊符號(hào)空格空格 = + - = + - * * / # / # ? ( ) ,. : . : “ ! & ; $ _“ ! & ; $ _ 應(yīng)當(dāng)注意:在FORTRAN語(yǔ)言中,英文字母不區(qū)分大小寫(xiě),在保留字、變量名和函數(shù)名中,大、小

8、寫(xiě)字母都是等價(jià)的,如REAL何real或Real是一樣的。.185.2 名稱及保留字5.2.1 名稱 作用:用來(lái)表示FORTRAN源程序中的變量、符號(hào)常量名、 數(shù)組、函數(shù)、過(guò)程等實(shí)體的名稱。 名稱的定義(即語(yǔ)法描述):由英文字母開(kāi)頭的31個(gè)以內(nèi) 的字母、數(shù)字、下劃線(_)以及美元符字符序列組成。 例:NUMBER、x1、root_2、y$ _ab、5xy、x.y5.2.2 保留字 一個(gè)語(yǔ)句中的特定單詞,如PROGRAM、END、IF、ENDIF、 DO、ENDDO等,稱為語(yǔ)句保留字。 說(shuō)明: FORTRAN90程序中允許用保留字作為其它實(shí)體的名稱,但是一般不提倡。 .195.3 程序單元 一個(gè)

9、完整的FORTRAN程序,應(yīng)由以下程序單元構(gòu)成: 主程序單元 外部子程序單元1 PROGRAM MAIN SUBROUTINE SUB1() 主程序體 子程序體 END PROGRAM END 其中主程序單元只能有1個(gè),其它程序單元可以有0-n個(gè)。 程序單元的描述詳見(jiàn)第十章。 .205.4 語(yǔ)句的排列順序 一個(gè)程序單元中語(yǔ)句的排列順序如下: 非執(zhí)行語(yǔ)句 程序單元 可執(zhí)行語(yǔ)句例:編制FORTRAN源程序eex5_1.f90,求x、y、z的平均值aver 。 PROGRAM eex5_1 REAL x,y,z,aver READ *,x,y,z aver=(x+y+z)/3 PRINT *,ave

10、r END.215.5 程序的書(shū)寫(xiě)格式(1)固定格式:將一個(gè)語(yǔ)句行分為若干個(gè)區(qū)域,如下圖所示:(2)自由格式:一個(gè)語(yǔ)句的書(shū)寫(xiě)不受區(qū)域的限制。 FORTRAN90的源程序源程序格式采用自由格式書(shū)寫(xiě),源程序源程序文件擴(kuò)展名為.f90。 例:詳見(jiàn)eex5_1.f90的源程序源程序格式及其擴(kuò)展名。.225.6 數(shù)據(jù)類型5.6.1 基本概念 1.內(nèi)部數(shù)據(jù)類型 FORTRAN語(yǔ)言將內(nèi)部數(shù)據(jù)劃分為以下類型: 整型 實(shí)型 算術(shù)型 數(shù)據(jù)類型 復(fù)型 邏輯型 字符型 2.種別 一個(gè)數(shù)據(jù)在內(nèi)存中均占有一定字節(jié)個(gè)數(shù)的存儲(chǔ)單元。上述每類數(shù)據(jù)都有其不同的種別(即Kind)特性,即上述每類數(shù)據(jù)根據(jù)其種別特性(即Kind值)的

11、不同分別擁有不同字節(jié)個(gè)數(shù)的存儲(chǔ)單元。 3.數(shù)據(jù)對(duì)象 1)常量:程序運(yùn)行時(shí),其值不能改變的量,稱為常量。如:5,3等等。 2)變量:程序運(yùn)行時(shí),其值可以改變的量,如:變量a, a是一個(gè)存儲(chǔ)單元。 .235.6.2 常量 整型、實(shí)型、復(fù)型常量是一個(gè)代數(shù)值;邏輯型常量是一個(gè)邏輯值(.true.或.false.);字符型常量是一個(gè)字符串。以上常量均以書(shū)寫(xiě)方式確定其類型。5.6.2.1 整型常量 整型常量表示普通代數(shù)中的整數(shù)。 十進(jìn)制整型常量的一般形式:n _Kind值 其中: 是該整型常量的符號(hào)。 n 是一個(gè)十進(jìn)制數(shù)字(09)序列。 Kind值為:1、2、4、8之一。分別表示1、2、4、8個(gè)字節(jié)個(gè)數(shù)。

12、 FORTRAN 90/95標(biāo)準(zhǔn)中整型常量的范圍沒(méi)有明確規(guī)定。 例如:122、0、-36、559_2 均為合法的整型常量 100.0、100,000、100 0、1002 均為非法的整型常量 5.6.2.2 實(shí)型常量 實(shí)型常量表示普通代數(shù)中的小數(shù)或指數(shù)。 1.小數(shù)實(shí)型常量 一般形式:n .m 或n. 或.m 其中:n、m是十進(jìn)制數(shù)字序列。 n是整數(shù)值,m是小數(shù)值。 例: 12.0 、0.12 、12. 、.12.24 2.指數(shù)實(shí)型常量 一般形式:n .mEs 或n Es 其中:n、m是十進(jìn)制數(shù)字序列。 n是整數(shù)值,m是小數(shù)值。 Es是指數(shù)部分,表示10的幾次方。其中: E是指數(shù)符號(hào),s是指數(shù)數(shù)

13、值,是指數(shù)數(shù)符。 例:指數(shù)實(shí)型常量:12E2 0.12E-2 2E5 1E-10 相應(yīng)代數(shù)值: 12x102 0.12x10-2 2x105 1x10-10 注意:?jiǎn)为?dú)的指數(shù)部分不能構(gòu)成一個(gè)實(shí)型常量。 例:E5 5.6.2.3 復(fù)型常量 表示普通代數(shù)中的復(fù)數(shù)。即: a bi(其中a是實(shí)部, b是虛部) 一般形式:(a,b) 例:(-3,5) !表示復(fù)數(shù):-3+5i (0,1) !表示復(fù)數(shù):i (2.4,-2.5E2) !表示復(fù)數(shù):2.4-2.5x102i.255.6.2.4 字符型常量 在程序中用以表示文字等非數(shù)值信息。 一般形式: 字符串 或 “字符串” 其中:字符串可以是字母、數(shù)字、漢字、

14、特殊符號(hào)。通常字符串中字 符的個(gè)數(shù)稱為字符長(zhǎng)度。 例: PRINT *,南京信息工程大學(xué) PRINT *,”a+b=”,ab說(shuō)明:1)引號(hào)( 或 “ ”)是字符串的分隔符,并非字符常量的一部分。 2)字符串中的空白符有意義,要計(jì)數(shù)的。例:“A B” ,其字符長(zhǎng)度是3。 3)當(dāng)字符長(zhǎng)度為0時(shí),即為空串。 4)字符串內(nèi)的字母區(qū)分大小寫(xiě),a和A是不同的字符常量。 5)如果字符串中含有單引號(hào),則這個(gè)單引號(hào)要用兩個(gè)連續(xù)的單引號(hào)表示,如:Im a boy.?;蛘邌我?hào)和雙引號(hào)交替使用,如“Im a boy.”。 .265.6.2.5 邏輯型常量 在程序中用以表示某個(gè)條件(關(guān)系表達(dá)式和邏輯表達(dá)式)的判別結(jié)果

15、。 一般形式:. .TRUE. . 即為邏輯真(表示判別條件成立)。 . .FALSE. . 即為邏輯假(表示判別條件不成立)。 例:條件5 3的判別結(jié)果是. .TRUE. . ,表示判別條件5 3成立。 條件3 1的判別結(jié)果是. .FALSE. .,表示判別條件3 1不成立。 說(shuō)明: 1.邏輯常量?jī)H有兩個(gè),.TRUE.(真)和.FALSE.(假)。注意:邏輯常量?jī)蓚?cè)的兩個(gè)小數(shù)點(diǎn)不能省略。邏輯型常量是具有邏輯型數(shù)據(jù)類型的非數(shù)值數(shù)據(jù),又稱為邏輯值或布爾值。 2.2.對(duì)于邏輯值.TRUE.,在其存儲(chǔ)單元字節(jié)內(nèi)每位為“1”,可視為整數(shù)值 -1;對(duì)于邏輯值.FALSE.,在其存儲(chǔ)單元字節(jié)內(nèi)每位為“0”

16、,可視為整數(shù)值0,它們均能參與整數(shù)運(yùn)算。如7+.FALSE.,結(jié)果仍為7。1+.TRUE.,結(jié)果則為0。 .275.6.2.6 符號(hào)常量 用一個(gè)符號(hào)所表示的常量值,稱為符號(hào)常量。例如,圓周率、重力加速度等。使用符號(hào)常量時(shí),應(yīng)當(dāng)用參數(shù)語(yǔ)句(PARAMETER語(yǔ)句語(yǔ)句)對(duì)符號(hào)常量予以聲明。PROGRAM ex05_01IMPLICIT NONEREAL piPARAMETER(pi=3.1415926)!定義pi為符號(hào)常量3.1415926WRITE (*,*) sin(pi/6)END.28 變量是數(shù)據(jù)的存儲(chǔ)單元。不同類型的變量存儲(chǔ)不同類型的數(shù)值。整型、實(shí)型、復(fù)型變量存儲(chǔ)一個(gè)(或一對(duì))代數(shù)值,邏

17、輯型變量存儲(chǔ)一個(gè)邏輯值(.true.或.false.),字符型變量存儲(chǔ)一個(gè)字符串。以上變量均以類型聲明確定其類型。5.6.3.1 變量的種別 變量的種別,是指一個(gè)變量由幾個(gè)字節(jié)組成。其種別值(即kind值)與常量相同。5.6.3.2 變量的類型 變量的類型均用類型說(shuō)明(或稱類型聲明)指定。其目的是通知編譯系統(tǒng)為變量分配存儲(chǔ)單元,以便存放程序中的數(shù)據(jù)。 顯式類型說(shuō)明 類型說(shuō)明方式 隱式類型說(shuō)明 .291.顯式類型說(shuō)明 由類型說(shuō)明(聲明)語(yǔ)句指明變量的類型。 類型說(shuō)明語(yǔ)句的一般形式: INTEGER(kind值) 變量名表 !整型變量類型說(shuō)明語(yǔ)句 REAL(kind值) 變量名表 !實(shí)型變量類型說(shuō)

18、明語(yǔ)句 COMPLEX(kind值) 變量名表 !復(fù)型變量類型說(shuō)明語(yǔ)句 LOGICAL(kind值) 變量名表 !邏輯型變量說(shuō)明語(yǔ)句 CHARACTER(kind值) 變量名表 !字符型變量類型說(shuō)明語(yǔ)句其中: 1)變量名表:用逗號(hào)隔開(kāi)的一系列變量名。 例如: INTEGER(2) a,b,c !a,b,c為變量名表中的變量。2) INTEGER 、REAL , 等為類型說(shuō)明語(yǔ)句的保留字,稱為類型說(shuō)明符。 例如: INTEGER(2) a,b,c !INTEGER為類型說(shuō)明符。.303)(kind值)=n:為變量的種別值,用以說(shuō)明變量名表中的各變量由幾個(gè)字節(jié)組成。n為1、2、4、8之一。 a.整

19、型變量的不同種別值及其取值范圍,如下表所示: b.實(shí)型變量的不同種別值及其取值范圍,如下表所示:類型Kind值字節(jié)數(shù)取值范圍INTEGER(1)11-128127INTEGER(2)22-3276832767INTEGER(4)44-21474836482147483648INTEGER(8)88-92233720368547758089223372036854775808類型Kind值字節(jié)數(shù)取值范圍REAL(4)441.1754944E-383.4028235E+38 REAL(8)882.225073858507201E-3081.797693134862316E+308 DOUBLE P

20、RECISION82.225073858507201E-3081.797693134862316E+308c.復(fù)型變量的種別值分別為4或8,字節(jié)數(shù)為8或16.31d.字符型變量不同種別值的說(shuō)明方式,如下表所示:類型Kind值字節(jié)數(shù)CHARACTER11CHARACTER (n)nnCHARACTER len=nnnCHARACTER*nnne.e.邏輯型變量的不同種別值,如下表所示:類型Kind值字節(jié)數(shù)LOGICAL(1)11LOGICAL(2)22LOGICAL(4)44LOGICAL(8)88.324)kind值為可省略項(xiàng)。該項(xiàng)省略時(shí)系統(tǒng)將自動(dòng)采用由系統(tǒng)指定的缺省值。缺省值一般由編譯器確定

21、。但各類變量的種別初始缺省值如下: a.整型變量為4. b.實(shí)型變量為4. c.復(fù)型變量為8. d.字符型變量為1. e.邏輯型變量為4. 注意:當(dāng)一個(gè)整型、實(shí)型變量中所存儲(chǔ)的數(shù)值超過(guò)以上種別值取值范圍時(shí),則出錯(cuò)!5)5)類型說(shuō)明語(yǔ)句中可以使用“:” 給變量名表中的變量賦初值。例:INTEGER: a=6,b=8 !說(shuō)明變量a,b為4字節(jié)整型的同時(shí)為其賦初值 REAL(4) : e=3.5 !e為4字節(jié)單精度實(shí)型變量且初值是3.5 REAL(kind=8) : h=2.6 !h為8字節(jié)雙精度實(shí)型變量且初值是2.6 LOGICAL :la=.true. !la是4字節(jié)邏輯型變量且初值是.true

22、. CHARACTER:c1=“a” !c1是1字節(jié)字符型變量且初值是字符“a” CHARACTER*4:c2=“南京” !c2是4字節(jié)字符型變量且初值是字符串“南京” CHARACTER*5:c3=“ ” !c3是5字節(jié)字符型變量且初值為空,即空串.332.隱式類型說(shuō)明1)隱含約定(即系統(tǒng)約定,簡(jiǎn)稱I-N規(guī)則):程序中凡以字母I-N開(kāi)頭的變量名系統(tǒng)約定(即默認(rèn))為整型變量,其余字母(A-H,O-Z)開(kāi)頭的變量名系統(tǒng)均約定為實(shí)型變量。 例: n1, m2, i1, j2 均被系統(tǒng)約定為整型變量 a1,b1,c2,d2 均被系統(tǒng)約定為實(shí)型變量 說(shuō)明: i)上述隱含約定僅對(duì)整、實(shí)型變量有效! ii

23、)Fortran 90雖然支持隱含約定,但不提倡使用。為此,在程序的開(kāi)始用: NONE語(yǔ)句向系統(tǒng)聲明不使用隱含約定。2)隱含說(shuō)明語(yǔ)句(即人為約定):按程序中變量名的首字符來(lái)確定變量的類型。 一般形式: 類型說(shuō)明符(字母1,,字母n) 或: NONE 例: REAL(i,k) !程序中凡以i,k開(kāi)頭的變量均為實(shí)型變量。 INTEGER(n,t) !程序中凡以n,t開(kāi)頭的變量均為整型變量。 NONE !程序中取消隱含約定。.34類型說(shuō)明方式顯式類型說(shuō)明語(yǔ)句顯式類型說(shuō)明語(yǔ)句說(shuō)明說(shuō)明.355.7 表達(dá)式5.7.1 算術(shù)表達(dá)式 1. 作用:表示普通數(shù)學(xué)中的代數(shù)式。 2. 組成:由算術(shù)型運(yùn)算分量(如:算術(shù)

24、型常量,變量,函數(shù))、算術(shù)運(yùn)算符以及圓括號(hào)按照通常的數(shù)學(xué)含義連接而成。 3.算術(shù)運(yùn)算符:、 、 * 、 / 、 * 表示: 加、 減 、 乘、 除、 乘方 4.算術(shù)運(yùn)算符的求值規(guī)則 1)優(yōu)先級(jí): 高 * * 、/ 單目+、- 低 雙目+、 但括號(hào)可以改變優(yōu)先級(jí)。 2)結(jié)合規(guī)則 左結(jié)合:當(dāng)運(yùn)算分量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),運(yùn)算順序先左后右。結(jié)合方向 右結(jié)合:當(dāng)運(yùn)算分量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),運(yùn)算順序先右后左。 .36 FORTRAN90規(guī)定:*為右結(jié)合,+、-、*、/為左結(jié)合。例如:指出下列表達(dá)式的運(yùn)算次序。 (a (a * * b b * * * 2 8 2 8 * * c c * * d

25、) / ( - e + f d ) / ( - e + f * * * g g * * * 3 ) 3 ) (1) (3) (8) (6) (2) (4) (7) (5) (9) (10).375.算術(shù)運(yùn)算的類型轉(zhuǎn)換 對(duì)于混合型(即指運(yùn)算分量的類型和kind值不同)的算術(shù)表達(dá)式,運(yùn)算時(shí)必須將兩個(gè)不同類型的運(yùn)算分量轉(zhuǎn)換成同一種類型才能運(yùn)算。類型轉(zhuǎn)換時(shí)既要考慮運(yùn)算分量的類型,同時(shí)還要考慮其kind值。 類型轉(zhuǎn)換原則: (1)同類型的運(yùn)算分量無(wú)需轉(zhuǎn)換,直接運(yùn)算,其運(yùn)算結(jié)果仍保持原類型。 (2)不同類型的運(yùn)算分量,運(yùn)算前系統(tǒng)會(huì)自動(dòng)將它們轉(zhuǎn)換成同一類型后進(jìn)行運(yùn)算。轉(zhuǎn)換的方法是:將類型級(jí)別低的運(yùn)算分量向類

26、型級(jí)別高的運(yùn)算分量轉(zhuǎn)換(運(yùn)算分量的類型級(jí)別如下所示)。運(yùn)算結(jié)果的類型與類型級(jí)別高的運(yùn)算分量相同。 運(yùn)算分量的類型(含kind值)級(jí)別如下: 高 COMPLEX(8) COMPLEX(4) REAL(8) REAL(4) INTEGER(8) INTEGER(4) INTEGER(2) 低 INTEGER(1) .38例如:INTEGER(1) i,j INTEGER(2) k REAL(4) a i * k + j * a 上述表達(dá)式的運(yùn)算步驟及類型轉(zhuǎn)換如下:(1)將i轉(zhuǎn)換成2字節(jié)整型,即INTEGER(2),執(zhí)行“ i * k ”的運(yùn)算, 運(yùn)算結(jié)果類型為2字節(jié)整型。(2)將j轉(zhuǎn)換成4字節(jié)實(shí)型

27、,即REAL(4) ,執(zhí)行“ j * a ”的運(yùn)算, 運(yùn)算結(jié)果類型為4字節(jié)實(shí)型。(3)將第(1)步的運(yùn)算結(jié)果轉(zhuǎn)換成4字節(jié)實(shí)型,即REAL(4) , 執(zhí)行最終的加法的運(yùn)算,最終結(jié)果類型為4字節(jié)實(shí)型。.396.有關(guān)注意事項(xiàng) 1)兩表達(dá)式相乘,*號(hào)不能少。 2)兩表達(dá)式相除,分子和分母上的表達(dá)式要酌情加上括號(hào)。 例:(a+b)/(c-d) 3)分母不得為零,負(fù)數(shù)不能開(kāi)平方。 4)表達(dá)式中只能配對(duì)使用圓括號(hào),不能使用“ ”和“ ” 5)整型量/整型量整商(舍去小數(shù)部分自動(dòng)取整) 例:1/2*g*t*2 =0 .405.7.2 關(guān)系表達(dá)式1. 作用:用以比較兩個(gè)算術(shù)表達(dá)式之間的大小等同關(guān)系。2. 一般形

28、式: 3. 關(guān)系運(yùn)算符: 、 、 = 、 = 、 /= 或:.LT.、.LE.、.GT. 、.GE. 、.EQ.、 .NE. 4. 結(jié)果: .TRUE. 若關(guān)系表達(dá)式(即所表示的條件)成立,結(jié)果為.TRUE.邏輯值 .FALSE. 若關(guān)系表達(dá)式(即所表示的條件)不成立,結(jié)果為.FALSE. 上述邏輯值其kind值為4. 例:1)3+45 !3+4 5, 結(jié)果為.TRUE. 2)ab !a b , 若ab 結(jié)果為.TRUE.;否則為.FALSE. 3)abc ! a b c , 則無(wú)法比較! 邏輯值 代數(shù)值5.注意事項(xiàng): 兩個(gè)實(shí)型量慎用關(guān)系相等”=”和關(guān)系不等”/=“的比較. 例:判別實(shí)型量a,

29、b是否相等,即a=b? 用:abs(a-b)34 !判別結(jié)果為.FALSE. (4+5*2).LE.10 !判別結(jié)果為.FALSE. (4.2,7.3).NE.(7.3,4.2) !判別結(jié)果為.TRUE.425.7.3 邏輯表達(dá)式 1.作用: 用作較復(fù)雜的邏輯比較。如表示多個(gè)條件同時(shí)成立,或表示多個(gè)條件中只有一個(gè)條件成立即可,這種條件的表示方法,必須要用邏輯表達(dá)式。 例如: 1)a b .and. x y !該邏輯表達(dá)式表示:ab 同時(shí) xy 2)x 0 .or. y 0 !該邏輯式表示這兩個(gè)條件只要有一個(gè)成立即可.43 0 x1例:1) y= 1 -1=x0,y0(I) 2) xy= -1

30、x0,y0(III) 0 x*y=0 (II, ) 上述判別條件均較復(fù)雜,故引進(jìn)邏輯表達(dá)式比較。 2. 組成:由邏輯型量(如:邏輯型常量、變量、函數(shù))、關(guān)系表達(dá)式 、邏輯運(yùn)算符以及圓括號(hào)連接而成。 3. 邏輯運(yùn)算符: .not.、.and.、 .or. 、.xor.、 .eqv. 、 .neqv. 表示:邏輯非、邏輯與、邏輯或、邏輯異或、邏輯相等、邏輯不等.y=10-11y=0y=0 xx*y0,y0 x0,y0 x*yc.and.d.or.e PRINT *,x=,x END.465.7.4 字符表達(dá)式5.7.4.1 字符合并表達(dá)式1.作用:將字符型量(如:字符型常量、變量、函數(shù))予以合并。

31、2.組成:由字符型量(如:字符型常量、變量、函數(shù))、字符運(yùn)算符(即字符連接符/)或子字符串(簡(jiǎn)稱子串)構(gòu)成。3.子串概念 子串是由字符串中的一部分相鄰字符組成,又稱子字符串。 子串的一般形式: 字符型變量名(子串的起始位置:子串的終止位置) 其中:若缺省子串起始位置,系統(tǒng)則默認(rèn)該值為1; 若缺省子串終止位置,系統(tǒng)則默認(rèn)該值為字符串的長(zhǎng)度值。 上述一般形式表示子串在字符串中的相對(duì)位置。 例: CHARACTER(19) string CHARACTER(10) substring string=This is a computer. substring= string(1:4) !子串為“Thi

32、s” substring= string(:7) !子串為“This is” substring= string(11:) !子串為“computer.“.474.字符串連接操作(即字符表達(dá)式) 字符串連接是由字符連接符/將若干個(gè)字符串連接起來(lái)的操作。 一般形式:字符型操作數(shù)1/字符型操作數(shù)2/字符型操作數(shù)n 例: CHARACTER(19) str1,str2*5,str3*3,str4*11 str2= This str3= is str4= a computer. str1=str2/ str3/ str4 ! str1的連接結(jié)果為 This is a computer.485.7.4.

33、2 字符關(guān)系表達(dá)式1. 作用:用以比較兩個(gè)字符表達(dá)式之間的大小等同關(guān)系。2. 一般形式: 3. 關(guān)系運(yùn)算符: 、 、 = 、 = 、 /= 或:.LT.、.LE.、.GT. 、.GE. 、.EQ.、 .NE. 4. 結(jié)果: .TRUE. 若關(guān)系表達(dá)式(即所表示的條件)成立,結(jié)果為.TRUE.邏輯值 .FALSE. 若關(guān)系表達(dá)式(即所表示的條件)不成立,結(jié)果為.FALSE.5.比較方法:依次比較兩個(gè)字符串(即字符表達(dá)式)中相同位置字符的ASCII碼值。 例如: 1)banana=apple !由于”b“的ASCII為98,而“a”的ASCII為97,故比較結(jié) 果為.FALSE. 2)This i

34、s a pen.=This is a pencil. !由于字符“.”的ASCII為46, 而“c”的ASCII為99,故比較結(jié)果為.TRUE.495.8 賦值語(yǔ)句 作用:給變量賦一個(gè)確定的值。5.8.1 賦值語(yǔ)句的類型 算術(shù)賦值語(yǔ)句 類型 字符賦值語(yǔ)句 邏輯賦值語(yǔ)句5.8.2 賦值語(yǔ)句的一般形式 其中:1)“”稱為賦值號(hào),意義為“左傳送 ”。 2)變量統(tǒng)稱為左部變量。 語(yǔ)意:將 右端表達(dá)式的值賦給同類型(算術(shù)型、字符型、邏輯型)的左部變量。 即:算術(shù)型變量算術(shù)表達(dá)式 !算術(shù)賦值語(yǔ)句 字符型變量字符表達(dá)式 !字符賦值語(yǔ)句 邏輯型變量邏輯表達(dá)式 !邏輯賦值語(yǔ)句.505.8.3 賦值語(yǔ)句舉例1.算

35、術(shù)賦值語(yǔ)句 賦值時(shí)類型轉(zhuǎn)換: 當(dāng)賦值號(hào)兩端的類型及其kind值一致,無(wú)需類型轉(zhuǎn)換,直接賦值;若賦值號(hào)兩端的類型及其kind值不一致,系統(tǒng)自動(dòng)把右端表達(dá)式之值的類型轉(zhuǎn)換成左部變量的類型。轉(zhuǎn)換規(guī)則如下: a)類型相同而kind值不同 右端表達(dá)式值的kind值j左部變量的kind值i,僅轉(zhuǎn)換i個(gè)低位字節(jié)值 例:INTEGER(1) :b=126 INTEGER(2) :a,c=56 INTEGER(4) :d=32771 a=b !a=126,ji,類型轉(zhuǎn)換后,賦值結(jié)果改變,即a值出錯(cuò)! .51b)類型不同實(shí)型左部變量=整型右端表達(dá)式值,則將右端表達(dá)式值添加小數(shù)點(diǎn)后再賦值。整型左部變量=實(shí)型右端表達(dá)

36、式值,僅取右端表達(dá)式值的整數(shù)部分?jǐn)?shù)值賦值。例: INTEGER :a=23,c REAL : b=98.78,d d=a !d=23.0 ,將整型右端表達(dá)式值添加小數(shù)點(diǎn)后再賦值給d。 c=b !c=98 ,僅取實(shí)型右端表達(dá)式值的整數(shù)部分?jǐn)?shù)值賦值給c。 .522.字符賦值語(yǔ)句 當(dāng)字符型左部變量與字符型右端表達(dá)式的長(zhǎng)度不相等時(shí),需進(jìn)行長(zhǎng)度轉(zhuǎn)換。 例:1)CHARACTER*7 str1,str2 str1=student ! str1=student str2=He is a/student ! str2=He is a 2)CHARACTER*5 str1,str2*3 str1=is ! st

37、r1=is str2=china ! str2=chi3.邏輯賦值語(yǔ)句 例: LOGICAL L,L1,L2,L3,L4 REAL : A=3,B=5,C=2 L=.TRUE. !L的結(jié)果是一個(gè)邏輯常量.TRUE. L1=A.GT.B !L1的結(jié)果是關(guān)系表達(dá)式的結(jié)果,即邏輯常量.FALSE. L2=B.GT.C !L2的結(jié)果是關(guān)系表達(dá)式的結(jié)果,即邏輯常量.TRUE. L3=L1.AND.L2 !L3的結(jié)果是邏輯表達(dá)式的結(jié)果,即邏輯常量.FALSE. L4=L3 !L4的結(jié)果是邏輯變量的值.FALSE.53 1.作用:給變量或數(shù)組賦初值。 2.一般形式:DATA 變量名表1/初值表1/,變量名表

38、2/初值表2, 其中:變量名表中可以是變量名、數(shù)組名、數(shù)組元素,變量名表中的各變量間用逗號(hào)隔開(kāi),初值表中只允許出現(xiàn)常量,不允許出現(xiàn)表達(dá)式。 例如:DATA a,b,i/3.0,-3.1,8/ !給a,b分別賦初值3.0,-3.1;i賦初值8 3.說(shuō)明:(1)初值表中如果有幾個(gè)連續(xù)相同的常量可以簡(jiǎn)寫(xiě)為:n*常量 例如:DATA a,b,c,i,k/3*1.0,2*3/!給a,b,c均賦初值1.0;i,k均賦初值3(2)變量名表中的變量與初值表中的常量個(gè)數(shù)應(yīng)當(dāng)相同,類型應(yīng)當(dāng)一致。 例如:DATA a,b,c,d/3.0,2*2.0/,i/3.0/ (3)若一個(gè)程序中有多個(gè)DATA語(yǔ)句給同一個(gè)變量賦

39、初值,則以最后一個(gè)DATA語(yǔ)句所賦的初值為準(zhǔn)。例如:DATA a,b,c,d/1.0,3.0,2*0.0/DATA x,y,c/4.0,2.0,7.5/其中變量c分別在兩個(gè)DATA語(yǔ)句中出現(xiàn),并且賦的值不同,結(jié)果c的值應(yīng)為7.55.9 DATA語(yǔ)句.545.10 停與暫停語(yǔ)句 用以表示程序的停止運(yùn)行(END或STOP)或暫時(shí)中斷程序的運(yùn)行(PAUSE)。1.END語(yǔ)句 作用:1)表示一個(gè)程序段的結(jié)束,提示編譯程序該程序段編譯結(jié)束。 2)主程序中的END語(yǔ)句,表示程序運(yùn)行到此結(jié)束可以返回操作系統(tǒng)。 一般形式: END 說(shuō)明:END語(yǔ)句一般出現(xiàn)在一個(gè)程序段的最后。2.STOP語(yǔ)句 作用:表示隨時(shí)執(zhí)

40、行STOP語(yǔ)句停止程序運(yùn)行返回操作系統(tǒng)。 一般形式: STOP 字符串 其中:字符串用以表示STOP語(yǔ)句停止運(yùn)行時(shí)的標(biāo)記。 說(shuō)明:STOP語(yǔ)句可以出現(xiàn)在一個(gè)程序段的任何可執(zhí)行語(yǔ)句之處。3.PAUSE語(yǔ)句 作用:表示暫停程序的執(zhí)行,一般用于調(diào)試程序時(shí)給程序設(shè)置運(yùn)行斷點(diǎn), 當(dāng)從鍵盤(pán)上鍵入任意鍵后,可使程序從剛暫停處(即中斷點(diǎn))繼 續(xù)運(yùn)行。 一般形式: PAUSE 字符串 說(shuō)明:PAUSE語(yǔ)句可以出現(xiàn)在一個(gè)程序段的任何可執(zhí)行語(yǔ)句之處。.555.11 標(biāo)準(zhǔn)函數(shù) 對(duì)于一些常用的標(biāo)準(zhǔn)函數(shù),編譯系統(tǒng)已定義好且存入函數(shù)庫(kù), 只要在程序中采用“函數(shù)名(參數(shù))”的方式直接引用即可。 1.函數(shù)分類: 標(biāo)準(zhǔn)函數(shù) 函數(shù)

41、 語(yǔ)句函數(shù) 用戶自定義函數(shù) 外部函數(shù) 2.標(biāo)準(zhǔn)函數(shù)的引用方式: () 其中:1):一個(gè)或用逗號(hào)隔開(kāi)的一系列參數(shù)名。 2)函數(shù)名、參數(shù)表中參數(shù)的類型及個(gè)數(shù)詳見(jiàn)附錄D常用庫(kù)函數(shù). 3.說(shuō)明 1)參數(shù)的個(gè)數(shù)必須與函數(shù)表中參數(shù)的個(gè)數(shù)一致。 2)參數(shù)類型和函數(shù)值類型(即函數(shù)類型),詳見(jiàn)附錄。 3)三角函數(shù)的參數(shù)均使用弧度:弧度角度*3.14159/180 4)參數(shù)可以是常量、變量、表達(dá)式,且允許函數(shù)的嵌套。 4.常用函數(shù) FORTRAN函數(shù)表詳見(jiàn)附錄D常用庫(kù)函數(shù)。.56(1)常用數(shù)值處理函數(shù)函數(shù)函數(shù)功能功能ABS(x)求x的絕對(duì)值|x|EXP(x)求指數(shù)函數(shù)exSIN(x)求正弦函數(shù)sin(x),其中x的單位為弧度COS(x)求余弦函數(shù)cos(x),其中x的單位為弧度ASIN(x)求反正弦函數(shù)arcsin(x)TAN(x)求正切函數(shù)tan(x),其中x的單位為弧度ATAN(x)求反正切函數(shù)arctan(x)LOG(x)求自然對(duì)數(shù)ln(x)或logexLOG10(x)求常用對(duì)數(shù)log10(x)INT(x)取x的整數(shù)部分,不四舍五入MOD(x1,x2)求x1除以x2的余數(shù),即求x1-int(x1/x2)*x2SIGN(x1,x2)若x20,則|x1|;若x20,則-|x1|REAL(x)把整型量x轉(zhuǎn)換為實(shí)型

溫馨提示

  • 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)論