FORTRAN 語言簡介 By 陳鯨太.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式語言實習課.
Fortran — 世界上推出的第一种高级程序设计语言 谢建勤(电子与信息工程学院)
年度校樹選拔秀 主辦單位:楊梅國小.
Chapter 4 流程控制.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
Chapter 5 迴圈.
Chapter 7 Subroutine and Function
Instructor:Po-Yu Kuo 教師:郭柏佑
Chapter 模組 台灣師範大學數學系 黃聰明.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Chapter 3 輸出入及宣告.
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
Chen Yi Fen The C Language Chen Yi Fen
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
第1章 Fortran概述 作为一门诞生于上个世纪50年代后半期的高级计算机语言,Fortran在这个C/C++、Java等新兴语言大行其道的时代仍然活跃在人们的视野之中。Fortran语言的长项在于数值计算,在科学研究和工程设计领域有着广泛的用途。在描述数学语言的自然性方面,Fortran同现存的其他高级语言相比有着明显的优势。对于科研工作者和工程技术人员而言,Fortran语言的易学性和易用性是公认的。
保留字與識別字.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
C語言簡介 日期 : 2018/12/2.
生物資訊程式語言應用 Part 3 Perl Language.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
笫11章指针 指针是现代程序设计语言中一个非常重要的概念,它使语言的功能大大加强。FORTRAN90以前的FORTRAN版本,没有指针这种数据类型,FORTRAN90对其作了重大改进,引入了指针的概念。但是值得注意的是,FORTRAN90的指针与C语言中的指针并不相同,因为它并不代表一个变量的地址,而是代表一个变量的别名,实质上它相当于C++里的引用,本章介绍指针的概念与应用。
安裝JDK 安裝Eclipse Eclipse 中文化
Chapter 2 Basic Elements of Fortran
程式語言Visual Basic 傳址與傳值
第4章 常量和变量 常量和变量都是程序中预留的用于保存数据的内存空间。常量的值在程序运行过程中始终不会发生变化。而变量的值在程序的运行过程中是可以变化的。在Fortran语言中,有五种基本的数据类型可供使用。他们分别是整型(INTEGER)、实型(REAL)、复型(COMPLEX)、字符型(CHARACTER)和逻辑型(LOGICAL)。按用途,又可以分数值型、字符型和逻辑型三种。相应的常量和变量也可以分为这三种。本章将按照用途介绍常量和变量的基本概念。
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Chap3 Linked List 鏈結串列.
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
UpToDate Anywhere 設定方法
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
Chapter 指標.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
ASP基礎— VBScript基本語法 張森.
Introduction to C Programming
期末考.
撰寫MATLAB基礎財務程式 柯婷瑱.
挑戰C++程式語言 ──第8章 進一步談字元與字串
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
C qsort.
第14章 基本数值算法举例 数值计算是Fortran语言的强项,也是Fortran语言发明者的初衷。本节主要介绍在计算机程序设计语言学习中经常遇到的一些基本数值算法。目的在于加深对Fortran语言的理解和分析,解决问题的一般思路,并希望通过这些例程介绍一些代码编写方面的技巧。
利用 EditorConfig 自訂文字編輯器設定
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
函數應用(二)與自定函數.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
簡單Java介紹.
變數與資料型態  綠園.
查表法&電腦IO Port二進制轉七段顯示器
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
適用於多選一 可減少if 與 else配對混淆的錯誤.
Programming & Language Telling the computer what to do
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
Fortran 实用编程 系列视频教程 Fortran Coder 研讨团队
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Unix指令4-文字編輯與程式撰寫.
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

FORTRAN 語言簡介 By 陳鯨太

Outline 語言簡介、編譯器簡介 Fortran 基本事項 輸出、輸入及宣告 格式化輸出 程式結構 流程控制 陣列 函式

Fortran 簡介 全名-Formula Translator IBM 1954 ~ 1957 第一個被廣泛使用的高階語言 演化

FORTRAN COMPILER 簡介1 Visual FORTRAN Microsoft  Digital  Compaq  HP? Microsoft Visual Studio 完整的windows程式開發工具 可與Visual C++相互連結使用

FORTRAN COMPILER 簡介2 計中工作站 編譯方式 提供Fortran 90 及 Fortran 77 輸出至a.out f77 filename.for f90 filename.f90 輸出至指定檔案(sample) f77 filename.for -o sample f90 filename.for -o sample

FORTRAN COMPILER 簡介3 計中工作站之 Fortran 登入 只提供在 ccsun26~35 總數:2套 telnet ccsun27.cc.nctu.edu.tw 帳號:u9031XXX 密碼:預設值是身份証字號

