FORTRAN語言程序設(shè)計_第1頁
FORTRAN語言程序設(shè)計_第2頁
FORTRAN語言程序設(shè)計_第3頁
FORTRAN語言程序設(shè)計_第4頁
FORTRAN語言程序設(shè)計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、整理課件31.1 程序設(shè)計基本概念1.程序:計算機操作命令的集合。例:求x、y、z的平均值aver的程序。2.程序設(shè)計:編制程序(操作命令)的過程。 3.程序設(shè)計語言:書寫程序所采用的某種專用語言。 高級語言:數(shù)學(xué)語言或自然語言。如:FORTRAN語言等 程序設(shè)計語言的類型: 低級語言:機器語言和匯編語言。整理課件41.2 程序設(shè)計方法和步驟1.2.1 程序設(shè)計方法 1.結(jié)構(gòu)化方法 (1)采用“自頂向下,逐步求精”的程序設(shè)計方法. (2)采用“單入口單出口”的控制結(jié)構(gòu). (3)三種基本程序結(jié)構(gòu):順序、選擇和循環(huán). 結(jié)構(gòu)化程序設(shè)計的特征: (a)模塊化:把一個較大的程序劃分為若干個子程序,每一個

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

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

4、 s=s+i !循環(huán)體 enddo 上述循環(huán)所要執(zhí)行的重復(fù)操作是: s=s+i (即循環(huán)體),但每一次循環(huán)時,循環(huán)體的操作數(shù)據(jù)s,i的值是不同的。.整理課件92.3 算法的表示方法(1)傳統(tǒng)流程圖 即用有向線段將描述算法步驟的各功能框連接起來.如下圖所示: 圖(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)體

5、直到退出循環(huán)的條件成立循環(huán)體條件真假AB整理課件12 3.1 FORTRAN 語言概述1.何謂FORTRAN語言? FORTRAN是英文“FORmula TRANslate”的縮寫,即中文的“公式翻譯器”之意。FORTRAN語言是一種用于科學(xué)計算的程序設(shè)計語言。2.何謂FORTRAN源程序? 用FORTRAN語言編制的程序,稱為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程

6、序的執(zhí)行過程 整理課件143.3 FORTRAN語言的發(fā)展歷程(1)1951年,John Backus在紐約首次提出FORTRAN語言 ,并于1954年對外發(fā)布,稱FORTRAN。 (2)1958年,擴(kuò)充和完善FORTRAN, 推出FORTRAN。 (3)1960年,推出FORTRAN ,但沒有在計算機上實現(xiàn)。 (4)1963年,推出了FORTRAN 。沒有充分考慮兼容性。 (5)1966年,推出FORTRAN 66美國標(biāo)準(zhǔn),后被ISO采用。 (6)1978年,推出FORTRAN 77,兼容性好,結(jié)構(gòu)化特征。 (7)1991年,推出FORTRAN 90現(xiàn)代語言,可視化編程。 (8)1997年,

7、公布FORTRAN 95標(biāo)準(zhǔn),并行運算的支持。 (9)1997年,微軟和數(shù)據(jù)設(shè)備公司合作推出Digital Visual FORTRAN 5.0。 詳見教材:3.3 FORTRAN語言開發(fā)環(huán)境整理課件175.1 字符集 FORTRAN語言允許使用的字符集為: 英文字母英文字母A-Z A-Z 或或 a-za-z(即大、小寫英文字母)阿拉伯?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特殊符號特殊符號空格空格 = + - = + - * * / # / # ? ( ) ,. : . : “ ! & ; $ _“ ! & ; $ _ 應(yīng)當(dāng)

8、注意:在FORTRAN語言中,英文字母不區(qū)分大小寫,在保留字、變量名和函數(shù)名中,大、小寫字母都是等價的,如REAL何real或Real是一樣的。整理課件185.2 名稱及保留字5.2.1 名稱 作用:用來表示FORTRAN源程序中的變量、符號常量名、 數(shù)組、函數(shù)、過程等實體的名稱。 名稱的定義(即語法描述):由英文字母開頭的31個以內(nèi) 的字母、數(shù)字、下劃線(_)以及美元符字符序列組成。 例:NUMBER、x1、root_2、y$ _ab、5xy、x.y5.2.2 保留字 一個語句中的特定單詞,如PROGRAM、END、IF、ENDIF、 DO、ENDDO等,稱為語句保留字。 說明: FORTR

