計算機程式 fortran 77 語言

43
1 計計計計計 Fortran 77 計計 計計計計計

Upload: sani

Post on 15-Jan-2016

141 views

Category:

Documents


1 download

DESCRIPTION

計算機程式 Fortran 77 語言. 張基昇製作. 目錄. 計算機程式 課程實施方式 四化一甲乙計算機程式 課程概述 規劃 學習項目 Fortran 程式 語言講義 Fortran 程式範例. 課程實施方式. 學習態度 追求知識的理性需求與 欣然為之的感性態度。 學習策略 範例演練中精奠實基, 深邃思考中創造新機。. 課程實施方式. 課程實施 老師 規劃應用實境,鋪陳學習軌域; 勾勒思維方向,誘發學習渴望。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 計算機程式 Fortran 77  語言

11

計算機程式

Fortran 77 語言

張基昇製作

Page 2: 計算機程式 Fortran 77  語言

22

目錄目錄

計算機程式計算機程式課程實施方式課程實施方式 四化一甲乙計算機程式四化一甲乙計算機程式課程概述 課程概述 規劃規劃學習項目學習項目 Fortran Fortran 程式程式語言講義 語言講義 Fortran Fortran 程式範例程式範例

Page 3: 計算機程式 Fortran 77  語言

33

課程實施方式 課程實施方式

學習態度學習態度追求知識的理性需求與追求知識的理性需求與欣然為之的感性態度。欣然為之的感性態度。

學習策略學習策略範例演練中精奠實基,範例演練中精奠實基,深邃思考中創造新機。深邃思考中創造新機。

Page 4: 計算機程式 Fortran 77  語言

44

課程實施方式 課程實施方式

課程實施課程實施 老師老師 規劃應用實境,鋪陳學習軌域; 規劃應用實境,鋪陳學習軌域; 勾勒思維方向,誘發學習渴望。 勾勒思維方向,誘發學習渴望。

學生學生 輸入和輸出,建立資訊傳輸的管道; 輸入和輸出,建立資訊傳輸的管道; 加減和乘除,完成科學工程的計算; 加減和乘除,完成科學工程的計算; 迴圈的應用,處理科學研究的資料; 迴圈的應用,處理科學研究的資料; 邏輯的引導,提供計算策略的引用; 邏輯的引導,提供計算策略的引用; 標示和說明,傳承計算程式的生命。 標示和說明,傳承計算程式的生命。

Page 5: 計算機程式 Fortran 77  語言

55

課程實施方式 課程實施方式

課程成果課程成果 學生學生 熟悉書寫電腦的高階語言, 熟悉書寫電腦的高階語言, 了解邏輯判別的應用技巧; 了解邏輯判別的應用技巧; 善用矩陣迴圈的強勁功能, 善用矩陣迴圈的強勁功能, 設計工程計算的應用程式。 設計工程計算的應用程式。

老師老師 ?!%#※$¥!??!%#※$¥!?。。

Page 6: 計算機程式 Fortran 77  語言

66

課程實施方式 課程實施方式

課堂實施方式課堂實施方式每週之單節課程在指定教室上課,每每週之單節課程在指定教室上課,每週之雙節課於週之雙節課於電子計算機中心電子計算機中心電腦教電腦教室上機操作;室上機操作;

『上自天文,下至地理;大自天體,『上自天文,下至地理;大自天體,小至次原子粒子。』小至次原子粒子。』任何問題皆可提出。任何問題皆可提出。

Page 7: 計算機程式 Fortran 77  語言

77

課程概述課程概述

主要課程內容包含電腦基本常識、程式主要課程內容包含電腦基本常識、程式設計簡介、資料型態、流程控制、函式、設計簡介、資料型態、流程控制、函式、副程式、陣列與字串、檔案與應用程式設副程式、陣列與字串、檔案與應用程式設計。計。

An introduction to basic computer conAn introduction to basic computer concept, programming, data types, flow of cocept, programming, data types, flow of control, functions, subroutine, arrays, stringntrol, functions, subroutine, arrays, strings, files, and applications s, files, and applications

Page 8: 計算機程式 Fortran 77  語言

88

規劃學習項目規劃學習項目

