fortran 順序結(jié)構(gòu)及基本語句_第1頁
fortran 順序結(jié)構(gòu)及基本語句_第2頁
fortran 順序結(jié)構(gòu)及基本語句_第3頁
fortran 順序結(jié)構(gòu)及基本語句_第4頁
fortran 順序結(jié)構(gòu)及基本語句_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 1第三講第三講 順序結(jié)構(gòu)及基本語句順序結(jié)構(gòu)及基本語句長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 23.1 3.1 數(shù)據(jù)類型及內(nèi)存分配數(shù)據(jù)類型及內(nèi)存分配l FORTRAN 90FORTRAN 90預(yù)定義五種內(nèi)部數(shù)據(jù)類型預(yù)定義五種內(nèi)部數(shù)據(jù)類型: :u整型整型(INTEGER)(INTEGER)u實型實型(REAL)(REAL)u復型復型(COMPLEX)(COMPLEX)u字符型字符型(CHARACTER)(CHARACTER)u邏輯型邏輯型(LOGICAL)(LOGICAL)l內(nèi)部

2、數(shù)據(jù)類型分為兩類內(nèi)部數(shù)據(jù)類型分為兩類: :u數(shù)值型數(shù)值型( (整型、實型和復型整型、實型和復型) )u非數(shù)值型非數(shù)值型( (字符型和邏輯型字符型和邏輯型) )l在程序中需要選擇和使用符合精度和范圍要求的數(shù)據(jù)類型,根據(jù)需在程序中需要選擇和使用符合精度和范圍要求的數(shù)據(jù)類型,根據(jù)需要可指定要可指定KINDKIND值參數(shù),值參數(shù),種別種別。通過。通過KINDKIND值參數(shù)確定數(shù)據(jù)最佳的存儲開值參數(shù)確定數(shù)據(jù)最佳的存儲開銷、精度和范圍。銷、精度和范圍。表表3-13-1給出內(nèi)部數(shù)據(jù)類型的不同給出內(nèi)部數(shù)據(jù)類型的不同KINDKIND值參數(shù)及存儲值參數(shù)及存儲開銷。開銷。數(shù)據(jù)類型都具有參數(shù)化特性數(shù)據(jù)類型都具有參數(shù)化

3、特性(KIND(KIND參參數(shù),數(shù),種別種別),),通過通過KINDKIND參數(shù)對其進行參數(shù)對其進行細化??芍苯邮褂脙?nèi)部數(shù)據(jù)類型說細化。可直接使用內(nèi)部數(shù)據(jù)類型說明數(shù)據(jù)對象明數(shù)據(jù)對象( (常量、變量、數(shù)組等常量、變量、數(shù)組等) )長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 3表表3-1 內(nèi)部數(shù)據(jù)類型內(nèi)部數(shù)據(jù)類型KIND值參數(shù)及存儲開銷值參數(shù)及存儲開銷長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 43.1 3.1 常量常量/ /整數(shù)整數(shù)/ /范圍范圍FORTRAN 90FORTRAN 90通過通過KINDKIND值確定整數(shù)的值確

4、定整數(shù)的存儲開銷存儲開銷、最大位數(shù)最大位數(shù)和和取值范圍取值范圍,如表,如表3-23-2所示。缺省所示。缺省KINDKIND值則取默認值值則取默認值4 4。 KINDKIND值值 字節(jié)數(shù)字節(jié)數(shù) 二進位數(shù)二進位數(shù) 取值范圍取值范圍 1 1 8 -1281 1 8 -128127,0127,0255255 2 2 16 -32768 2 2 16 -3276832767,032767,06553565535 4 4 32 -2147483648 4 4 32 -214748364821474836472147483647說明:說明:超出取值范圍的整數(shù)超出取值范圍的整數(shù), ,不產(chǎn)生語法和運行錯誤不產(chǎn)生

5、語法和運行錯誤, ,而產(chǎn)而產(chǎn)生錯誤的整數(shù),如整數(shù)生錯誤的整數(shù),如整數(shù)32771_232771_2的實際結(jié)果是的實際結(jié)果是-32765-32765。在程序。在程序中要特別注意整數(shù)取值范圍。中要特別注意整數(shù)取值范圍。長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 53.1 3.1 常量常量/ /實數(shù)實數(shù)/ /范圍范圍FORTRAN 90FORTRAN 90通過通過KINDKIND值確定實數(shù)值確定實數(shù)存儲開銷存儲開銷( (即字節(jié)數(shù)即字節(jié)數(shù)) )、精度精度和和取值范圍取值范圍,如表,如表3-33-3所示。缺省所示。缺省KINDKIND值則取默認值值則取默認值4 4。 K

