FORTRAN學(xué)習(xí)語(yǔ)言_第1頁(yè)
FORTRAN學(xué)習(xí)語(yǔ)言_第2頁(yè)
FORTRAN學(xué)習(xí)語(yǔ)言_第3頁(yè)
FORTRAN學(xué)習(xí)語(yǔ)言_第4頁(yè)
FORTRAN學(xué)習(xí)語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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、FORTRAN 語(yǔ)言簡(jiǎn)介By 陳鯨太1Outline 語(yǔ)言簡(jiǎn)介、編譯器簡(jiǎn)介Fortran 基本事項(xiàng)輸出、輸入及宣告格式化輸出程式結(jié)構(gòu)流程控制陣列函式2Fortran 簡(jiǎn)介全名Formula TranslatorIBM 1954 1957第一個(gè)被廣泛使用的高階語(yǔ)言演化1978 FORTRAN 771992 FORTRAN 901997 FORTRAN 953FORTRAN COMPILER 簡(jiǎn)介1Visual FORTRANMicrosoft Digital Compaq HP?Microsoft Visual Studio完整的windows程式開(kāi)發(fā)工具可與Visual C+相互連結(jié)使用4FO

2、RTRAN COMPILER 簡(jiǎn)介2計(jì)中工作站提供Fortran 90 及 Fortran 77編譯方式輸出至a.outf77 f90 輸出至指定檔案(sample)f77 o samplef90 o sample5FORTRAN COMPILER 簡(jiǎn)介3計(jì)中工作站之 Fortran只提供在 ccsun2635總數(shù):套登入telnet .tw帳號(hào):u9031XXX密碼:預(yù)設(shè)值是身份証字號(hào)6FORTRAN 基本事項(xiàng)1字元集英文字母:AZ (大小寫(xiě)不分)數(shù)字:09特殊符號(hào):冒號(hào)、等號(hào)、加、減、乘、除、底線 etc7FORTRAN 基本事項(xiàng)2程式碼寫(xiě)作格式Fix

3、ed FormatFortran 77 的舊格式為了使用打孔卡而發(fā)明詳細(xì)規(guī)定每個(gè)字元的“用法”Free FormatFortran 90之後的新格式提供較大彈性8FORTRAN 基本事項(xiàng)3Fixed Format第1個(gè)字元如果是字母c,C或*(星號(hào)),表示此行是註解第1-5個(gè)字元如果這邊是數(shù)字,表示這一行的代號(hào),否則應(yīng)為空白第6個(gè)字元如果是0以外的字元,表示這一行程式會(huì)接續(xù)上一行第7-72個(gè)字元FORTRAN程式碼的寫(xiě)作區(qū)域第73個(gè)字元之後不使用,超過(guò)部份會(huì)被忽略,有的編譯器會(huì)有錯(cuò)誤訊息9FORTRAN 基本事項(xiàng)4Free Format不規(guī)定每一行第幾字元有什麼作用驚嘆號(hào) ! 後面文字是註解每

4、行可寫(xiě)作132個(gè)字元行號(hào)在每行程式最前面一行程式碼的最後如果是符號(hào)&,代表下一行程式會(huì)和這一行連接。10FORTRAN 基本事項(xiàng)5! Free Formatprogram mainwrite(*,*) “hello” ! 列印出hello這個(gè)字write(*,*) &“hello”wri&te(*,*) “hello”end11輸出1program mainwrite(*,*) “hello”stopend12輸出2Write(*,*)第一個(gè)參數(shù):輸出的位置第二個(gè)參數(shù):輸出格式相等寫(xiě)法:WRITE(*,*) “HELLO”WRITE(6,*) “HELLO”WRITE(UNIT=6, FMT=

5、*) “HELLO”13輸出3關(guān)於write(*,*)自動(dòng)換行印出雙引號(hào)使用連續(xù)2個(gè)雙引號(hào)WRITE(*,*) “ MY NAME IS “”CASTER”. ” FORTRAN 90 雙引號(hào)/單引號(hào)FORTRAN 77 單引號(hào)14輸出4PRINT語(yǔ)法:PRINT *, ”輸出字串”專門(mén)對(duì)螢?zāi)惠敵?5結(jié)束程式結(jié)束程式ENDEND PROGRAMEND PROGRAM MAIN ! MAIN是主程式的名字Fortran 90 1, 2, 3Fortran 77 1 16資料型態(tài)1整數(shù)(integer)宣告方式:integer a內(nèi)定範(fàn)圍為232 232 17資料型態(tài)2浮點(diǎn)數(shù)宣告方式:real a