在 在 Windows Windows 視窗作業模式與 視窗作業模式與 MMS-DOS S-DOS 作業模式間切換作業模式間切換

MS-DOS MS-DOS 作業模式下常用作業模式下常用 1010 個操個操作指令:作指令:

dirdir 、 、 doskeydoskey 、 、 exitexit cdcd 、、 mdmd 、、 rdrd typetype 、、 deldel 、、 copycopy 、、 renren

Page 9: 計算機程式 Fortran 77  語言

99

規劃學習項目規劃學習項目

用 用 notepad notepad 編輯程式編輯程式 用 用 GNU Compiler GNU Compiler 編譯程式編譯程式

用 用 pe2 pe2 編輯程式編輯程式 用 用 MS-FORTRAN MS-FORTRAN 編譯程式編譯程式

Page 10: 計算機程式 Fortran 77  語言

1010

規劃學習項目規劃學習項目

各個範例程式輸入與執行,了解各該程各個範例程式輸入與執行,了解各該程式的計算目的,以及設計邏輯,共 式的計算目的,以及設計邏輯,共 6 6 類。類。

(1). 8(1). 8 (語言指令練習):(語言指令練習): t11.for ~ t18.fort11.for ~ t18.for (2). 4(2). 4 (換算應用):(換算應用): t21.for ~ t24.fort21.for ~ t24.for (3). 3(3). 3 (資訊處理與排序):(資訊處理與排序): t31.for ~ t33.fot31.for ~ t33.fo

rr (4). 2(4). 2 (數據迴歸):(數據迴歸): fit1.forfit1.for 、、 fit2.forfit2.for (5). 1(5). 1 (一元二次方程式求解):(一元二次方程式求解): squ.forsqu.for (6). 9(6). 9 (矩陣運算):(矩陣運算): mat1.for ~ mat9.format1.for ~ mat9.for

Page 11: 計算機程式 Fortran 77  語言

1111

規劃學習項目規劃學習項目

相關數學解析法與作業相關數學解析法與作業 線性迴歸 – 最小二平方法:檢量線線性迴歸 – 最小二平方法:檢量線 (( 校正曲線校正曲線 )) 的製的製

作作 聯立方程式解析 – 矩陣解析法聯立方程式解析 – 矩陣解析法

作業作業 牛頓法求解(作業):牛頓法求解(作業): vdW EOS vdW EOS 之體積求解之體積求解 半間距法求解(作業):半間距法求解(作業): vdW EOS vdW EOS 之體積求解之體積求解 疊代法求解(作業):疊代法求解(作業): vdW EOS vdW EOS 之體積求解之體積求解 數值微分運算(作業)數值微分運算(作業) 數值積分運算(作業)數值積分運算(作業) 微分方程式求解(作業)微分方程式求解(作業)

Page 12: 計算機程式 Fortran 77  語言

1212

電腦與 電腦與 FORTRAN FORTRAN 語言語言

電腦電腦 中央處理單元中央處理單元 CPU(central processing CPU(central processing

unit)unit) 主記憶體主記憶體 Main memoryMain memory :電源關閉資:電源關閉資料不復記憶料不復記憶

次記憶體次記憶體 Secondary memorySecondary memory :電源關:電源關閉資料可記憶著,硬式磁碟機…等閉資料可記憶著,硬式磁碟機…等

輸入與輸出裝置輸入與輸出裝置 input/output devicesinput/output devices ::KeyboardKeyboard ;; CRT screens and PrintersCRT screens and Printers

Page 13: 計算機程式 Fortran 77  語言

1313

電腦中數據與資訊的表示電腦中數據與資訊的表示

電腦中數據與資訊的表示電腦中數據與資訊的表示 比特比特 bitbit :電腦記憶體由無數個開或關:電腦記憶體由無數個開或關 (1(1或或 0)0)稱為一個稱為一個 bitbit

拜特拜特 bytebyte :一群八個:一群八個 bitbit來表示一二進位數字來表示一二進位數字稱為一個稱為一個 bytebyte

字元字元 wordword :在電腦中另一更大群的:在電腦中另一更大群的 bitbit組合稱組合稱為為 wordword

二進位制二進位制 binary number systembinary number system 與十進位制與十進位制 ddecimal number systemecimal number system

