1 / 43

計算機程式 Fortran 77 語言

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

sani
Download Presentation

計算機程式 Fortran 77 語言

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機程式Fortran 77 語言 張基昇製作

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

  3. 課程實施方式 • 學習態度追求知識的理性需求與欣然為之的感性態度。 • 學習策略範例演練中精奠實基,深邃思考中創造新機。

  4. 課程實施方式 • 課程實施 • 老師 規劃應用實境,鋪陳學習軌域; 勾勒思維方向,誘發學習渴望。 • 學生 輸入和輸出,建立資訊傳輸的管道; 加減和乘除,完成科學工程的計算; 迴圈的應用,處理科學研究的資料; 邏輯的引導,提供計算策略的引用; 標示和說明,傳承計算程式的生命。

  5. 課程實施方式 • 課程成果 • 學生 熟悉書寫電腦的高階語言, 了解邏輯判別的應用技巧; 善用矩陣迴圈的強勁功能, 設計工程計算的應用程式。 • 老師?!%#※$¥!?。

  6. 課程實施方式 • 課堂實施方式每週之單節課程在指定教室上課,每週之雙節課於電子計算機中心電腦教室上機操作; • 『上自天文,下至地理;大自天體,小至次原子粒子。』任何問題皆可提出。

  7. 課程概述 • 主要課程內容包含電腦基本常識、程式設計簡介、資料型態、流程控制、函式、副程式、陣列與字串、檔案與應用程式設計。 • An introduction to basic computer concept, programming, data types, flow of control, functions, subroutine, arrays, strings, files, and applications

  8. 規劃學習項目 • 在 Windows 視窗作業模式與 MS-DOS 作業模式間切換 • MS-DOS 作業模式下常用10個操作指令: • dir、 doskey、 exit • cd、md、rd • type、del、copy、ren

  9. 規劃學習項目 • 用 notepad 編輯程式 • 用 GNU Compiler 編譯程式 • 用 pe2 編輯程式 • 用 MS-FORTRAN 編譯程式

  10. 規劃學習項目 • 各個範例程式輸入與執行,了解各該程式的計算目的,以及設計邏輯,共 6 類。 • (1). 8(語言指令練習):t11.for ~ t18.for • (2). 4(換算應用):t21.for ~ t24.for • (3). 3(資訊處理與排序):t31.for ~ t33.for • (4). 2(數據迴歸):fit1.for、fit2.for • (5). 1(一元二次方程式求解):squ.for • (6). 9(矩陣運算):mat1.for ~ mat9.for

  11. 規劃學習項目 • 相關數學解析法與作業 • 線性迴歸 – 最小二平方法:檢量線(校正曲線)的製作 • 聯立方程式解析 – 矩陣解析法 • 作業 • 牛頓法求解(作業):vdW EOS 之體積求解 • 半間距法求解(作業):vdW EOS 之體積求解 • 疊代法求解(作業):vdW EOS 之體積求解 • 數值微分運算(作業) • 數值積分運算(作業) • 微分方程式求解(作業)

  12. 電腦與 FORTRAN 語言 • 電腦 • 中央處理單元CPU(central processing unit) • 主記憶體Main memory:電源關閉資料不復記憶 • 次記憶體Secondary memory:電源關閉資料可記憶著,硬式磁碟機…等 • 輸入與輸出裝置input/output devices:Keyboard;CRT screens and Printers

  13. 電腦中數據與資訊的表示 • 電腦中數據與資訊的表示 • 比特bit:電腦記憶體由無數個開或關(1或0)稱為一個bit • 拜特byte:一群八個bit來表示一二進位數字稱為一個byte • 字元word:在電腦中另一更大群的bit組合稱為word • 二進位制binary number system與十進位制decimal number system • 字元數據character data、整數數據integer data、實數數據real data

  14. 電腦語言的一面觀 • 電腦可執行之運算 • 載入 load、儲存 store、 • 加 add、減 subtract、 • 乘 multiply、除 division、 • 比較 comparison。

  15. 電腦語言的一面觀 • 語言 • 機械語言:由0與1兩種符號所組合,電腦可直接接受的語言訊號。 • 組合語言:以對人類而言更有意義的文字與符號書寫,用來指揮電腦。 • 高階語言:以更接近人類的語言結構書寫,以能用來指揮電腦。 • Ada、Basic、C、COBOL、Pascal、Fortran…等。

  16. 電腦語言的一面觀 • 福傳語言Fortran language: • 數值分析Numerical analysis、 • 工程計算Technical calculations; • 超級電腦supercomputers。 • 編譯compile:高階語言皆須轉換成電腦可接受之機械語言。

  17. 程式陳述的結構 • 電腦語言程式主要由 • 可執行陳述executable statements與 • 不可執行陳述non-executable statements組成。 • 每一程式單元program unit為一完整陳述亦即為單一可分別編譯之FORTRAN碼。

  18. 程式陳述的結構 • FORTRAN77 陳述的格式可編譯為 80 個字元欄位 • 註解欄 1:C 或 * 字元 表示該列陳述為註解說明不編譯 • 陳述標號欄 :1~ 5,1~99999之數字 指定之標號(label) • 連續欄: 6 輸入任一符號 上一列無法完成一程式單元陳述於本列繼續陳述 • 陳述主體欄: 7-72 輸入宣告陳述、執行陳述與各個陳述等可編譯欄位 • 識別欄: 73-80 識別說明用

  19. FORTRAN程式的結構 • 一完整電腦程式須包含有 • 宣告declaration、 • 可執行execution、 • 結束termination等三部份陳述。

  20. FORTRAN程式的結構 • 宣告部份: • 變數之形式 • 字元character、 • 整數integer、 • 實數real、邏輯logical) • 陣列dimension、 • 共用common、 • 輸入read、輸出write。

  21. FORTRAN程式的結構 • 可執行部份,依處理之問題解析,所書寫之運算式輸入與輸出資料。(數學方法) • 結束部份: • 停止執行之陳述指令 • 停止, stop • 停止,回呼叫之程式 return • 程式終止之陳述指令 end • 程式的型(style) 建立程式書寫設計之個人品味與風格。

  22. 常數與變數 • 整數常數與變數INTEGER, INTEGER*2, INTEGER*4 • 實數常數與變數REAL, REAL*4, REAL*8, DOUBLE PRECISION • 複數常數與變數COMPLEX, COMPLEX*8, COMPLEX*16, DOUBLE COMPLEX • 字元常數與變數CHARACTER[*length] • 邏輯常數與變數LOGICAL, LOGICAL*2, LOGICAL*4

  23. 指定陳述與算術計算 • 指定陳述-----Ex. variable-name = expression • 標準運算子operators • Operators+Addition-Subtraction*Multiplication/Division**Exponentiation • 整數算術-----Ex. 3/4=0 5/4=1 • 實數算術-----Ex. 3./4.=0.75 5./4.=1.25

  24. 指定陳述與算術計算 • 運算之層次 (算術計算式之計算先後次序)[1].括號;[2].指數由右至左;[3].乘除;[4].加減。(除了指數外,同層次則由左至右依序運算) • 混合模式算術-----Ex. 1+1/4=1 1.+1/4=1. 1+1./4=1.25 • 混合模式算術與指數Ex. result = y**n:(y*y*y…, n times) ; result = y**x:(y*y*y…, x times )

  25. 指定陳述與邏輯計算 • 關係運算子 rational operator • .EQ. Equal to 相等 • .NE. Not equal to 不相等 • .LT. Less than 小於 • .LE. Less than or equal to 小於等於 • .GT. Greater than 大於 • .GE. Greater than or equal to 大於 等於

  26. 指定陳述與邏輯計算 • 組合邏輯運算子combinational logic operator • L1 .NOT. L2 Logical NOT • L1 .AND. L2 Logical AND • L1 .OR. L2 Logical OR • L1 .EQV. L2 Logical equivalence • L1 .NEQV. L2 Logical non-equivalence

  27. 指定陳述與邏輯計算 • 在程式中大部份之主要的分支 (branching) 或迴圈 (looping) 結構是由邏數值所控制。

  28. 內存函數 • 電腦是以二進位制運算,所以僅可以作四種運算 • 加 add、減 subtract、乘 multiply 與除 division 之運算 • 冪次則是作多次相乘,指數可為小數 • 其他函數則以泰勒展開式或其他展開式做計算,電腦內建以函數供呼叫

  29. 輸入與輸出的格式 • 輸入與輸出的格式分為兩類 • 自由格式free format • 格式化formated • 自由格式輸入與輸出 • read(*,*) variable1,variable2,… • write(*,*) variable1, variable2,…

  30. 輸入與輸出的格式 • 格式化的描述子(1) • I rIw I 輸入或輸出之資料型態為整數 r 重覆之次數,r = 1 時可不用輸入w 佔據之總位數 • F rFw.d F 輸入或輸出之資料型態為實數 d小數位數 • E rEw.d E 輸入或輸出之資料型態為科學符號型態之含指數實數 • D rDw.d D 倍準數之輸入或輸出

  31. 輸入與輸出的格式 • 格式化的描述子(2) • X wX X 輸出資料時各資料項(data item) 與資料項間設定 w 空格數 • H wHh1..hw H 輸出設定於後之文數資料(h1h2…hw) • A rAw A 輸入與輸出字元資料 • L rLw L 輸出為邏輯型態資料

  32. 輸入與輸出的格式 • 格式化的描述子(3) • T Tw TRw TLw T 報表定位設定 TRw自現在位置向右移w個位置TLw自現在位置向左移w個位置 • / / 設定跳行( ) • r(…,…) r 重覆次數 • ' ' 'h1h2…hn'文數資料(h1h2…hn)直接輸出

  33. t11.for t12.for t13.for t14.for t15.for t16.for t17.for t18.for t21.for Fortran 程式範例

  34. t11.for • c t11.f • write(*,*)3+4 • stop • end

  35. t12.for • c t12.f • a=3. • b=4. • write(*,*)a+b • stop • end

  36. t13.for • c t13.f • a=3. • b=4. • sum=a+b • write(*,*) 'sum of a and b equal to ',sum • stop • end

  37. t14.for • c t14.f • a=3. • b=4. • sum=a+b • write(*,1000)sum • 1000 format (5x,'sum of a and b equal to ',f10.2) • stop • end

  38. t15.for • c t15.f • write(*,*)'input a and b value' • read(*,*)a,b • sum=a+b • write(*,1000)sum • 1000 format (5x,'sum of a and b equal to ',e12.5) • stop • end

  39. t16.for • write(*,*)'input a and b value' • write(*,*)' a =' • read(*,*)a • write(*,*)' b =' • read(*,*)b • sum=a+b • write(*,1000)sum • 1000 format(5x,'sum of a&and b equal to ',e12.5) • stop • end

  40. t17.for • open(1,file='t17d.dat',status='old') • open(11,file='t17.prn',status='new') • read(1,*)a,b • sum=a+b • write(11,1000)sum • 1000 format(5x,'Sum of a and b equal to ',f12.5) • stop • end

  41. t18.for • open(1,file='t17d.dat',status='old') • open(6,file='t18.prn',status='new') • read(1,1001)a,b • 1001 format(2f10.5) • sum=a+b • write(6,1000)sum • 1000 format (5x,'sum of a and b equal to ',e12.5) • stop • end

  42. t21.for • 100 write(*,*)' read the temperature in degrees of f' • write(*,1001) • 1001 format(5x,'if f = 9999 then stop',/,5x,'f=') • read(*,*)f • if (f .ge. 9999)stop • c=(f-32.)*5./9. • write(*,1000)f,c • 1000 format (2x,'The temperature of (',f6.2,') degree f is equal’, • &’ to (',f6.2,') degree c',//) • go to 100 • stop • end

  43. 您可已曉得! • 劇情如何發展! • 敬請期待!

More Related