9、AN90程序中允許用保留字作為其它實體的名稱,但是一般不提倡。 整理課件195.3 程序單元 一個完整的FORTRAN程序,應(yīng)由以下程序單元構(gòu)成: 主程序單元 外部子程序單元1 PROGRAM MAIN SUBROUTINE SUB1() 主程序體 子程序體 END PROGRAM END 其中主程序單元只能有1個,其它程序單元可以有0-n個。 程序單元的描述詳見第十章。 整理課件205.4 語句的排列順序 一個程序單元中語句的排列順序如下: 非執(zhí)行語句 程序單元 可執(zhí)行語句例:編制FORTRAN源程序eex5_1.f90,求x、y、z的平均值aver 。 PROGRAM eex5_1 REA

10、L x,y,z,aver READ *,x,y,z aver=(x+y+z)/3 PRINT *,aver END整理課件215.5 程序的書寫格式(1)固定格式:將一個語句行分為若干個區(qū)域,如下圖所示:(2)自由格式:一個語句的書寫不受區(qū)域的限制。 FORTRAN90的源程序源程序格式采用自由格式書寫,源程序源程序文件擴(kuò)展名為.f90。 例:詳見eex5_1.f90的源程序源程序格式及其擴(kuò)展名。整理課件225.6 數(shù)據(jù)類型5.6.1 基本概念 1.內(nèi)部數(shù)據(jù)類型 FORTRAN語言將內(nèi)部數(shù)據(jù)劃分為以下類型: 整型 實型 算術(shù)型 數(shù)據(jù)類型 復(fù)型 邏輯型 字符型 2.種別 一個數(shù)據(jù)在內(nèi)存中均占有一

11、定字節(jié)個數(shù)的存儲單元。上述每類數(shù)據(jù)都有其不同的種別(即Kind)特性,即上述每類數(shù)據(jù)根據(jù)其種別特性(即Kind值)的不同分別擁有不同字節(jié)個數(shù)的存儲單元。 3.數(shù)據(jù)對象 1)常量:程序運行時,其值不能改變的量,稱為常量。如:5,3等等。 2)變量:程序運行時,其值可以改變的量,如:變量a, a是一個存儲單元。 整理課件235.6.2 常量 整型、實型、復(fù)型常量是一個代數(shù)值;邏輯型常量是一個邏輯值(.true.或.false.);字符型常量是一個字符串。以上常量均以書寫方式確定其類型。5.6.2.1 整型常量 整型常量表示普通代數(shù)中的整數(shù)。 十進(jìn)制整型常量的一般形式:n _Kind值 其中: 是該

12、整型常量的符號。 n 是一個十進(jìn)制數(shù)字(09)序列。 Kind值為:1、2、4、8之一。分別表示1、2、4、8個字節(jié)個數(shù)。 FORTRAN 90/95標(biāo)準(zhǔn)中整型常量的范圍沒有明確規(guī)定。 例如:122、0、-36、559_2 均為合法的整型常量 100.0、100,000、100 0、1002 均為非法的整型常量 5.6.2.2 實型常量 實型常量表示普通代數(shù)中的小數(shù)或指數(shù)。 1.小數(shù)實型常量 一般形式:n .m 或n. 或.m 其中:n、m是十進(jìn)制數(shù)字序列。 n是整數(shù)值,m是小數(shù)值。 例: 12.0 、0.12 、12. 、.12整理課件24 2.指數(shù)實型常量 一般形式:n .mEs 或n E

13、s 其中:n、m是十進(jìn)制數(shù)字序列。 n是整數(shù)值,m是小數(shù)值。 Es是指數(shù)部分,表示10的幾次方。其中: E是指數(shù)符號,s是指數(shù)數(shù)值,是指數(shù)數(shù)符。 例:指數(shù)實型常量:12E2 0.12E-2 2E5 1E-10 相應(yīng)代數(shù)值: 12x102 0.12x10-2 2x105 1x10-10 注意:單獨的指數(shù)部分不能構(gòu)成一個實型常量。 例:E5 5.6.2.3 復(fù)型常量 表示普通代數(shù)中的復(fù)數(shù)。即: a bi(其中a是實部, 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

14、.6.2.4 字符型常量 在程序中用以表示文字等非數(shù)值信息。 一般形式: 字符串 或 “字符串” 其中:字符串可以是字母、數(shù)字、漢字、特殊符號。通常字符串中字 符的個數(shù)稱為字符長度。 例: PRINT *,南京信息工程大學(xué) PRINT *,”a+b=”,ab說明:1)引號( 或 “ ”)是字符串的分隔符,并非字符常量的一部分。 2)字符串中的空白符有意義,要計數(shù)的。例:“A B” ,其字符長度是3。 3)當(dāng)字符長度為0時,即為空串。 4)字符串內(nèi)的字母區(qū)分大小寫,a和A是不同的字符常量。 5)如果字符串中含有單引號,則這個單引號要用兩個連續(xù)的單引號表示,如:Im a boy.?;蛘邌我柡碗p引