字元數據字元數據 character datacharacter data 、整數數據、整數數據 integer dinteger dataata 、實數數據、實數數據 real datareal data

Page 14: 計算機程式 Fortran 77  語言

1414

電腦語言的一面觀電腦語言的一面觀

電腦可執行之運算電腦可執行之運算 載入 載入 loadload 、儲存 、儲存 storestore 、、 加 加 addadd 、減 、減 subtractsubtract 、、 乘 乘 multiplymultiply 、除 、除 divisiondivision 、 、 比較 比較 comparisoncomparison 。。

Page 15: 計算機程式 Fortran 77  語言

1515

電腦語言的一面觀電腦語言的一面觀

語言語言 機械語言:由機械語言:由 00 與與 11兩種符號所組合,兩種符號所組合,電腦可直接接受的語言訊號。電腦可直接接受的語言訊號。

組合語言:以對人類而言更有意義的文組合語言:以對人類而言更有意義的文字與符號書寫,用來指揮電腦。字與符號書寫,用來指揮電腦。

高階語言:以更接近人類的語言結構書高階語言:以更接近人類的語言結構書寫,以能用來指揮電腦。寫,以能用來指揮電腦。• AdaAda 、、 BasicBasic 、、 CC 、、 COBOLCOBOL 、、 PascalPascal 、、

Fortran…Fortran…等。等。

Page 16: 計算機程式 Fortran 77  語言

1616

電腦語言的一面觀電腦語言的一面觀

福傳語言福傳語言 Fortran languageFortran language :: 數值分析數值分析 Numerical analysisNumerical analysis 、、 工程計算工程計算 Technical calculationsTechnical calculations ;; 超級電腦超級電腦 supercomputerssupercomputers 。。

編譯編譯 compilecompile :高階語言皆須轉換成:高階語言皆須轉換成電腦可接受之機械語言。電腦可接受之機械語言。

Page 17: 計算機程式 Fortran 77  語言

1717

程式陳述的結構程式陳述的結構

電腦語言程式主要由電腦語言程式主要由 可執行陳述可執行陳述 executable statementsexecutable statements 與與 不可執行陳述不可執行陳述 non-executable statemenon-executable stateme

ntsnts組成。組成。 每一程式單元每一程式單元 program unitprogram unit 為一完整為一完整陳述亦即為單一可分別編譯之陳述亦即為單一可分別編譯之 FORTFORTRANRAN 碼。碼。

Page 18: 計算機程式 Fortran 77  語言

1818

程式陳述的結構程式陳述的結構

FORTRAN77 FORTRAN77 陳述的格式可編譯為 陳述的格式可編譯為 80 80 個字元欄位個字元欄位 註解欄 註解欄 11 :: C C 或 或 * * 字元 表示該列陳述為字元 表示該列陳述為註解說明不編譯註解說明不編譯

陳述標號欄 :陳述標號欄 : 1~ 51~ 5 ,, 1~999991~99999 之數字 指定之數字 指定之標號之標號 (label)(label)

連續欄: 連續欄: 6 6 輸入任一符號 上一列無法完成輸入任一符號 上一列無法完成一程式單元陳述於本列繼續陳述一程式單元陳述於本列繼續陳述

陳述主體欄: 陳述主體欄: 7-72 7-72 輸入宣告陳述、執行陳述輸入宣告陳述、執行陳述與各個陳述等可編譯欄位與各個陳述等可編譯欄位

識別欄: 識別欄: 73-80 73-80 識別說明用識別說明用

Page 19: 計算機程式 Fortran 77  語言

1919

FORTRANFORTRAN 程式的結構程式的結構

一完整電腦程式須包含有一完整電腦程式須包含有 宣告宣告 declarationdeclaration 、、 可執行可執行 executionexecution 、、 結束結束 terminationtermination

等三部份陳述。等三部份陳述。

Page 20: 計算機程式 Fortran 77  語言

2020

FORTRANFORTRAN 程式的結構程式的結構

宣告部份:宣告部份: 變數之形式變數之形式

字元字元 charactercharacter 、、整數整數 integerinteger 、、 實數實數 realreal 、邏輯、邏輯 logical)logical)

陣列陣列 dimensiondimension 、、 共用共用 commoncommon 、、 輸入輸入 readread 、輸出、輸出 writewrite 。。