6、 或 real*4 a 單精確度3.4*1038 3.4*1038 有效位數(shù)67位雙精確度:real*8 a 1.79*10308有效位數(shù)1516位18資料型態(tài)3複數(shù)宣告:complex a使用:a=(x,y) !x為實(shí)部,y為虛部program maincomplex a,ba=(1.0,1.0)b=(3.0,4.3)write(*,*) “a+b=”, a+bwrite(*,*) “a-b=”, a-bwrite(*,*) “a*b=”,a*bwrite(*,*) “a/b=”, a/bstopend19資料型態(tài)4執(zhí)行結(jié)果:a+b= (4.0,5.3)a-b= (-2.0,-3.30000

7、01)a*b= (-1.3000002,7.3)a/b= (0.2655511,-0.047289926)20資料型態(tài)5字元及字串Character a !宣告字元Character*10 a !宣告長(zhǎng)度為10的字串其它寫(xiě)法CHARACTER*10CHARACTER(LEN=10)CHARACTER*(10)給予初始值A(chǔ)=”字串內(nèi)容” 21輸入指令輸入指令的基本語(yǔ)法如下:INTEGER AREAD (*,*) A !讀入一個(gè)整數(shù),並存到A內(nèi)READ (5,*) A !同上READ(UNIT=5, FMT=*) A !同上22格式化輸出1關(guān)於I WRITE(*,”(I5)”) 100 !用5個(gè)字

8、元的欄位來(lái)輸出一個(gè)整數(shù) OUTPUT : _ _ 1 0 0 WRITE(*,”(I3)”) 100000 OUTPUT: * * * WRITE(*,”(I5.4)”) 3 !輸出五個(gè)字元欄位,至少輸出4位,不足補(bǔ)0OUTPUT: _ 0 0 0 323格式化輸出2關(guān)於FWRITE(*,”(F9.3)”) 123.45 !輸出9個(gè)字元欄位,包括小數(shù)部份3個(gè)位數(shù)OUTPUT: _ _ 1 2 3 . 4 5 0關(guān)於EWRITE(*,”(E15.7)”) 123.45 !用科學(xué)計(jì)號(hào)表示法,輸出15個(gè)字元欄位,小數(shù)部份佔(zhàn)7位OUTPUT : _ _ 0 . 1 2 3 4 5 0 0 E + 0

9、3 24格式化輸出3關(guān)於A WRITE (*,”(A10)”) “HELLO” !用10個(gè)字元寬度輸出字串OUTPUT: _ _ _ _ _ H E L L OWRITE (*,”(A3)”) “HELLO”O(jiān)UTPUT : H E L25格式化輸出4關(guān)於B WRITE (*,”(B6.5)”) 3 !把3變成二進(jìn)位輸出,字6個(gè)字元寬,至少輸出5位OUTPUT : _ 0 0 0 1 126格式化輸出5關(guān)於X WRITE (*,”(3X)”) 20 !輸出前先填3個(gè)空白字元OUTPUT: _ _ _ 2 027變數(shù)名稱取名原則1長(zhǎng)度限制FORTRAN 77 至少6FORTRAN 90 至少31

10、不需宣告就能使用第一個(gè)字母為I, J, K, L, M, N 整數(shù)其它浮點(diǎn)數(shù)28變數(shù)名稱取名原則2PROGRAM MAIN I=11+22 WRITE(*,*) “11+22=”, JSTOPEND結(jié)果:11+22=0 29變數(shù)名稱取名原則3關(guān)閉內(nèi)定型態(tài)的功能IMPLICIT NONE每個(gè)變數(shù)必需事先宣告位置:PROGRAM指令的下一行30常數(shù)的宣告方式一 REAL PIPARAMETER(PI=3.14159)方式二 REAL, PARAMETER :PI=3.1415931程式結(jié)構(gòu)32FLOW CONTROL1IF THEN ELSE語(yǔ)法:IF(邏輯判斷式) THEN執(zhí)行動(dòng)作1ELSE執(zhí)行