15、號交替使用,如“Im a boy.”。 整理課件265.6.2.5 邏輯型常量 在程序中用以表示某個條件(關(guān)系表達(dá)式和邏輯表達(dá)式)的判別結(jié)果。 一般形式:. .TRUE. . 即為邏輯真(表示判別條件成立)。 . .FALSE. . 即為邏輯假(表示判別條件不成立)。 例:條件5 3的判別結(jié)果是. .TRUE. . ,表示判別條件5 3成立。 條件3 1的判別結(jié)果是. .FALSE. .,表示判別條件3 1不成立。 說明: 1.邏輯常量僅有兩個,.TRUE.(真)和.FALSE.(假)。注意:邏輯常量兩側(cè)的兩個小數(shù)點不能省略。邏輯型常量是具有邏輯型數(shù)據(jù)類型的非數(shù)值數(shù)據(jù),又稱為邏輯值或布爾值。

16、2.2.對于邏輯值.TRUE.,在其存儲單元字節(jié)內(nèi)每位為“1”,可視為整數(shù)值 -1;對于邏輯值.FALSE.,在其存儲單元字節(jié)內(nèi)每位為“0”,可視為整數(shù)值0,它們均能參與整數(shù)運算。如7+.FALSE.,結(jié)果仍為7。1+.TRUE.,結(jié)果則為0。 整理課件275.6.2.6 符號常量 用一個符號所表示的常量值,稱為符號常量。例如,圓周率、重力加速度等。使用符號常量時,應(yīng)當(dāng)用參數(shù)語句(PARAMETER語句語句)對符號常量予以聲明。PROGRAM ex05_01IMPLICIT NONEREAL piPARAMETER(pi=3.1415926)!定義pi為符號常量3.1415926WRITE (

17、*,*) sin(pi/6)END整理課件28 變量是數(shù)據(jù)的存儲單元。不同類型的變量存儲不同類型的數(shù)值。整型、實型、復(fù)型變量存儲一個(或一對)代數(shù)值,邏輯型變量存儲一個邏輯值(.true.或.false.),字符型變量存儲一個字符串。以上變量均以類型聲明確定其類型。5.6.3.1 變量的種別 變量的種別,是指一個變量由幾個字節(jié)組成。其種別值(即kind值)與常量相同。5.6.3.2 變量的類型 變量的類型均用類型說明(或稱類型聲明)指定。其目的是通知編譯系統(tǒng)為變量分配存儲單元,以便存放程序中的數(shù)據(jù)。 顯式類型說明 類型說明方式 隱式類型說明 整理課件291.顯式類型說明 由類型說明(聲明)語句

18、指明變量的類型。 類型說明語句的一般形式: INTEGER(kind值) 變量名表 !整型變量類型說明語句 REAL(kind值) 變量名表 !實型變量類型說明語句 COMPLEX(kind值) 變量名表 !復(fù)型變量類型說明語句 LOGICAL(kind值) 變量名表 !邏輯型變量說明語句 CHARACTER(kind值) 變量名表 !字符型變量類型說明語句其中: 1)變量名表:用逗號隔開的一系列變量名。 例如: INTEGER(2) a,b,c !a,b,c為變量名表中的變量。2) INTEGER 、REAL , 等為類型說明語句的保留字,稱為類型說明符。 例如: INTEGER(2) a,