Page 21: 計算機程式 Fortran 77  語言

2121

FORTRANFORTRAN 程式的結構程式的結構

可執行部份,依處理之問題解析,所書寫可執行部份,依處理之問題解析,所書寫之運算式輸入與輸出資料。之運算式輸入與輸出資料。 (( 數學方法數學方法 ))

結束部份:結束部份: 停止執行之陳述指令 停止執行之陳述指令

停止, 停止, stopstop 停止,回呼叫之程式 停止,回呼叫之程式 returnreturn

程式終止之陳述指令 程式終止之陳述指令 endend 程式的型程式的型 (style) (style) 建立程式書寫設計之個人品味與建立程式書寫設計之個人品味與風格。風格。

Page 22: 計算機程式 Fortran 77  語言

2222

常數與變數常數與變數

整數常數與變數整數常數與變數 INTEGER, INTEGER*2, IINTEGER, INTEGER*2, INTEGER*4NTEGER*4

實數常數與變數實數常數與變數 REAL, REAL*4, REAL*8, REAL, REAL*4, REAL*8, DOUBLE PRECISIONDOUBLE PRECISION

複數常數與變數複數常數與變數 COMPLEX, COMPLEX*8,COMPLEX, COMPLEX*8, COMPLEX*16, DOUBLE COMPLEX COMPLEX*16, DOUBLE COMPLEX

字元常數與變數字元常數與變數 CHARACTER[*length]CHARACTER[*length] 邏輯常數與變數邏輯常數與變數 LOGICAL, LOGICAL*2, LLOGICAL, LOGICAL*2, L

OGICAL*4OGICAL*4

Page 23: 計算機程式 Fortran 77  語言

2323

指定陳述與算術計算指定陳述與算術計算

指定陳述指定陳述 -----Ex.-----Ex. variable-name = expresvariable-name = expressionsion

標準運算子標準運算子 operatorsoperators Operators+Addition-Subtraction*MultiplicOperators+Addition-Subtraction*Multiplic

ation/Division**Exponentiationation/Division**Exponentiation 整數算術整數算術 -----Ex.-----Ex. 3/4=03/4=0 5/4=15/4=1 實數算術實數算術 -----Ex.-----Ex. 3./4.=0.753./4.=0.75 5./4.=1.255./4.=1.25

Page 24: 計算機程式 Fortran 77  語言

2424

指定陳述與算術計算指定陳述與算術計算

運算之層次 運算之層次 (( 算術計算式之計算先後次序算術計算式之計算先後次序 ))[1].[1].括號;括號; [2].[2]. 指數由右至左;指數由右至左; [3].[3]. 乘除;乘除;[4].[4]. 加減。加減。(( 除了指數外,同層次則由左至右依序運算除了指數外,同層次則由左至右依序運算 ))

混合模式算術混合模式算術 -----Ex.-----Ex. 1+1/4=11+1/4=1 1.1.+1/4=1.+1/4=1. 1+1./4=1.251+1./4=1.25

混合模式算術與指數混合模式算術與指數Ex.Ex. result = y**nresult = y**n :: (y*y*y…, n times)(y*y*y…, n times) ;;

result = y**xresult = y**x :: (y*y*y…, x times )(y*y*y…, x times )

Page 25: 計算機程式 Fortran 77  語言

2525

指定陳述與邏輯計算指定陳述與邏輯計算

關係運算子 關係運算子 rational operatorrational operator .EQ. Equal to .EQ. Equal to 相等相等 .NE. Not equal to .NE. Not equal to 不相等不相等 .LT. Less than .LT. Less than 小於小於 .LE. Less than or equal to .LE. Less than or equal to 小於等於小於等於 .GT. Greater than .GT. Greater than 大於大於 .GE. Greater than or equal to .GE. Greater than or equal to 大於大於 等於 等於

Page 26: 計算機程式 Fortran 77  語言

2626

指定陳述與邏輯計算指定陳述與邏輯計算

組合邏輯運算子組合邏輯運算子 combinational logic combinational logic operatoroperator L1 .NOT. L2 Logical NOTL1 .NOT. L2 Logical NOT L1 .AND. L2 Logical ANDL1 .AND. L2 Logical AND L1 .OR. L2 Logical ORL1 .OR. L2 Logical OR L1 .EQV. L2 Logical equivalenceL1 .EQV. L2 Logical equivalence L1 .NEQV. L2 Logical L1 .NEQV. L2 Logical

