FORTRAN语言简介

上传人:公**** 文档编号:574472883 上传时间:2024-08-16 格式:PPT 页数:50 大小:207KB
返回 下载 相关 举报
FORTRAN语言简介_第1页
第1页 / 共50页
FORTRAN语言简介_第2页
第2页 / 共50页
FORTRAN语言简介_第3页
第3页 / 共50页
FORTRAN语言简介_第4页
第4页 / 共50页
FORTRAN语言简介_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《FORTRAN语言简介》由会员分享,可在线阅读,更多相关《FORTRAN语言简介(50页珍藏版)》请在金锄头文库上搜索。

1、FORTRAN 語言簡介By陳鯨太1Outline 語言簡介、編譯器簡介Fortran基本事項輸出、輸入及宣告格式化輸出程式結構流程控制陣列函式2Fortran 簡介全名FormulaTranslatorIBM19541957第一個被廣泛使用的高階語言演化1978FORTRAN771992FORTRAN901997FORTRAN953FORTRAN COMPILER 簡介1VisualFORTRANMicrosoftDigitalCompaqHP?MicrosoftVisualStudio完整的windows程式開發工具可與VisualC+相互連結使用4FORTRAN COMPILER 簡介2

2、計中工作站提供Fortran90及Fortran77編譯方式輸出至a.outf77filename.forf90filename.f90輸出至指定檔案(sample)f77filename.forosamplef90filename.forosample5FORTRAN COMPILER 簡介3計中工作站之Fortran只提供在ccsun2635總數:套登入telnetccsun27.cc.nctu.edu.tw帳號:u9031XXX密碼:預設值是身份証字號6FORTRAN 基本事項1字元集英文字母:AZ(大小寫不分)數字:09特殊符號:冒號、等號、加、減、乘、除、底線etc7FORTRAN

3、基本事項2程式碼寫作格式FixedFormatFortran77的舊格式為了使用打孔卡而發明詳細規定每個字元的“用法”FreeFormatFortran90之後的新格式提供較大彈性8FORTRAN 基本事項3FixedFormat第1個字元如果是字母c,C或*(星號),表示此行是註解第1-5個字元如果這邊是數字,表示這一行的代號,否則應為空白第6個字元如果是0以外的字元,表示這一行程式會接續上一行第7-72個字元FORTRAN程式碼的寫作區域第73個字元之後不使用,超過部份會被忽略,有的編譯器會有錯誤訊息9FORTRAN 基本事項4FreeFormat不規定每一行第幾字元有什麼作用驚嘆號!後面

4、文字是註解每行可寫作132個字元行號在每行程式最前面一行程式碼的最後如果是符號&,代表下一行程式會和這一行連接。10FORTRAN 基本事項5!FreeFormatprogrammainwrite(*,*)“hello”!列印出hello這個字write(*,*)&“hello”wri&te(*,*)“hello”end11輸出1programmainwrite(*,*)“hello”stopend12輸出2Write(*,*)第一個參數:輸出的位置第二個參數:輸出格式相等寫法:WRITE(*,*)“HELLO”WRITE(6,*)“HELLO”WRITE(UNIT=6,FMT=*)“HELL

5、O”13輸出3關於write(*,*)自動換行印出雙引號使用連續2個雙引號WRITE(*,*)“MYNAMEIS“”CASTER”.”FORTRAN90雙引號/單引號FORTRAN77單引號14輸出4PRINT語法:PRINT*,”輸出字串”專門對螢幕輸出15結束程式結束程式1.END2.ENDPROGRAM3.ENDPROGRAMMAIN!MAIN是主程式的名字Fortran901,2,3Fortran77116資料型態1整數(integer)宣告方式:integera內定範圍為23223217資料型態2浮點數宣告方式:reala或real*4a單精確度3.4*10383.4*1038有效位

6、數67位雙精確度:real*8a1.79*10308有效位數1516位18資料型態3複數宣告:complexa使用:a=(x,y)!x為實部,y為虛部programmaincomplexa,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資料型態4執行結果:a+b=(4.0,5.3)a-b=(-2.0,-3.3000001)a*b=(-1.3000002,7.3)a/b=(0.2655511,-0.047289926)2

7、0資料型態5字元及字串Charactera!宣告字元Character*10a!宣告長度為10的字串其它寫法CHARACTER*10CHARACTER(LEN=10)CHARACTER*(10)給予初始值A=”字串內容”21輸入指令輸入指令的基本語法如下:INTEGERAREAD(*,*)A!讀入一個整數,並存到A內READ(5,*)A!同上READ(UNIT=5,FMT=*)A!同上22格式化輸出1關於IWRITE(*,”(I5)”)100!用5個字元的欄位來輸出一個整數OUTPUT:_100WRITE(*,”(I3)”)100000OUTPUT:*WRITE(*,”(I5.4)”)3!輸出