6、INDKIND值值 字節(jié)字節(jié) 二進位二進位 精度精度 取值范圍取值范圍( (絕對值絕對值) ) 4 4 32 7 4 4 32 7位位 0 0,1010-38-38,1010+38+38 8 8 64 15 8 8 64 15位位 0 0,1010-308-308,1010+308+308 說明:說明:大于最大值,產(chǎn)生上溢錯,小于最小值,按大于最大值,產(chǎn)生上溢錯,小于最小值,按0 0處理。處理。長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 63.2 3.2 常量的表示形式常量的表示形式l常量是直接寫在程序中且在程序運行期間保持不變的數(shù)據(jù)常量是直接寫在程序中且在

7、程序運行期間保持不變的數(shù)據(jù), ,在程序中直接生成并直接用于計算和處理在程序中直接生成并直接用于計算和處理, ,如如125125、12.512.5、0.125E200.125E20、0.125D200.125D20、(12.5,25.5)(12.5,25.5)、“China”China”、.TRUE.TRUE.等。等。l五種內(nèi)部數(shù)據(jù)類型常量五種內(nèi)部數(shù)據(jù)類型常量: :u整型常量:整型常量:整數(shù)整數(shù)。u實型常量:實型常量:實數(shù)實數(shù)。u復型常量:復型常量:復數(shù)復數(shù)。u字符型常量:字符型常量:字符串字符串。u邏輯型常量:邏輯型常量:邏輯值邏輯值,布爾值布爾值。長安大學地學信息技術(shù)研究所長安大學地學信息技

8、術(shù)研究所09/10第一學期第一學期 7整數(shù)表示整數(shù)表示 FORTRAN 90FORTRAN 90允許在程序中表示允許在程序中表示2 2至至3636進位制整數(shù)。如十進制進位制整數(shù)。如十進制整數(shù)整數(shù)39945753994575可在程序中按下面形式描述可在程序中按下面形式描述( (輸出結(jié)果相同輸出結(jié)果相同):):Write(Write(* *, ,* *) ) 2 2# #11110011110011110011111111001111001111001111 !2 2進制整數(shù)進制整數(shù)Write(Write(* *, ,* *) ) 7 7# #4564466445644664 !7 7進制整數(shù)進制

9、整數(shù)Write(Write(* *, ,* *) ) +8+8# #1717171717171717 !8 8進制整數(shù)進制整數(shù)Write(Write(* *, ,* *) ) # #3CF3CF3CF3CF !1616進制整數(shù)進制整數(shù)Write(Write(* *, ,* *) ) +17+17# #2DE1102DE110 !1717進制整數(shù)進制整數(shù)Write(Write(* *, ,* *) ) 39945753994575 !1010進制整數(shù)進制整數(shù)Write(Write(* *, ,* *) ) 3636# #2DM8F2DM8F !3636進制整數(shù)進制整數(shù)長安大學地學信息技術(shù)研究所長

10、安大學地學信息技術(shù)研究所09/10第一學期第一學期 83.3 3.3 變量變量l五種類型五種類型: :整型整型、實型實型、復型復型、字符型字符型和和邏輯型變量邏輯型變量。l變量變量KINDKIND值意義與常量值意義與常量KINDKIND值意義相同值意義相同, ,如表如表3-13-1所示。所示。l變量類型需要通過類型聲明語句來說明。變量類型需要通過類型聲明語句來說明。l變量類型聲明有兩種形式變量類型聲明有兩種形式: :u顯式聲明顯式聲明( (優(yōu)先優(yōu)先) ) INGETER i INGETER i ,j j ,k k ,num , maxnum , max REAL a REAL a ,b b ,

11、area area ,scorescoreu隱式聲明隱式聲明( (隱含約定隱含約定) ) 隱式聲明:隱式聲明:預(yù)先定義且無須顯式聲明的類型聲明預(yù)先定義且無須顯式聲明的類型聲明, ,稱為稱為I-NI-N規(guī)則。規(guī)則。 I-NI-N規(guī)則規(guī)定:規(guī)則規(guī)定:凡是變量名以字母凡是變量名以字母I I、J J、K K、L L、M M、N N、i i、j j、k k、l l、m m、n n開頭的變量被默認為整型變量,以其它字母開頭的變量被開頭的變量被默認為整型變量,以其它字母開頭的變量被默認為實型變量。如:默認為實型變量。如:numnum為整型變量,為整型變量,areaarea為實型變量。為實型變量。 IMPLI