non-equivalence non-equivalence

Page 27: 計算機程式 Fortran 77  語言

2727

指定陳述與邏輯計算指定陳述與邏輯計算

在程式中大部份之主要的分支 在程式中大部份之主要的分支 (bran(branching) ching) 或迴圈 或迴圈 (looping) (looping) 結構是由結構是由邏數值所控制。邏數值所控制。

Page 28: 計算機程式 Fortran 77  語言

2828

內存函數內存函數

電腦是以二進位制運算,所以僅可以電腦是以二進位制運算,所以僅可以作四種運算作四種運算 加 加 addadd 、減 、減 subtractsubtract 、乘 、乘 multiply multiply 與除 與除 division division 之運算 之運算

冪次則是作多次相乘,指數可為小數冪次則是作多次相乘,指數可為小數 其他函數則以泰勒展開式或其他展開式其他函數則以泰勒展開式或其他展開式做計算,電腦內建以函數供呼叫做計算,電腦內建以函數供呼叫

Page 29: 計算機程式 Fortran 77  語言

2929

輸入與輸出的格式輸入與輸出的格式

輸入與輸出的格式分為兩類輸入與輸出的格式分為兩類 自由格式自由格式 free formatfree format 格式化格式化 formatedformated

自由格式輸入與輸出自由格式輸入與輸出 read(*,*) variable1,variable2,…read(*,*) variable1,variable2,… write(*,*) variable1, variable2,…write(*,*) variable1, variable2,…

Page 30: 計算機程式 Fortran 77  語言

3030

輸入與輸出的格式輸入與輸出的格式

格式化的描述子格式化的描述子 (1)(1) I rIw I I rIw I 輸入或輸出之資料型態為整數 輸入或輸出之資料型態為整數 r r 重覆之次數,重覆之次數, r = 1 r = 1 時可不用輸入時可不用輸入w w 佔據之總位數佔據之總位數

F rFw.d F F rFw.d F 輸入或輸出之資料型態為輸入或輸出之資料型態為實數 實數 dd 小數位數小數位數

E rEw.d E E rEw.d E 輸入或輸出之資料型態為輸入或輸出之資料型態為科學符號型態之含指數實數科學符號型態之含指數實數

D rDw.d D D rDw.d D 倍準數之輸入或輸出倍準數之輸入或輸出

Page 31: 計算機程式 Fortran 77  語言

3131

輸入與輸出的格式輸入與輸出的格式

格式化的描述子格式化的描述子 (2)(2) X wX X X wX X 輸出資料時各資料項輸出資料時各資料項

(data item) (data item) 與資料項間設定 與資料項間設定 w w 空格數空格數 H wHhH wHh11..h..hww H H 輸出設定於後之文數輸出設定於後之文數資料資料 (h(h11hh22…h…hww))

A rAw A A rAw A 輸入與輸出字元資料輸入與輸出字元資料 L rLw L L rLw L 輸出為邏輯型態資料輸出為邏輯型態資料

Page 32: 計算機程式 Fortran 77  語言

3232

輸入與輸出的格式輸入與輸出的格式

格式化的描述子格式化的描述子 (3)(3) T Tw TRw TLw T T Tw TRw TLw T 報表定位設定 報表定位設定

TRwTRw 自現在位置向右移自現在位置向右移 ww 個位置個位置 TLwTLw自現在位置向左移自現在位置向左移 ww 個位置個位置

/ / / / 設定跳行設定跳行 ( )( ) r(…,…) r r(…,…) r 重覆次數重覆次數 ' ' 'h' ' 'h11hh22…h…hnn'' 文數資料文數資料 (h(h11hh22…h…hnn))直直接輸出接輸出

Page 33: 計算機程式 Fortran 77  語言

3333

Fortran Fortran 程式範例程式範例

t11.fort11.for t12.fort12.for t13.fort13.for t14.fort14.for

t15.fort15.for t16.fort16.for t17.fort17.for t18.fort18.for

t21.fort21.for