19、b,c !INTEGER為類型說明符。整理課件303)(kind值)=n:為變量的種別值,用以說明變量名表中的各變量由幾個字節(jié)組成。n為1、2、4、8之一。 a.整型變量的不同種別值及其取值范圍,如下表所示: b.實型變量的不同種別值及其取值范圍,如下表所示:類型Kind值字節(jié)數(shù)取值范圍INTEGER(1)11-128127INTEGER(2)22-3276832767INTEGER(4)44-21474836482147483648INTEGER(8)88-92233720368547758089223372036854775808類型Kind值字節(jié)數(shù)取值范圍REAL(4)441.17549

20、44E-383.4028235E+38 REAL(8)882.225073858507201E-3081.797693134862316E+308 DOUBLE PRECISION82.225073858507201E-3081.797693134862316E+308c.復(fù)型變量的種別值分別為4或8,字節(jié)數(shù)為8或16整理課件31d.字符型變量不同種別值的說明方式,如下表所示:類型Kind值字節(jié)數(shù)CHARACTER11CHARACTER (n)nnCHARACTER len=nnnCHARACTER*nnne.e.邏輯型變量的不同種別值,如下表所示:類型Kind值字節(jié)數(shù)LOGICAL(1)11

21、LOGICAL(2)22LOGICAL(4)44LOGICAL(8)88整理課件324)kind值為可省略項。該項省略時系統(tǒng)將自動采用由系統(tǒng)指定的缺省值。缺省值一般由編譯器確定。但各類變量的種別初始缺省值如下: a.整型變量為4. b.實型變量為4. c.復(fù)型變量為8. d.字符型變量為1. e.邏輯型變量為4. 注意:當(dāng)一個整型、實型變量中所存儲的數(shù)值超過以上種別值取值范圍時,則出錯!5)5)類型說明語句中可以使用“:” 給變量名表中的變量賦初值。例:INTEGER: a=6,b=8 !說明變量a,b為4字節(jié)整型的同時為其賦初值 REAL(4) : e=3.5 !e為4字節(jié)單精度實型變量且初

22、值是3.5 REAL(kind=8) : h=2.6 !h為8字節(jié)雙精度實型變量且初值是2.6 LOGICAL :la=.true. !la是4字節(jié)邏輯型變量且初值是.true. CHARACTER:c1=“a” !c1是1字節(jié)字符型變量且初值是字符“a” CHARACTER*4:c2=“南京” !c2是4字節(jié)字符型變量且初值是字符串“南京” CHARACTER*5:c3=“ ” !c3是5字節(jié)字符型變量且初值為空,即空串整理課件332.隱式類型說明1)隱含約定(即系統(tǒng)約定,簡稱I-N規(guī)則):程序中凡以字母I-N開頭的變量名系統(tǒng)約定(即默認(rèn))為整型變量,其余字母(A-H,O-Z)開頭的變量名系

23、統(tǒng)均約定為實型變量。 例: n1, m2, i1, j2 均被系統(tǒng)約定為整型變量 a1,b1,c2,d2 均被系統(tǒng)約定為實型變量 說明: i)上述隱含約定僅對整、實型變量有效! ii)Fortran 90雖然支持隱含約定,但不提倡使用。為此,在程序的開始用: NONE語句向系統(tǒng)聲明不使用隱含約定。2)隱含說明語句(即人為約定):按程序中變量名的首字符來確定變量的類型。 一般形式: 類型說明符(字母1,,字母n) 或: NONE 例: REAL(i,k) !程序中凡以i,k開頭的變量均為實型變量。 INTEGER(n,t) !程序中凡以n,t開頭的變量均為整型變量。 NONE !程序中取消隱含約

24、定。整理課件34類型說明方式顯式類型說明語句顯式類型說明語句說明說明整理課件355.7 表達(dá)式5.7.1 算術(shù)表達(dá)式 1. 作用:表示普通數(shù)學(xué)中的代數(shù)式。 2. 組成:由算術(shù)型運算分量(如:算術(shù)型常量,變量,函數(shù))、算術(shù)運算符以及圓括號按照通常的數(shù)學(xué)含義連接而成。 3.算術(shù)運算符:、 、 * 、 / 、 * 表示: 加、 減 、 乘、 除、 乘方 4.算術(shù)運算符的求值規(guī)則 1)優(yōu)先級: 高 * * 、/ 單目+、- 低 雙目+、 但括號可以改變優(yōu)先級。 2)結(jié)合規(guī)則 左結(jié)合:當(dāng)運算分量兩側(cè)的運算符優(yōu)先級相同時,運算順序先左后右。結(jié)合方向 右結(jié)合:當(dāng)運算分量兩側(cè)的運算符優(yōu)先級相同時,運算順序先右