12、CITIMPLICIT語句:語句:定義新定義新I-NI-N規(guī)則。規(guī)則。 IMPLICIT NONEIMPLICIT NONE IMPLICIT INTEGER(A,B),REAL(I,K,L:N),CHARACTER(C) IMPLICIT INTEGER(A,B),REAL(I,K,L:N),CHARACTER(C)長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 9l語法語法 INTEGER(KIND=INTEGER(KIND=):): =,=l形式形式 INTEGER - INTEGER - 一般默認取一般默認取k=4k=4 INTEGER(INTEGER(

13、k k) )或或INTEGER(KIND=INTEGER(KIND=k k) )或或INTEGERINTEGER* *k k - - k:1,2,4,8 k:1,2,4,8l示例示例 INTEGER(INTEGER(1 1) e,d,i) e,d,i ! !聲明聲明KINDKIND值為值為1 1的的3 3個整型變量個整型變量 INTEGER f !INTEGER f !聲明聲明KINDKIND值為值為4 4的的1 1個整型變量個整型變量 INTEGER(INTEGER(2 2):a=15,b !a):a=15,b !a初值為初值為15,b15,b初值為初值為0 0 INTEGER( INTEG

14、ER(1 1):c=8#127 !c):c=8#127 !c初值為初值為8 8進制數(shù)進制數(shù)127,127,即即1010進制數(shù)進制數(shù)8787 BYTE : h=8#127 !c BYTE : h=8#127 !c初值為初值為8 8進制數(shù)進制數(shù)127,127,即即1010進制數(shù)進制數(shù)8787 說明:說明:符號符號“:”:”表示在說明中可以賦予初值。取值范圍同整數(shù)。表示在說明中可以賦予初值。取值范圍同整數(shù)。整型變量聲明整型變量聲明長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 10l語法語法 REAL(KIND=REAL(KIND=):): =,=l形式形式 REAL

15、 - REAL - 一般默認取一般默認取k=4k=4 REAL(REAL(k k) )或或REAL(KIND=REAL(KIND=k k) )或或REALREAL* *k k - - k:4,8 k:4,8 DOUBLE PRECISIONDOUBLE PRECISION - - 雙精度,等價于雙精度,等價于REAL(8)REAL(8)l示例示例 REAL(8) e,d,hREAL(8) e,d,h ! !聲明聲明KINDKIND值為值為8 8的的3 3個雙精度實型變量個雙精度實型變量 REAL f !REAL f !聲明聲明KINDKIND值為值為4(4(缺省缺省) )的的1 1個實型變量個

16、實型變量 REAL(4):a=125.5,b !aREAL(4):a=125.5,b !a初值為初值為125.5,b125.5,b初值為初值為0.00.0 REAL(8):c=12.5E+3 !c REAL(8):c=12.5E+3 !c初值為初值為12500.012500.0 DOUBLE PRECISION :k=12.5D-10 !c DOUBLE PRECISION :k=12.5D-10 !c初值為初值為12.512.5 1010-10-10 說明:說明:符號符號“:”:”表示在說明中可以賦予初值。取值范圍同實數(shù)。表示在說明中可以賦予初值。取值范圍同實數(shù)。實型變量聲明實型變量聲明長安

17、大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 11l語法語法 COMPLEX(KIND=COMPLEX(KIND=):): =,=l形式形式 COMPLEX - COMPLEX - 一般默認取一般默認取k=4k=4 COMPLEX(COMPLEX(k k) )或或COMPLEX(KIND=COMPLEX(KIND=k k) )或或COMPLEXCOMPLEX* *2k 2k - - k:4,8 k:4,8 DOUBLE COMPLEXDOUBLE COMPLEX - - 雙精度,等價于雙精度,等價于COMPLEX(8)COMPLEX(8)l示例示例 COMPLEX

18、(8)e,d,x !COMPLEX(8)e,d,x !聲明聲明KINDKIND值為值為8 8的的3 3個雙精度復型變量個雙精度復型變量 COMPLEX f !COMPLEX f !聲明聲明KINDKIND值為值為4(4(缺省缺省) )的的1 1個復型變量個復型變量 COMPLEX(4):a=(5.7,8.5),b !aCOMPLEX(4):a=(5.7,8.5),b !a初值為初值為(5.7,8.5)(5.7,8.5) COMPLEX :h=(12.5,25.3) !d COMPLEX :h=(12.5,25.3) !d初值為初值為(12.5,25.3) (12.5,25.3) DOUBLE

19、COMPLEX :c=(12.5D-10,125)!c DOUBLE COMPLEX :c=(12.5D-10,125)!c初值為初值為(12.5D-10,125D0)(12.5D-10,125D0)復型變量聲明復型變量聲明長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 12l語法語法 CHARACTERCHARACTER: ()(LEN=)(LEN=)* * * * =,* * = l形式形式 CHARACTER - CHARACTER - 一般默認取一般默認取k=1k=1 CHARACTER(CHARACTER(k k) )或或CHARACTER(LEN=C

20、HARACTER(LEN=k k) )或或CHARACTERCHARACTER* *k k - k: k:正整數(shù)正整數(shù)l示例示例 CHARACTER(4)e,d,t !CHARACTER(4)e,d,t !聲明長度為聲明長度為4 4的的3 3個字符型變量個字符型變量 CHARACTER fCHARACTER f,g g* *5 !5 !聲明長度為聲明長度為1(1(缺省缺省) )和為和為5 5的的2 2個字符型變量個字符型變量 CHARACTER(1):c=$CHARACTER(1):c=$,s s* *4=This4=This字符型變量聲明字符型變量聲明長安大學地學信息技術(shù)研究所長安大學地學信

21、息技術(shù)研究所09/10第一學期第一學期 13l語法語法 LOGICAL(KIND=LOGICAL(KIND=) : : =,=l形式形式 LOGICAL - LOGICAL - 一般默認取一般默認取k=4k=4 LOGICAL(LOGICAL(k k) )或或LOGICAL(KIND=LOGICAL(KIND=k k) )或或LOGICALLOGICAL* *k k - - k:1,2,4,8 k:1,2,4,8l示例示例 LOGICAL(LOGICAL(1 1) e,d,h !) e,d,h !聲明聲明KINDKIND值為值為1 1的的3 3個邏輯型變量個邏輯型變量 LOGICAL f !L

22、OGICAL f !聲明聲明KINDKIND值為值為4 4的的1 1個邏輯型變量個邏輯型變量 LOGICAL(LOGICAL(2 2):a=.TRUE.,b !a):a=.TRUE.,b !a初值為初值為.TRUE.,b.TRUE.,b初值為初值為.FALSE.FALSE.說明:說明:符號符號“:”:”表示在說明中可以賦予初值。表示在說明中可以賦予初值。邏輯型變量聲明邏輯型變量聲明長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 14變量存儲表示變量存儲表示長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 153.4 3.4 表達式表

23、達式l表達式是由表達式是由操作數(shù)操作數(shù)、操作符操作符和和圓括號圓括號組成的組成的式子式子。u操作數(shù):操作數(shù):常數(shù)、常量、變量或函數(shù)常數(shù)、常量、變量或函數(shù)u操作符:操作符:算術(shù)、字符、關(guān)系或邏輯操作符號算術(shù)、字符、關(guān)系或邏輯操作符號( (運算符運算符) )u圓括號圓括號: : ( ), ( ),用以改變操作數(shù)的操作順序。用以改變操作數(shù)的操作順序。l不同類型的操作數(shù)和操作符組成的表達式其操作方式、操不同類型的操作數(shù)和操作符組成的表達式其操作方式、操作規(guī)則及操作結(jié)果亦不相同。作規(guī)則及操作結(jié)果亦不相同。l四種類型表達式四種類型表達式: :u算術(shù)表達式算術(shù)表達式: : (number+12) (numb

24、er+12)* *count count u字符表達式字符表達式: : str1(i:j)/str2 str1(i:j)/str2 u關(guān)系表達式關(guān)系表達式: : (x+y)1.25E-25 (x+y) - ( (* *,/),/) - - 單目單目(+,-)(+,-) - - 雙目雙目(+,-)(+,-)l結(jié)合規(guī)則結(jié)合規(guī)則: :u左結(jié)合左結(jié)合: : 相鄰同級運算符從左向右依次運算。如:相鄰同級運算符從左向右依次運算。如:( (* *,/)(+,-),/)(+,-)u右結(jié)合右結(jié)合: : 相鄰同級運算符從右向左依次運算。如:相鄰同級運算符從右向左依次運算。如:* * *l示例示例a+b-c+da+

25、b-c+d* *e/f-ge/f-g* * *h h* * *i i(a+b)-c)+(d(a+b)-c)+(d* *e)/f)+(ge)/f)+(g* * *(h(h* * *i)i)(a+a(a+a* *b b* * *2-82-8* *c c* *d)/(-e+fd)/(-e+f* * *g g* * *3)3)l操作數(shù)類型轉(zhuǎn)換:允許混合運算,按最高級進行轉(zhuǎn)換。操作數(shù)類型轉(zhuǎn)換:允許混合運算,按最高級進行轉(zhuǎn)換。12+13+14.512+13+14.5(12+13)+14.5(12+13)+14.525+14.525+14.525.0+14.525.0+14.539.539.5算術(shù)表達式算術(shù)

26、表達式長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 17l字符表達式:字符表達式:字符操作數(shù)字符操作數(shù)、字符操作符字符操作符和和圓括號圓括號組成。組成。u字符操作數(shù):字符操作數(shù):字符、字符串、字符型變量或字符型函數(shù)字符、字符串、字符型變量或字符型函數(shù)u字符操作符:字符操作符:求子串求子串(i:j),(i:j),連接符連接符/u圓括號圓括號: : ( ), ( ),用以改變操作數(shù)的操作順序。用以改變操作數(shù)的操作順序。l示例示例CHARACTERCHARACTER* *19 : str,string19 : str,string=This is a compute

27、r.=This is a computer.CHARACTERCHARACTER* *1 substr11 substr1* *4,substr24,substr2* *2,substr3,substr42,substr3,substr4* *9 9n=2;m=4n=2;m=4substr1=string(:4) !substr1=string(:4) !子串為子串為“This”This”substr2=string(6:7) !substr2=string(6:7) !子串為子串為“is”is”substr3=string(n+2:m) !substr3=string(n+2:m) !子串為

28、子串為“a”a”substr4=string(11:) !substr4=string(11:) !子串為子串為“computer.”computer.”strstr=substr1/ /substr2/ /substr3/ /s=substr1/ /substr2/ /substr3/ /substr4ubstr4 !str !str=This is a computer.=This is a computer.字符表達式字符表達式長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 18l關(guān)系表達式:關(guān)系表達式:算術(shù)或字符表達式算術(shù)或字符表達式、關(guān)系運算符關(guān)系運算

29、符組成組成, ,結(jié)果為結(jié)果為邏輯值邏輯值。關(guān)系運算符:關(guān)系運算符: 、 = 、 = = 、 = = = = 、/=/= .LT. .LT.、.LE.LE.、.GT.GT.、.GE.GE.、.EG.EG.、.NE.NE.說明:說明:對于復型關(guān)系比較運算,只有等于和不等于兩種。對于復型關(guān)系比較運算,只有等于和不等于兩種。對于字符型關(guān)系比較運算,按字典次序?qū)τ谧址完P(guān)系比較運算,按字典次序(ASCII(ASCII碼值大小碼值大小) )進行。進行。l示例示例4525.5 !4525.5 !結(jié)果為結(jié)果為.FALSE.FALSE.(12+2(12+2* *5) .GE. 10 !5) .GE. 10 !結(jié)