11、動(dòng)作2END IF 33FLOW CONTROL2PROGRAM MAINIMPLICIT NONEREAL HIEGHTREAL WEIGHTREAD(*,*) HEIGHTREAD(*,*) WEIGHTIF (WEIGHT HEIGHT-100) THENWRITE(*,*) “TOO FAT!”ELSEWRITE(*,*) “UNDER CONTROL”END IFSTOPEND34FLOW CONTROL3邏輯運(yùn)算式= = 相等/ = 不相等 大於 = 大於等於 小於 = 小於等於.AND. 如果兩邊式子都成立,整個(gè)條件就成立.OR.兩邊的式子只要有一個(gè)成立,整個(gè)條件就成立.NOT.

12、如果後面的式子不成立,整個(gè)式子就算成立.EQV.兩邊式子的邏輯運(yùn)算結(jié)果相同時(shí),整個(gè)式子就成立.NEQV.兩邊式子的邏輯運(yùn)算結(jié)果不同時(shí),整個(gè)式子就成立35FLOW CONTROL4FORTRAN 77的邏輯運(yùn)算式.EQ. 等於.NE. 不等於.GT. 大於.GE. 大於等於.LT. 小於.LE. 小於等於36FLOW CONTROL5DO迴圈語(yǔ)法:DO 起始值, 終止值, 累加值執(zhí)行程式碼END DO例:DO I=10, 5, -1WRITE(*,*) I END DO37FLOW CONTROL6結(jié)果:109876538FLOW CONTROL7Dowhile語(yǔ)法:DO WHILE (邏輯運(yùn)算

13、)程式碼END DO39陣列1FORTRAN 90 陣列的宣告integer a(10) !宣告a這個(gè)陣列有10個(gè)元素integer , dimension(10) : a ! 同上,另一種作法FORTRAN 77 陣列的宣告integer adimension a(10)注意!index值從1開(kāi)始算起!40陣列2使用陣列a(1)=18 INTEGER A(3) DATA A /36, 24, 36/在FORTRAN 90中,還可以省略DATA這個(gè)敘述INTEGER : A(3) = (/36, 26, 36/) 括號(hào)跟除號(hào)之間不能有空格,並且冒號(hào)不能省略。 41函式1副程式(SUBROUTI

14、NE)的使用:(可錯(cuò)位)PROGRAM MAIN主程式碼END SUBROUTINE SUB1()程式碼END SUBROUTINESUBROUTINE SUB2()程式碼END SUBROUTINE42函式2特性:CALL BY REFERENCE無(wú)回傳值副程式最後一個(gè)指令通常是RETURN在主程式呼叫副程式:CALL 43函式3PROGRAM MAINIMPLICIT NONEINTEGER : A=1WRITE (*,*) “A的初始值是”, ACALL ADD(A)WRITE(*,*) “A後來(lái)的值是”, ASTOPENDSUBROUTINE ADD(NUM)IMPLICIT NONE

15、INTEGER NUMNUM = NUM + 1RETURNEND SUBROUTINE44函式4這個(gè)程式的輸出:A的初始值是 1A後來(lái)的值是 2因?yàn)楹艚辛藄ubroutine,使得A的值被改變!45函式5自訂函數(shù)(function)類似SUBROUTINE不同點(diǎn)呼叫前必需宣告有回傳值宣告方式Fortran 90 REAL , EXTERNAL : ADD Fortran 77REAL ADDEXTERNAL ADD46函式6PROGRAM MAINIMPLICIT NONEREAL, EXTERNAL: TRIPPLE real: A=1.38 WRITE (*,*) A的初始值是, A WRITE (*,*) 呼叫函數(shù),TRIPPLE(A) WRITE(*,*) A後來(lái)的值是,

溫馨提示

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