8、五個字元欄位,至少輸出4位,不足補0OUTPUT:_000323格式化輸出2關於FWRITE(*,”(F9.3)”)123.45!輸出9個字元欄位,包括小數部份3個位數OUTPUT:_123.450關於EWRITE(*,”(E15.7)”)123.45!用科學計號表示法,輸出15個字元欄位,小數部份佔7位OUTPUT:_0.1234500E+0324格式化輸出3關於AWRITE(*,”(A10)”)“HELLO”!用10個字元寬度輸出字串OUTPUT:_HELLOWRITE(*,”(A3)”)“HELLO”OUTPUT:HEL25格式化輸出4關於BWRITE(*,”(B6.5)”)3!把3變成

9、二進位輸出,字6個字元寬,至少輸出5位OUTPUT:_0001126格式化輸出5關於XWRITE(*,”(3X)”)20!輸出前先填3個空白字元OUTPUT:_2027變數名稱取名原則1長度限制FORTRAN77至少6FORTRAN90至少31不需宣告就能使用第一個字母為I,J,K,L,M,N整數其它浮點數28變數名稱取名原則2PROGRAMMAINI=11+22WRITE(*,*)“11+22=”,JSTOPEND結果:11+22=029變數名稱取名原則3關閉內定型態的功能IMPLICITNONE每個變數必需事先宣告位置:PROGRAM指令的下一行30常數的宣告方式一REALPIPARAME

10、TER(PI=3.14159)方式二REAL,PARAMETER:PI=3.1415931程式結構32FLOW CONTROL1IFTHENELSE語法:IF(邏輯判斷式)THEN執行動作1ELSE執行動作2ENDIF33FLOW CONTROL2PROGRAMMAINIMPLICITNONEREALHIEGHTREALWEIGHTREAD(*,*)HEIGHTREAD(*,*)WEIGHTIF(WEIGHTHEIGHT-100)THENWRITE(*,*)“TOOFAT!”ELSEWRITE(*,*)“UNDERCONTROL”ENDIFSTOPEND34FLOW CONTROL3邏輯運算式

11、=相等/=不相等大於=大於等於小於=小於等於.AND.如果兩邊式子都成立,整個條件就成立.OR.兩邊的式子只要有一個成立,整個條件就成立.NOT.如果後面的式子不成立,整個式子就算成立.EQV.兩邊式子的邏輯運算結果相同時,整個式子就成立.NEQV. 兩邊式子的邏輯運算結果不同時,整個式子就成立35FLOW CONTROL4FORTRAN77的邏輯運算式.EQ.等於.NE.不等於.GT.大於.GE.大於等於.LT.小於.LE.小於等於36FLOW CONTROL5DO迴圈語法:DO起始值,終止值,累加值執行程式碼ENDDO例:DOI=10,5,-1WRITE(*,*)IENDDO37FLOW

12、CONTROL6結果:109876538FLOW CONTROL7Dowhile語法:DOWHILE(邏輯運算)程式碼ENDDO39陣列1FORTRAN90陣列的宣告integera(10)!宣告a這個陣列有10個元素integer,dimension(10):a!同上,另一種作法FORTRAN77陣列的宣告integeradimensiona(10)注意!index值從1開始算起!40陣列2使用陣列a(1)=18INTEGERA(3)DATAA/36,24,36/在FORTRAN90中,還可以省略DATA這個敘述INTEGER:A(3)=(/36,26,36/) 括號跟除號之間不能有空格,並

13、且冒號不能省略。41函式1副程式(SUBROUTINE)的使用:(可錯位)PROGRAMMAIN主程式碼ENDSUBROUTINESUB1()程式碼ENDSUBROUTINESUBROUTINESUB2()程式碼ENDSUBROUTINE42函式2特性:CALLBYREFERENCE無回傳值副程式最後一個指令通常是RETURN在主程式呼叫副程式:CALL43函式3PROGRAMMAINIMPLICITNONEINTEGER:A=1WRITE(*,*)“A的初始值是”,ACALLADD(A)WRITE(*,*)“A後來的值是”,ASTOPENDSUBROUTINEADD(NUM)IMPLICIT

14、NONEINTEGERNUMNUM=NUM+1RETURNENDSUBROUTINE44函式4這個程式的輸出:A的初始值是1A後來的值是2因為呼叫了subroutine,使得A的值被改變!45函式5自訂函數(function)類似SUBROUTINE不同點呼叫前必需宣告有回傳值宣告方式Fortran90REAL,EXTERNAL:ADDFortran77REALADDEXTERNALADD46函式6PROGRAMMAINIMPLICITNONEREAL,EXTERNAL:TRIPPLEreal:A=1.38WRITE(*,*)A的初始值是,AWRITE(*,*)呼叫函數,TRIPPLE(A)WRITE(*,*)A後來的值是,ASTOPENDREALFUNCTIONTRIPPLE(NUM)IMPLICITNONEREALNUMTRIPPLE=NUM*3RETURNEND47執行結果A的初始值是1.38呼叫函數4.14A後來的值是1.3848作業圓面積計算公式輸入:半徑(浮點數),輸出:圓面積(浮點數)必需使用subroutine,function其中一種方式圓周率使用課堂上教的方法宣告Pi=3.141649Any QuestionPleaseemail:castercis.nctu.edu.tw50

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号