30、果為結(jié)果為.TRUE.TRUE.(2.5,5.8) .NE. (2.5,5.87) !(2.5,5.8) .NE. (2.5,5.87) !結(jié)果為結(jié)果為.TRUE.TRUE.(2.5,5.8) .GE. (2.5,5.87) !(2.5,5.8) .GE. (2.5,5.87) !該關(guān)系表達式非法該關(guān)系表達式非法banana=apple !banana=apple !結(jié)果為結(jié)果為.FALSE.FALSE.apple=apple !apple=apple !結(jié)果為結(jié)果為.TRUE.TRUE.This is a /penThis is a /pen. .=This is a /pen - .AND

31、.AND. - - .OR.OR. - - .XOR.XOR.、.EQV.EQV.、.NEQV.NEQV.l結(jié)合規(guī)則結(jié)合規(guī)則: :同級運算符均采用左結(jié)合。同級運算符均采用左結(jié)合。l示例示例(12+a)(12+a)* *3a+33a+3* *b .AND. a+b3b .AND. a+b3* *a+2a+2* *b bThis/s1price .OR. student= =s1This/s1price .OR. student= =s190=score .and. score=100 90=score .and. score=100 90score100 90score100邏輯表達式邏輯表達式

32、長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 20 A A 值值 B B 值值 .NOT.NOT.A A A A.AND.AND.B B A A.OR.OR.B B A A.XOR.XOR.B B A A.EQV.EQV.B B A A.NEQV.NEQV.B B.TRUE. .TRUE. .FALSE. .TRUE. .TRUE. .TRUE. .TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .TRUE. .FALSE.FALSE. .TRUE. .FALSE.TRUE. .FALSE. .FALSE. .FALSE. .TRUE.