25、后左。 整理課件36 FORTRAN90規(guī)定:*為右結(jié)合,+、-、*、/為左結(jié)合。例如:指出下列表達(dá)式的運算次序。 (a (a * * b b * * * 2 8 2 8 * * c c * * d ) / ( - e + f d ) / ( - e + f * * * g g * * * 3 ) 3 ) (1) (3) (8) (6) (2) (4) (7) (5) (9) (10)整理課件375.算術(shù)運算的類型轉(zhuǎn)換 對于混合型(即指運算分量的類型和kind值不同)的算術(shù)表達(dá)式,運算時必須將兩個不同類型的運算分量轉(zhuǎn)換成同一種類型才能運算。類型轉(zhuǎn)換時既要考慮運算分量的類型,同時還要考慮其kin

26、d值。 類型轉(zhuǎn)換原則: (1)同類型的運算分量無需轉(zhuǎn)換,直接運算,其運算結(jié)果仍保持原類型。 (2)不同類型的運算分量,運算前系統(tǒng)會自動將它們轉(zhuǎn)換成同一類型后進(jìn)行運算。轉(zhuǎn)換的方法是:將類型級別低的運算分量向類型級別高的運算分量轉(zhuǎn)換(運算分量的類型級別如下所示)。運算結(jié)果的類型與類型級別高的運算分量相同。 運算分量的類型(含kind值)級別如下: 高 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

27、(4) a i * k + j * a 上述表達(dá)式的運算步驟及類型轉(zhuǎn)換如下:(1)將i轉(zhuǎn)換成2字節(jié)整型,即INTEGER(2),執(zhí)行“ i * k ”的運算, 運算結(jié)果類型為2字節(jié)整型。(2)將j轉(zhuǎn)換成4字節(jié)實型,即REAL(4) ,執(zhí)行“ j * a ”的運算, 運算結(jié)果類型為4字節(jié)實型。(3)將第(1)步的運算結(jié)果轉(zhuǎn)換成4字節(jié)實型,即REAL(4) , 執(zhí)行最終的加法的運算,最終結(jié)果類型為4字節(jié)實型。整理課件396.有關(guān)注意事項 1)兩表達(dá)式相乘,*號不能少。 2)兩表達(dá)式相除,分子和分母上的表達(dá)式要酌情加上括號。 例:(a+b)/(c-d) 3)分母不得為零,負(fù)數(shù)不能開平方。 4)表達(dá)式

28、中只能配對使用圓括號,不能使用“ ”和“ ” 5)整型量/整型量整商(舍去小數(shù)部分自動取整) 例:1/2*g*t*2 =0 整理課件405.7.2 關(guān)系表達(dá)式1. 作用:用以比較兩個算術(shù)表達(dá)式之間的大小等同關(guān)系。2. 一般形式: 3. 關(guā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.

29、2)ab !a b , 若ab 結(jié)果為.TRUE.;否則為.FALSE. 3)abc ! a b c , 則無法比較! 邏輯值 代數(shù)值5.注意事項: 兩個實型量慎用關(guān)系相等”=”和關(guān)系不等”/=“的比較. 例:判別實型量a,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ù)雜的邏輯比較。如表示多個條件同時成立,或表示多個條件中只有一個條件成立即可,這種條件的表示方法,必須要用邏輯表達(dá)式。

30、 例如: 1)a b .and. x y !該邏輯表達(dá)式表示:ab 同時 xy 2)x 0 .or. y 0 !該邏輯式表示這兩個條件只要有一個成立即可整理課件43 0 x1例:1) y= 1 -1=x0,y0(I) 2) xy= -1 x0,y0(III) 0 x*y=0 (II, ) 上述判別條件均較復(fù)雜,故引進(jìn)邏輯表達(dá)式比較。 2. 組成:由邏輯型量(如:邏輯型常量、變量、函數(shù))、關(guān)系表達(dá)式 、邏輯運算符以及圓括號連接而成。 3. 邏輯運算符: .not.、.and.、 .or. 、.xor.、 .eqv. 、 .neqv. 表示:邏輯非、邏輯與、邏輯或、邏輯異或、邏輯相等、邏輯不等.y