FORTRAN 基本事項1 字元集 英文字母:A~Z (大小寫不分) 數字:0~9 特殊符號:冒號、等號、加、減、乘、除、底線 …etc

FORTRAN 基本事項2 程式碼寫作格式 Fixed Format Free Format Fortran 77 的舊格式 為了使用打孔卡而發明 詳細規定每個字元的“用法” Free Format Fortran 90之後的新格式 提供較大彈性

FORTRAN 基本事項3 Fixed Format 第1個字元 第1-5個字元 第6個字元 第7-72個字元 第73個字元之後 如果是字母c,C或*(星號),表示此行是註解 第1-5個字元 如果這邊是數字,表示這一行的代號,否則應為空白 第6個字元 如果是0以外的字元,表示這一行程式會接續上一行 第7-72個字元 FORTRAN程式碼的寫作區域 第73個字元之後 不使用,超過部份會被忽略,有的編譯器會有錯誤訊息

FORTRAN 基本事項4 Free Format 不規定每一行第幾字元有什麼作用 驚嘆號 ! 後面文字是註解 每行可寫作132個字元 行號在每行程式最前面 一行程式碼的最後如果是符號&,代表下一行程式會和這一行連接。

FORTRAN 基本事項5 ! Free Format program main write(*,*) “hello” ! 列印出hello這個字 write(*,*) & “hello” wri& te(*,*) “hello” end

輸出1 program main write(*,*) “hello” stop end

輸出2 Write(*,*) 第一個參數:輸出的位置 第二個參數:輸出格式 相等寫法: WRITE(*,*) “HELLO” WRITE(UNIT=6, FMT=*) “HELLO”

輸出3 關於write(*,*) 自動換行 印出雙引號使用連續2個雙引號 FORTRAN 90 雙引號/單引號 WRITE(*,*) “ MY NAME IS “”CASTER””. ” FORTRAN 90 雙引號/單引號 FORTRAN 77 單引號

輸出4 PRINT 語法:PRINT *, ”輸出字串” 專門對螢幕輸出

結束程式 結束程式 Fortran 90  1, 2, 3 Fortran 77  1 END END PROGRAM END PROGRAM MAIN ! MAIN是主程式的名字 Fortran 90  1, 2, 3 Fortran 77  1

資料型態1 整數(integer) 宣告方式:integer a 內定範圍為2^32~ -2^32

資料型態2 浮點數 宣告方式:real a 或 real*4 a 單精確度 雙精確度:real*8 a 3.4*10^38 ~ -3.4*10^38 有效位數6~7位 雙精確度:real*8 a 1.79*10^308 有效位數15~16位

資料型態3 複數 宣告:complex a 使用:a=(x,y) !x為實部,y為虛部 program main complex a,b write(*,*) “a+b=”, a+b write(*,*) “a-b=”, a-b write(*,*) “a*b=”,a*b write(*,*) “a/b=”, a/b stop end

資料型態4 執行結果: a+b= (4.0,5.3) a-b= (-2.0,-3.3000001)

資料型態5 字元及字串 其它寫法 給予初始值 Character a !宣告字元 Character*10 a !宣告長度為10的字串 CHARACTER(LEN=10) CHARACTER*(10) 給予初始值 A=”字串內容”

輸入指令 輸入指令的基本語法如下: INTEGER A READ (*,*) A !讀入一個整數,並存到A內 READ(UNIT=5, FMT=*) A !同上

格式化輸出1 關於I WRITE(*,”(I5)”) 100 !用5個字元的欄位來輸出一個整數 OUTPUT : _ _ 1 0 0 !輸出五個字元欄位,至少輸出4位,不足補0 OUTPUT: _ 0 0 0 3

格式化輸出2 關於F 關於E WRITE(*,”(F9.3)”) 123.45 !輸出9個字元欄位,包括小數部份3個位數 OUTPUT: _ _ 1 2 3 . 4 5 0 關於E WRITE(*,”(E15.7)”) 123.45 !用科學計號表示法,輸出15個字元欄位,小數部份佔7位 OUTPUT : _ _ 0 . 1 2 3 4 5 0 0 E + 0 3

格式化輸出3 關於A WRITE (*,”(A10)”) “HELLO” !用10個字元寬度輸出字串 OUTPUT: _ _ _ _ _ H E L L O WRITE (*,”(A3)”) “HELLO” OUTPUT : H E L

格式化輸出4 關於B WRITE (*,”(B6.5)”) 3 !把3變成二進位輸出,字6個字元寬,至少輸出5位 OUTPUT : _ 0 0 0 1 1

格式化輸出5 關於X WRITE (*,”(3X)”) 20 !輸出前先填3個空白字元 OUTPUT: _ _ _ 2 0