33、 .TRUE. .FALSE. .TRUE.TRUE. .FALSE. .FALSE. .FALSE. .TRUE. .TRUE. .FALSE. .TRUE.FALSE. .TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .TRUE.TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .TRUE.FALSE. .FALSE.FALSE. .FALSE .TRUE. .FALSE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE. .FALSE. .FALSE. .FALSE. .

34、TRUE. .FALSE.表表3-5 邏輯運算符功能邏輯運算符功能長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 21l整型運算精確整型運算精確, ,不產(chǎn)生誤差不產(chǎn)生誤差, ,超出取值范圍,將產(chǎn)生錯誤整數(shù),通過擴大超出取值范圍,將產(chǎn)生錯誤整數(shù),通過擴大KINDKIND值來解決。如值來解決。如130_1130_1超范圍超范圍, ,可用可用130_2130_2來表示就不會超范圍。來表示就不會超范圍。l實型運算會產(chǎn)生誤差。受有效位數(shù)限制實型運算會產(chǎn)生誤差。受有效位數(shù)限制, ,單精度實數(shù)有效位數(shù)單精度實數(shù)有效位數(shù)7 7位位, ,雙精雙精度 實 數(shù) 有 效 位 數(shù)度 實

35、數(shù) 有 效 位 數(shù) 1 51 5 位位 , , 超 出 有 效 位 數(shù) 產(chǎn) 生 誤 差 。超 出 有 效 位 數(shù) 產(chǎn) 生 誤 差 。如如:11111.1:11111.1* *1111.11=12345654.321,1111.11=12345654.321,實際結(jié)果近似為實際結(jié)果近似為1.23456541.2345654 1010+7+7。l產(chǎn)生誤差情況產(chǎn)生誤差情況: :u加減運算次序不當產(chǎn)生誤差加減運算次序不當產(chǎn)生誤差精確計算:精確計算:0.001+3257845.0-3257840.0=5.0010.001+3257845.0-3257840.0=5.001程序計算:程序計算:0.001+