31、=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ù))予以合并。2.組成:由字符型量(如:字符型常量、變量、函數(shù))、字符運算符(即字符連接符/)或子字符串(簡稱子串)構(gòu)成。3.子串概念 子串是由字符串中的一部分相鄰字符組成,又稱子字符串。 子串的一般形式: 字符型變量名(子串的起始位置:子串的終止位置) 其中:若缺省子串起始位置,系統(tǒng)則默認(rèn)該值為1; 若缺省子串終止位置,系統(tǒng)則默認(rèn)該值為字符串的長度值。 上述一般形式

32、表示子串在字符串中的相對位置。 例: CHARACTER(19) string CHARACTER(10) substring string=This is a computer. substring= string(1:4) !子串為“This” substring= string(:7) !子串為“This is” substring= string(11:) !子串為“computer.“整理課件474.字符串連接操作(即字符表達(dá)式) 字符串連接是由字符連接符/將若干個字符串連接起來的操作。 一般形式:字符型操作數(shù)1/字符型操作數(shù)2/字符型操作數(shù)n 例: CHARACTER(19) st

33、r1,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.2 字符關(guān)系表達(dá)式1. 作用:用以比較兩個字符表達(dá)式之間的大小等同關(guān)系。2. 一般形式: 3. 關(guān)系運算符: 、 、 = 、 = 、 /= 或:.LT.、.LE.、.GT. 、.GE. 、.EQ.、 .NE. 4. 結(jié)果: .TRUE. 若關(guān)系表達(dá)式(即所表示的條件)成立,結(jié)果為.TRUE.邏輯值 .FALSE. 若關(guān)系表達(dá)式(即所表示的條

34、件)不成立,結(jié)果為.FALSE.5.比較方法:依次比較兩個字符串(即字符表達(dá)式)中相同位置字符的ASCII碼值。 例如: 1)banana=apple !由于”b“的ASCII為98,而“a”的ASCII為97,故比較結(jié) 果為.FALSE. 2)This is a pen.=This is a pencil. !由于字符“.”的ASCII為46, 而“c”的ASCII為99,故比較結(jié)果為.TRUE.整理課件495.8 賦值語句 作用:給變量賦一個確定的值。5.8.1 賦值語句的類型 算術(shù)賦值語句 類型 字符賦值語句 邏輯賦值語句5.8.2 賦值語句的一般形式 其中:1)“”稱為賦值號,意義為“

35、左傳送 ”。 2)變量統(tǒng)稱為左部變量。 語意:將 右端表達(dá)式的值賦給同類型(算術(shù)型、字符型、邏輯型)的左部變量。 即:算術(shù)型變量算術(shù)表達(dá)式 !算術(shù)賦值語句 字符型變量字符表達(dá)式 !字符賦值語句 邏輯型變量邏輯表達(dá)式 !邏輯賦值語句整理課件505.8.3 賦值語句舉例1.算術(shù)賦值語句 賦值時類型轉(zhuǎn)換: 當(dāng)賦值號兩端的類型及其kind值一致,無需類型轉(zhuǎn)換,直接賦值;若賦值號兩端的類型及其kind值不一致,系統(tǒng)自動把右端表達(dá)式之值的類型轉(zhuǎn)換成左部變量的類型。轉(zhuǎn)換規(guī)則如下: a)類型相同而kind值不同 右端表達(dá)式值的kind值j左部變量的kind值i,僅轉(zhuǎn)換i個低位字節(jié)值 例:INTEGER(1)

36、:b=126 INTEGER(2) :a,c=56 INTEGER(4) :d=32771 a=b !a=126,ji,類型轉(zhuǎn)換后,賦值結(jié)果改變,即a值出錯! 整理課件51b)類型不同實型左部變量=整型右端表達(dá)式值,則將右端表達(dá)式值添加小數(shù)點后再賦值。整型左部變量=實型右端表達(dá)式值,僅取右端表達(dá)式值的整數(shù)部分?jǐn)?shù)值賦值。例: INTEGER :a=23,c REAL : b=98.78,d d=a !d=23.0 ,將整型右端表達(dá)式值添加小數(shù)點后再賦值給d。 c=b !c=98 ,僅取實型右端表達(dá)式值的整數(shù)部分?jǐn)?shù)值賦值給c。 整理課件522.字符賦值語句 當(dāng)字符型左部變量與字符型右端表達(dá)式的長度