變數名稱取名原則1 長度限制 不需宣告就能使用 FORTRAN 77  至少6 FORTRAN 90  至少31 第一個字母為I, J, K, L, M, N 整數 其它浮點數

變數名稱取名原則2 PROGRAM MAIN I=11+22 WRITE(*,*) “11+22=”, J STOP END 結果: 11+22=0

變數名稱取名原則3 關閉內定型態的功能 IMPLICIT NONE 每個變數必需事先宣告 位置:PROGRAM指令的下一行

常數的宣告 方式一 方式二 REAL PI PARAMETER(PI=3.14159) REAL, PARAMETER ::PI=3.14159

程式結構

FLOW CONTROL1 IF … THEN… ELSE語法: IF(邏輯判斷式) THEN 執行動作1 ELSE 執行動作2 END IF

FLOW CONTROL2 PROGRAM MAIN IMPLICIT NONE REAL HIEGHT REAL WEIGHT   READ(*,*) HEIGHT READ(*,*) WEIGHT IF (WEIGHT > HEIGHT-100) THEN WRITE(*,*) “TOO FAT!” ELSE WRITE(*,*) “UNDER CONTROL” END IF STOP END

FLOW CONTROL3 邏輯運算式 = = 相等 / = 不相等 > 大於 > = 大於等於 < 小於 = = 相等 / = 不相等 > 大於 > = 大於等於 < 小於 < = 小於等於 .AND. 如果兩邊式子都成立,整個條件就成立 .OR. 兩邊的式子只要有一個成立,整個條件就成立 .NOT. 如果後面的式子不成立,整個式子就算成立 .EQV. 兩邊式子的邏輯運算結果相同時,整個式子就成立 .NEQV. 兩邊式子的邏輯運算結果不同時,整個式子就成立

FLOW CONTROL4 FORTRAN 77的邏輯運算式 .EQ. 等於 .NE. 不等於 .GT. 大於 .GE. 大於等於 .LT. 小於 .LE. 小於等於

FLOW CONTROL5 DO迴圈語法: 例: DO 起始值, 終止值, 累加值 執行程式碼 END DO DO I=10, 5, -1 WRITE(*,*) I

FLOW CONTROL6 結果: 10 9 8 7 6 5

FLOW CONTROL7 Do…while語法: DO WHILE (邏輯運算) 程式碼 END DO

陣列1 FORTRAN 90 陣列的宣告 FORTRAN 77 陣列的宣告 注意!!index值從1開始算起!! integer a(10) !宣告a這個陣列有10個元素 integer , dimension(10) :: a ! 同上,另一種作法 FORTRAN 77 陣列的宣告 integer a dimension a(10) 注意!!index值從1開始算起!!

陣列2 使用陣列 a(1)=18 INTEGER A(3) DATA A /36, 24, 36/ 在FORTRAN 90中,還可以省略DATA這個敘述 INTEGER :: A(3) = (/36, 26, 36/) ◎ 括號跟除號之間不能有空格,並且冒號不能省略。

函式1 副程式(SUBROUTINE)的使用:(可錯位) PROGRAM MAIN 主程式碼 END SUBROUTINE SUB1()

函式2 特性: CALL BY REFERENCE 無回傳值 副程式最後一個指令通常是RETURN 在主程式呼叫副程式:CALL

函式3 PROGRAM MAIN IMPLICIT NONE INTEGER :: A=1 WRITE (*,*) “A的初始值是”, A CALL ADD(A) WRITE(*,*) “A後來的值是”, A STOP END   SUBROUTINE ADD(NUM) INTEGER NUM NUM = NUM + 1 RETURN END SUBROUTINE

函式4 這個程式的輸出: A的初始值是 1 A後來的值是 2 因為呼叫了subroutine,使得A的值被改變!

函式5 自訂函數(function) 類似SUBROUTINE 不同點 宣告方式 呼叫前必需宣告 有回傳值 Fortran 90 REAL , EXTERNAL :: ADD Fortran 77 REAL ADD EXTERNAL ADD

函式6 PROGRAM MAIN IMPLICIT NONE REAL, EXTERNAL:: TRIPPLE real:: A=1.38 WRITE (*,*) "A的初始值是", A WRITE (*,*) "呼叫函數",TRIPPLE(A) WRITE(*,*) "A後來的值是", A STOP END  REAL FUNCTION TRIPPLE(NUM) REAL NUM TRIPPLE = NUM * 3 RETURN END

執行結果 A的初始值是 1.38 呼叫函數 4.14 A後來的值是 1.38

作業 圓面積計算公式 輸入:半徑(浮點數),輸出:圓面積(浮點數) 必需使用subroutine, function其中一種方式 圓周率使用課堂上教的方法宣告 Pi=3.1416

Any Question Please email : caster@cis.nctu.edu.tw