36、3257845.0-3257840.0=5.0000.001+3257845.0-3257840.0=5.000改進計算:改進計算:3257845.0-3257840.0+0.001=5.0013257845.0-3257840.0+0.001=5.001解決辦法是交換加減運算次序解決辦法是交換加減運算次序, ,避免兩個相差很大的數(shù)相加或相減。避免兩個相差很大的數(shù)相加或相減。u乘除運算次序不當產(chǎn)生誤差乘除運算次序不當產(chǎn)生誤差精確計算:精確計算:(1.0/3.0)(1.0/3.0)* *3.0=1.03.0=1.0程序計算:程序計算:(1.0_4/3.0_4)(1.0_4/3.0_4)* *3.

37、0_8=3.0_8=1.000000029802321.00000002980232 改進計算:改進計算:(3.0_8/3.0_4)(3.0_8/3.0_4)* *1.0_4=1.000000000000001.0_4=1.00000000000000解決辦法是交換乘除運算次序解決辦法是交換乘除運算次序, ,避免兩個非整除的數(shù)相除。避免兩個非整除的數(shù)相除。數(shù)值運算問題數(shù)值運算問題長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 223.5 3.5 賦值語句賦值語句l賦值語句:計算表達式的值并將其賦給一個變量、數(shù)組元素。賦值語句:計算表達式的值并將其賦給一個變量、數(shù)

38、組元素。l賦值語句語法描述賦值語句語法描述: :l = l l說明說明: : 賦值號左邊變量類型和右邊表達式類型必須賦值兼容。賦值號左邊變量類型和右邊表達式類型必須賦值兼容。 賦值語句中左邊變量和右邊表達式不能交換。賦值語句中左邊變量和右邊表達式不能交換。 如如“total=a+btotal=a+b* *c”c”不能寫成不能寫成“a+ba+b* *c=total”c=total”?!癮=b”a=b”與與“b=a”b=a”不同。不同。 左邊變量類型左邊變量類型 右邊表達式類型右邊表達式類型 賦值語句類型賦值語句類型 INTEGER(INTEGER(整型整型) INTEGER,REAL,COMPL

39、EX ) INTEGER,REAL,COMPLEX 算術(shù)賦值語句算術(shù)賦值語句 REAL(REAL(實型實型) INTEGER,REAL,COMPLEX ) INTEGER,REAL,COMPLEX 算術(shù)賦值語句算術(shù)賦值語句 COMPLEX(COMPLEX(復型復型) INTEGER,REAL,COMPLEX ) INTEGER,REAL,COMPLEX 算術(shù)賦值語句算術(shù)賦值語句 CHARACTER(CHARACTER(字符型字符型) CHARACTER ) CHARACTER 字符賦值語句字符賦值語句 LOGICAL(LOGICAL(邏輯型邏輯型) LOGICAL ) LOGICAL 邏輯賦值

40、語句邏輯賦值語句長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 23l算術(shù)賦值語句:算術(shù)賦值語句:左邊變量和右邊表達式類型均為整型、實型或復型。左邊變量和右邊表達式類型均為整型、實型或復型。l算術(shù)賦值語句在執(zhí)行中會發(fā)生算術(shù)賦值語句在執(zhí)行中會發(fā)生強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換, ,轉(zhuǎn)換后值賦于左邊變量。轉(zhuǎn)換后值賦于左邊變量。l在使用算術(shù)賦值語句時在使用算術(shù)賦值語句時, ,應(yīng)盡可能保持賦值號兩側(cè)類型相同應(yīng)盡可能保持賦值號兩側(cè)類型相同, , l示例:示例: INTEGER(2) AINTEGER(2) A INTEGER(4) B INTEGER(4) B A=123456

41、 A=123456 B=12.5 B=12.5* *1.51.5 上面算術(shù)賦值語句執(zhí)行后上面算術(shù)賦值語句執(zhí)行后,a,a的值不是的值不是123456,123456,而是而是-7616,b-7616,b的值不是的值不是18.75,18.75,而是而是1818。 算術(shù)賦值語句類型轉(zhuǎn)換是算術(shù)賦值語句的難點算術(shù)賦值語句類型轉(zhuǎn)換是算術(shù)賦值語句的難點, ,應(yīng)重點掌握。表應(yīng)重點掌握。表4-194-19給出算術(shù)賦值語句類型轉(zhuǎn)換說明。給出算術(shù)賦值語句類型轉(zhuǎn)換說明。表表3-63-6給出算術(shù)賦值語句類型轉(zhuǎn)換示給出算術(shù)賦值語句類型轉(zhuǎn)換示例。例。算術(shù)賦值語句算術(shù)賦值語句長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所