37、不相等時,需進(jìn)行長度轉(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 ! str1=is str2=china ! str2=chi3.邏輯賦值語句 例: LOGICAL L,L1,L2,L3,L4 REAL : A=3,B=5,C=2 L=.TRUE. !L的結(jié)果是一個邏輯常量.TRUE. L1=A.GT.B !L1的結(jié)果是關(guān)系表達(dá)式的結(jié)果,即邏輯常量.FALSE. L2=B.GT.C !

38、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/,變量名表2/初值表2, 其中:變量名表中可以是變量名、數(shù)組名、數(shù)組元素,變量名表中的各變量間用逗號隔開,初值表中只允許出現(xiàn)常量,不允許出現(xiàn)表達(dá)式。 例如:DATA a,b,i/3.0,-3.1,8/ !給a,b分別賦初值3.0,-3.1;i賦初值8 3.說明:(1)初值表中如果有幾個連續(xù)相同的常量可以簡寫為:n*常

39、量 例如:DATA a,b,c,i,k/3*1.0,2*3/!給a,b,c均賦初值1.0;i,k均賦初值3(2)變量名表中的變量與初值表中的常量個數(shù)應(yīng)當(dāng)相同,類型應(yīng)當(dāng)一致。 例如:DATA a,b,c,d/3.0,2*2.0/,i/3.0/ (3)若一個程序中有多個DATA語句給同一個變量賦初值,則以最后一個DATA語句所賦的初值為準(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分別在兩個DATA語句中出現(xiàn),并且賦的值不同,結(jié)果c的值應(yīng)為7.55.9 DATA語句整理課件545.10 停與暫停語句 用以表示程序的停止運行(

40、END或STOP)或暫時中斷程序的運行(PAUSE)。1.END語句 作用:1)表示一個程序段的結(jié)束,提示編譯程序該程序段編譯結(jié)束。 2)主程序中的END語句,表示程序運行到此結(jié)束可以返回操作系統(tǒng)。 一般形式: END 說明:END語句一般出現(xiàn)在一個程序段的最后。2.STOP語句 作用:表示隨時執(zhí)行STOP語句停止程序運行返回操作系統(tǒng)。 一般形式: STOP 字符串 其中:字符串用以表示STOP語句停止運行時的標(biāo)記。 說明:STOP語句可以出現(xiàn)在一個程序段的任何可執(zhí)行語句之處。3.PAUSE語句 作用:表示暫停程序的執(zhí)行,一般用于調(diào)試程序時給程序設(shè)置運行斷點, 當(dāng)從鍵盤上鍵入任意鍵后,可使程序

41、從剛暫停處(即中斷點)繼 續(xù)運行。 一般形式: PAUSE 字符串 說明:PAUSE語句可以出現(xiàn)在一個程序段的任何可執(zhí)行語句之處。整理課件555.11 標(biāo)準(zhǔn)函數(shù) 對于一些常用的標(biāo)準(zhǔn)函數(shù),編譯系統(tǒng)已定義好且存入函數(shù)庫, 只要在程序中采用“函數(shù)名(參數(shù))”的方式直接引用即可。 1.函數(shù)分類: 標(biāo)準(zhǔn)函數(shù) 函數(shù) 語句函數(shù) 用戶自定義函數(shù) 外部函數(shù) 2.標(biāo)準(zhǔn)函數(shù)的引用方式: () 其中:1):一個或用逗號隔開的一系列參數(shù)名。 2)函數(shù)名、參數(shù)表中參數(shù)的類型及個數(shù)詳見附錄D常用庫函數(shù). 3.說明 1)參數(shù)的個數(shù)必須與函數(shù)表中參數(shù)的個數(shù)一致。 2)參數(shù)類型和函數(shù)值類型(即函數(shù)類型),詳見附錄。 3)三角函數(shù)

42、的參數(shù)均使用弧度:弧度角度*3.14159/180 4)參數(shù)可以是常量、變量、表達(dá)式,且允許函數(shù)的嵌套。 4.常用函數(shù) FORTRAN函數(shù)表詳見附錄D常用庫函數(shù)。整理課件56(1)常用數(shù)值處理函數(shù)函數(shù)函數(shù)功能功能ABS(x)求x的絕對值|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)求自然對數(shù)ln(x)或logexLOG10(x)求常用對數(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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論