Page 34: 計算機程式 Fortran 77  語言

3434

t11.fort11.for

c t11.fc t11.f write(*,*)3+4write(*,*)3+4 stopstop end end

Page 35: 計算機程式 Fortran 77  語言

3535

t12.fort12.for

c t12.fc t12.f a=3.a=3. b=4.b=4. write(*,*)a+bwrite(*,*)a+b stopstop endend

Page 36: 計算機程式 Fortran 77  語言

3636

t13.fort13.for

c t13.fc t13.f a=3.a=3. b=4.b=4. sum=a+bsum=a+b write(*,*)write(*,*)

'sum of a and b equal to ',sum 'sum of a and b equal to ',sum stopstop endend

Page 37: 計算機程式 Fortran 77  語言

3737

t14.fort14.for

c t14.fc t14.f a=3.a=3. b=4.b=4. sum=a+bsum=a+b write(*,1000)sumwrite(*,1000)sum 1000 format1000 format

(5x,'sum of a and b equal to ',f10.2) (5x,'sum of a and b equal to ',f10.2) stopstop endend

Page 38: 計算機程式 Fortran 77  語言

3838

t15.fort15.for

c t15.fc t15.f write(*,*)'input a and b value'write(*,*)'input a and b value' read(*,*)a,bread(*,*)a,b sum=a+bsum=a+b write(*,1000)sumwrite(*,1000)sum 1000 format1000 format

(5x,'sum of a and b equal to ',e12.5) (5x,'sum of a and b equal to ',e12.5) stopstop endend

Page 39: 計算機程式 Fortran 77  語言

3939

t16.fort16.for

write(*,*)'input a and b value'write(*,*)'input a and b value' write(*,*)' a ='write(*,*)' a =' read(*,*)aread(*,*)a write(*,*)' b ='write(*,*)' b =' read(*,*)bread(*,*)b sum=a+bsum=a+b write(*,1000)sumwrite(*,1000)sum 1000 format(5x,'sum of a1000 format(5x,'sum of a

&&and b equal to ',e12.5)and b equal to ',e12.5) stopstop endend

Page 40: 計算機程式 Fortran 77  語言

4040

t17.fort17.for

open(1,file='t17d.dat',status='old')open(1,file='t17d.dat',status='old') open(11,file='t17.prn',status='new')open(11,file='t17.prn',status='new') read(1,*)a,bread(1,*)a,b sum=a+bsum=a+b write(11,1000)sumwrite(11,1000)sum 1000 format(5x,'Sum of a and b equal t1000 format(5x,'Sum of a and b equal t

o ',f12.5)o ',f12.5) stopstop endend

Page 41: 計算機程式 Fortran 77  語言

4141

t18.fort18.for

open(1,file='t17d.dat',status='old')open(1,file='t17d.dat',status='old') open(6,file='t18.prn',status='new')open(6,file='t18.prn',status='new') read(1,1001)a,bread(1,1001)a,b 1001 format(2f10.5)1001 format(2f10.5) sum=a+bsum=a+b write(6,1000)sumwrite(6,1000)sum 1000 format1000 format

(5x,'sum of a and b equal to ',e12.5) (5x,'sum of a and b equal to ',e12.5) stopstop endend

Page 42: 計算機程式 Fortran 77  語言

4242

t21.fort21.for

100 write(*,*)' read the temperature in degrees of f'100 write(*,*)' read the temperature in degrees of f' write(*,1001)write(*,1001) 1001 format(5x,'if f = 9999 then stop',/,5x,'f=')1001 format(5x,'if f = 9999 then stop',/,5x,'f=') read(*,*)fread(*,*)f if (f .ge. 9999)stopif (f .ge. 9999)stop c=(f-32.)*5./9.c=(f-32.)*5./9. write(*,1000)f,cwrite(*,1000)f,c 1000 format1000 format

(2x,'The temperature of (',f6.2,') degree f is equal’, (2x,'The temperature of (',f6.2,') degree f is equal’, &&’ to (',f6.2,') degree c',//)’ to (',f6.2,') degree c',//) go to 100go to 100 stopstop endend

Page 43: 計算機程式 Fortran 77  語言

4343

您可已曉得!

劇情如何發展!劇情如何發展!

敬請期待!敬請期待!