42、09/10第一學期第一學期 24表表3-6 算術(shù)賦值語句類型轉(zhuǎn)換示例算術(shù)賦值語句類型轉(zhuǎn)換示例變量變量a a類型類型 表達式表達式 變量變量a a值值 說明說明INTEGER(1) A=125 125 INTEGER(1) A=125 125 未超出未超出A A范圍范圍INTEGER(2) A=32771_4 -32765 INTEGER(2) A=32771_4 -32765 超出超出A A范圍范圍INTEGER(1) A=123.45 123 INTEGER(1) A=123.45 123 整數(shù)部分未超范圍整數(shù)部分未超范圍INTEGER(2) A=32.77145E+3 -32765 INT

43、EGER(2) A=32.77145E+3 -32765 整數(shù)部分超范圍整數(shù)部分超范圍INTEGER(1) A=(123.4,25.5) 123 INTEGER(1) A=(123.4,25.5) 123 實部整數(shù)部分未超范圍實部整數(shù)部分未超范圍REAL(4) A=125 125.0 REAL(4) A=125 125.0 未超出未超出A A有效位數(shù)有效位數(shù)REAL(4) A=1234567911 1234567900.0 REAL(4) A=1234567911 1234567900.0 超出超出A A有效位數(shù)有效位數(shù)REAL(4) A=1.234567911D9 1234567900.0

44、REAL(4) A=1.234567911D9 1234567900.0 超出超出A A有效位數(shù)有效位數(shù)COMPLEX(4) A=125 (125.0,0.0) COMPLEX(4) A=125 (125.0,0.0) 未超出未超出A A實部有效位數(shù)實部有效位數(shù)COMPLEX(4) A=1.234567911D9 (1.2345679E9,0.0) COMPLEX(4) A=1.234567911D9 (1.2345679E9,0.0) 超出超出A A實部有效位數(shù)實部有效位數(shù)長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 25l字符賦值語句:左邊變量和右邊表達式

45、類型均為字符型。字符賦值語句:左邊變量和右邊表達式類型均為字符型。l字符賦值語句在執(zhí)行中會發(fā)生強制長度轉(zhuǎn)換字符賦值語句在執(zhí)行中會發(fā)生強制長度轉(zhuǎn)換, ,轉(zhuǎn)換后值賦予左邊變量。轉(zhuǎn)換后值賦予左邊變量。u右邊長度小于左邊右邊長度小于左邊, ,將表達式值賦予變量左側(cè)將表達式值賦予變量左側(cè), ,不足補空格。不足補空格。u右邊長度大于左邊右邊長度大于左邊, ,將表達式值左側(cè)部分賦予變量將表達式值左側(cè)部分賦予變量, ,多余截去。多余截去。l示例:示例: CHARACTERCHARACTER* *4 str14 str1* *8 8,str2str2* *17,str3,str417,str3,str4 str

46、1=students str1=students str2=Are you /str1/? str2=Are you /str1/? str3=are str3=are str4=students str4=students str2(9:16)=teachers str2(9:16)=teachers字符賦值語句字符賦值語句長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 26l邏輯賦值語句:邏輯賦值語句:左邊變量和右邊表達式類型均為邏輯型左邊變量和右邊表達式類型均為邏輯型。l邏輯賦值語句在執(zhí)行邏輯賦值語句在執(zhí)行會發(fā)生會發(fā)生強制強制KINDKIND值值轉(zhuǎn)換轉(zhuǎn)換,

47、 ,改變存儲改變存儲, ,不改變不改變邏輯值。邏輯值。 l示例:示例: INTEGER : i=150INTEGER : i=150 LOGICAL(2) log1 LOGICAL(2) log1,log2log2 LOGICAL(4) log3 LOGICAL(4) log3 log1=.TRUE. log1=.TRUE. log2=log1 .AND. i100 log2=log1 .AND. i100 log3=log2 log3=log2邏輯賦值語句邏輯賦值語句長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 273.6 3.6 表控語句表控語句l輸入輸入

48、/ /輸出數(shù)據(jù)時輸出數(shù)據(jù)時, ,需要告訴程序三種信息需要告訴程序三種信息: :一是輸入一是輸入/ /輸輸出哪些數(shù)據(jù);二是用何種格式輸入出哪些數(shù)據(jù);二是用何種格式輸入/ /輸出(每個數(shù)據(jù)如何表輸出(每個數(shù)據(jù)如何表示,占多少字符位,數(shù)據(jù)間如何分隔等);三是從什么設(shè)示,占多少字符位,數(shù)據(jù)間如何分隔等);三是從什么設(shè)備上輸入輸出。備上輸入輸出。l根據(jù)告訴信息的要求和方式不同根據(jù)告訴信息的要求和方式不同,FORTRAN 90,FORTRAN 90有三種類型有三種類型的輸入輸出的輸入輸出: : (1 1)按用戶指定的格式輸入)按用戶指定的格式輸入/ /輸出輸出( (有格式輸入輸出有格式輸入輸出) )。 (

49、2 2)按系統(tǒng)隱含的標準格式輸入)按系統(tǒng)隱含的標準格式輸入/ /輸出輸出( (表控格式輸入表控格式輸入/ /輸出、自由格式輸入輸出、自由格式輸入/ /輸出輸出) )。 (3 3)按二進制形式輸入)按二進制形式輸入/ /輸出輸出( (無格式輸入輸出)無格式輸入輸出)長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 28 使用表控輸入語句,用戶不必指定數(shù)據(jù)格式,而按照系統(tǒng)隱含規(guī)定的標準格式輸入數(shù)據(jù)。系統(tǒng)隱含規(guī)定的格式非常簡單,數(shù)據(jù)按合法形式表示,數(shù)據(jù)之間用逗號或空格間隔即可。表控輸入語句的語法描述表控輸入語句的語法描述 READ(READ(* *, ,* *) ) ,

50、長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 29(1)(1)第一個星號第一個星號“* *”表示從系統(tǒng)隱含指定的輸入設(shè)備表示從系統(tǒng)隱含指定的輸入設(shè)備( (一般一般為鍵盤為鍵盤) )上輸入上輸入第二個星號第二個星號“* *”表示使用表控格式輸入。表示使用表控格式輸入。(2)(2)執(zhí)行該語句執(zhí)行該語句, ,輸入光標等待鍵入數(shù)據(jù)以及回車鍵。輸入光標等待鍵入數(shù)據(jù)以及回車鍵。 下面語句是合法輸入語句下面語句是合法輸入語句: : READ( READ(* *, ,* *)i,j)i,j READ READ * *,i,j,i,j(3)(3)輸入表必須由變量組成輸入表必須由

51、變量組成(4)(4)輸入表中可以有多個不同類型變量。輸入表中可以有多個不同類型變量。 下面語句是合法聲明和輸入語句下面語句是合法聲明和輸入語句: : INTEGER i,jINTEGER i,j REAL a,b REAL a,b CHARACTER CHARACTER* *8 str1,str28 str1,str2* *5 5 LOGICAL log1,log2 LOGICAL log1,log2 READ( READ(* *, ,* *)str1,i,j,str2,a,log1,b,log2)str1,i,j,str2,a,log1,b,log2長安大學地學信息技術(shù)研究所長安大學地學信息

52、技術(shù)研究所09/10第一學期第一學期 30(5)(5)每個每個READREAD語句都從新的一行開始讀數(shù)據(jù)。語句都從新的一行開始讀數(shù)據(jù)。 例如執(zhí)行下面語句例如執(zhí)行下面語句: : READ(READ(* *, ,* *)i,j)i,j READ( READ(* *, ,* *)a)a READ( READ(* *, ,* *)b)b 按以下方式輸入按以下方式輸入4 4個數(shù)據(jù)個數(shù)據(jù): : 12,25,12.512,25,12.5 25.5 25.5 第一個第一個READREAD語句依次讀語句依次讀1212和和25,25,賦予賦予i i和和j j。 第二個第二個READREAD語句不是接下去讀第一行剩

53、余的語句不是接下去讀第一行剩余的12.5,12.5,而是從第而是從第二行開始讀數(shù)二行開始讀數(shù), ,讀入讀入25.525.5賦予賦予a a。 第三個第三個READREAD語句則沒有數(shù)據(jù)可讀語句則沒有數(shù)據(jù)可讀, ,等待用戶繼續(xù)輸入數(shù)據(jù)。等待用戶繼續(xù)輸入數(shù)據(jù)。長安大學地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 31 使用表控輸出語句,用戶不必指定數(shù)據(jù)的格式,而按照系統(tǒng)隱含規(guī)定的標準格式輸出數(shù)據(jù)。系統(tǒng)隱含規(guī)定的格式非常簡單,數(shù)據(jù)按規(guī)定的輸出寬度輸出,數(shù)據(jù)之間不添加分隔符。表控輸出語句的語法描述表控輸出語句的語法描述 write(write(* *, ,* *) , 長安大學

54、地學信息技術(shù)研究所長安大學地學信息技術(shù)研究所09/10第一學期第一學期 32(1 1)第一個星號)第一個星號“* *”表示從系統(tǒng)隱含指定的輸出設(shè)備表示從系統(tǒng)隱含指定的輸出設(shè)備( (一般為顯示一般為顯示器器) )上輸出;第二個星號上輸出;第二個星號“* *”表示按隱含規(guī)定的標準格式輸出數(shù)據(jù)表示按隱含規(guī)定的標準格式輸出數(shù)據(jù)。(2 2)輸出表必須由表達式組成。表達式可以是常量、常數(shù)、變量、)輸出表必須由表達式組成。表達式可以是常量、常數(shù)、變量、函數(shù)等。函數(shù)等。 下面語句是合法輸出語句下面語句是合法輸出語句: : write(write(* *, ,* *) )i=i=,i,i,j=j=,j,j write( write(* *, ,* *) )i+j=i+j=,i+j,i+j ! !計算計算i+j,i+j,并輸出并輸出(3 3)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論