VisualFortran90第1、2章_第1頁
VisualFortran90第1、2章_第2頁
VisualFortran90第1、2章_第3頁
VisualFortran90第1、2章_第4頁
VisualFortran90第1、2章_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Visual Fortran 90 程序設(shè)計程序設(shè)計u我已經(jīng)能熟練地操作計算機了,還學(xué)什么?我已經(jīng)能熟練地操作計算機了,還學(xué)什么?u計算機能做什么?計算機能做什么?u如何把計算機做為求解問題的工具,為我服務(wù)終如何把計算機做為求解問題的工具,為我服務(wù)終身?身?開始的話開始的話u計算機可以做任何事情;只要能把實際問題計算機可以做任何事情;只要能把實際問題抽象、制作為計算機可求解的程序。抽象、制作為計算機可求解的程序。u計算機求解問題的步驟:計算機求解問題的步驟:計算機能做什么?計算機能做什么?分析分析抽象抽象模型模型求解求解命令命令編程編程調(diào)試調(diào)試程序程序?qū)嶋H實際問題問題問題問題模型模型求解求解算

2、法算法編制編制程序程序問題問題實現(xiàn)實現(xiàn)問題模型問題模型u結(jié)構(gòu)分析結(jié)構(gòu)分析 線性方程組線性方程組u人口預(yù)報人口預(yù)報 微分方程微分方程u優(yōu)化問題優(yōu)化問題 線性規(guī)劃、非線性規(guī)劃線性規(guī)劃、非線性規(guī)劃u震動問題震動問題 矩陣分析;特征值、特征向量矩陣分析;特征值、特征向量u信息管理信息管理 二維數(shù)據(jù)表二維數(shù)據(jù)表u下棋下棋 樹型結(jié)構(gòu)遍歷樹型結(jié)構(gòu)遍歷u交通管理交通管理 圖型結(jié)構(gòu)遍歷圖型結(jié)構(gòu)遍歷“深藍(lán)深藍(lán)”與卡斯帕羅夫與卡斯帕羅夫u國際象棋棋盤有國際象棋棋盤有64格,每方有格,每方有16個子。棋手在思考下一步個子。棋手在思考下一步棋時大約有棋時大約有35種合法選擇。種合法選擇。u目前最好的國際象棋程序可以分析

3、到七八個回合,若要求電目前最好的國際象棋程序可以分析到七八個回合,若要求電腦能思考到第七個回合,即腦能思考到第七個回合,即14步棋,則需要有步棋,則需要有3514種可能種可能的結(jié)局。的結(jié)局。u下棋程序靠的是基本的行棋知識和強大無比的檢索演算能力。下棋程序靠的是基本的行棋知識和強大無比的檢索演算能力。這種信息檢索選擇方式好比一棵樹;共有這種信息檢索選擇方式好比一棵樹;共有35個枝干,每個枝個枝干,每個枝干有干有35個樹杈,個樹杈,最終到樹葉,即可供選擇的結(jié)果。越好,最終到樹葉,即可供選擇的結(jié)果。越好的程序,所派生的樹枝樹杈就越多。的程序,所派生的樹枝樹杈就越多。u一般來講,電腦每下一步棋,仍需有

4、一般來講,電腦每下一步棋,仍需有500億或億或600億種選擇。億種選擇。兩本教材(互為補充):兩本教材(互為補充):Fortran 90 程序設(shè)計(上課)程序設(shè)計(上課)Fortran 90 程序設(shè)計實驗指導(dǎo)與測試程序設(shè)計實驗指導(dǎo)與測試(上機)(上機)教學(xué)課時教學(xué)課時(3學(xué)分)學(xué)分)上課上課48學(xué)時(學(xué)時(3學(xué)分)學(xué)分)上機上機48機時(機時(其中教師輔導(dǎo)其中教師輔導(dǎo)24機時機時)關(guān)鍵在個人關(guān)鍵在個人上機時間安排各班級的同學(xué),每周五下午或晚上 都要去機房一樓的通告欄查看下周上機時間,每周上機時間、機房都有可能不同。課內(nèi)上機時間安排(輔導(dǎo)24機時)周次周次星期星期節(jié)次節(jié)次機時機時數(shù)數(shù)機房機房3,

5、5,7,8周周星期三星期三6-7節(jié)節(jié)83039-17周周星期四星期四6-7節(jié)節(jié)18303水務(wù)水務(wù)1-4班班課內(nèi)上機時間安排(輔導(dǎo)24機時)周次周次星期星期節(jié)次節(jié)次機時機時數(shù)數(shù)機房機房3,5,7,8周周星期一星期一8-9節(jié)節(jié)83039-17周周星期星期 三三6-7節(jié)節(jié)18403港航港航1-4班班課內(nèi)上機時間安排(輔導(dǎo)24機時)周次周次星期星期節(jié)次節(jié)次機時數(shù)機時數(shù)機房機房3,5,7,8周周(大禹(大禹1班班+5班)班)星期二星期二6-7節(jié)節(jié)84039-12周周(大禹(大禹1-3班)班)星期二星期二1-2節(jié)節(jié)840313-16周周(大禹(大禹1-3班)班)星期二星期二6-7節(jié)節(jié)8403課內(nèi)上機時間安

6、排(輔導(dǎo)24機時)周次周次星期星期節(jié)次節(jié)次機時數(shù)機時數(shù)機房機房3,5,7,8周周(大禹(大禹2-4班班+6班)班)星期二星期二8-9節(jié)節(jié)84039-12周周(大禹(大禹4-6班)班)星期二星期二3-4節(jié)節(jié)840313-16周周(大禹(大禹4-6班)班)星期二星期二8-9節(jié)節(jié)8403課外上機時間安排(自主24小時)暫未安排暫未安排請記好上機時間安排,并請記好上機時間安排,并通知教學(xué)秘書,防止與其通知教學(xué)秘書,防止與其他老師調(diào)課沖突。他老師調(diào)課沖突。答疑時間:答疑時間:每次上機時間、課間每次上機時間、課間期末考試前、必要時可增加期末考試前、必要時可增加本人電子郵箱:本人電子郵箱:手機號碼手機號碼:

7TP:/10.33.12.8本門課的成績評定:本門課的成績評定:平時平時+期末期末平時:平時:作業(yè)、考勤、課堂提問作業(yè)、考勤、課堂提問考試時間:考試時間:2012年秋年秋10月中旬月中旬考試形式考試形式筆試筆試機試機試二、機試:二、機試: 考試時間為考試時間為70分鐘分鐘題型題型分值分值一、改錯題一、改錯題20分分二、編程題二、編程題20分分總計總計40分分課程要求u 課前請做好預(yù)習(xí)課前請做好預(yù)習(xí)u 保持課堂安靜,頭腦清醒,思維活躍保持課堂安靜,頭腦清醒,思維活躍u 做好課堂筆記做好課堂筆記u 認(rèn)真、獨立、按時完成并提交作業(yè)認(rèn)真、獨立、按時完成并提交作業(yè)u 重視上機實踐

8、,有效利用寶貴的上機時間重視上機實踐,有效利用寶貴的上機時間u“紙上談兵紙上談兵”學(xué)不出程序設(shè)計本領(lǐng);學(xué)不出程序設(shè)計本領(lǐng);u只有大量上機、編程、調(diào)試,才能掌握。只有大量上機、編程、調(diào)試,才能掌握。u學(xué)好程序設(shè)計語言的唯一途徑是上機。學(xué)好程序設(shè)計語言的唯一途徑是上機。u你的編程能力和你在機器上投入的時間成正比。你的編程能力和你在機器上投入的時間成正比。課程要求第第1章章 程序設(shè)計基礎(chǔ)知識程序設(shè)計基礎(chǔ)知識1.4 1.4 計算機軟件計算機軟件1.11.1計算機簡介計算機簡介1.21.2程序設(shè)計語言程序設(shè)計語言1.3 1.3 算法的描述算法的描述一、一、 信息處理和計算機信息處理和計算機1、信息處理、

9、信息處理 數(shù)值處理數(shù)值處理2、信息處理的分類、信息處理的分類 非數(shù)值處理非數(shù)值處理3、現(xiàn)代計算機工作原理:、現(xiàn)代計算機工作原理: 程序存儲和程序控制程序存儲和程序控制 (馮(馮諾依曼)諾依曼) 1.1 1.1 計算機簡介計算機簡介二、計算機的組成二、計算機的組成1 1、運算器運算器算術(shù)運算、邏輯運算算術(shù)運算、邏輯運算2 2、控制器控制器根據(jù)指令控制計算機工作根據(jù)指令控制計算機工作 運算器、控制器和寄存器稱為運算器、控制器和寄存器稱為中央處理器中央處理器CPUCPU3 3、I/OI/O設(shè)備設(shè)備提供數(shù)據(jù)傳輸服務(wù)提供數(shù)據(jù)傳輸服務(wù)4 4、總線總線數(shù)據(jù)傳輸?shù)墓餐ǖ罃?shù)據(jù)傳輸?shù)墓餐ǖ? 5、存儲器、存儲

10、器存放數(shù)據(jù)和指令存放數(shù)據(jù)和指令 二進(jìn)制位(二進(jìn)制位(bitbit)00和和1 1的電路的電路 字節(jié)(字節(jié)(ByteByte)若干個位(若干個位(8 8個)個) 存儲單元存儲單元字節(jié)字節(jié) 存儲器存儲器若干個存儲單元若干個存儲單元 計算機的存儲特性:計算機的存儲特性:存存寫寫 取取讀讀1 1.2程序設(shè)計語言程序設(shè)計語言填補了人與計算機交流的鴻溝填補了人與計算機交流的鴻溝計算機硬件僅僅計算機硬件僅僅知道知道0和和1有 問 題 需 要有 問 題 需 要計 算 機 解 決計 算 機 解 決的人的人交流的鴻溝交流的鴻溝計算機硬件僅僅計算機硬件僅僅知道知道0和和1有 問 題 需 要有 問 題 需 要計 算

11、機 解 決計 算 機 解 決的人的人程序設(shè)計語言程序設(shè)計語言程序設(shè)計語言的分類1.機器語言機器語言:二進(jìn)制代碼形式,可以被計算機直接執(zhí):二進(jìn)制代碼形式,可以被計算機直接執(zhí)行,不可移植行,不可移植2.匯編語言匯編語言:用助記符來代替機器指令,容易記憶,:用助記符來代替機器指令,容易記憶,不可移植不可移植3.高級語言高級語言:接近自然語言(英語)的程序設(shè)計語言,:接近自然語言(英語)的程序設(shè)計語言,又稱算法語言,易學(xué)、易用、易維護(hù),可移植性好又稱算法語言,易學(xué)、易用、易維護(hù),可移植性好例:例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等等 F0R90源程序源程序 編譯程序

12、編譯程序機器語言目標(biāo)程序機器語言目標(biāo)程序 連接構(gòu)建連接構(gòu)建可執(zhí)行程序可執(zhí)行程序1 1.3 算法的描述v 什么是算法?什么是算法?廣義:解決某個問題或處理某個事件的廣義:解決某個問題或處理某個事件的 方法和步驟。方法和步驟。現(xiàn)代含義是現(xiàn)代含義是計算機解題步驟計算機解題步驟。程序設(shè)計程序設(shè)計=算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)算法描述的方法算法描述的方法v 文字說明文字說明 偽代碼偽代碼 流程圖流程圖 盒式圖(盒式圖(N-S圖)圖) 程序設(shè)計語言程序設(shè)計語言文字說明文字說明例如,比較兩數(shù)例如,比較兩數(shù)A、B的大小,輸出較大的數(shù)的大小,輸出較大的數(shù) 粗略的思路:粗略的思路: (1)讀入讀入A、B ( 2)判

13、斷)判斷A是否大于是否大于B (3)若是則輸出)若是則輸出A,否則輸出,否則輸出B (4)結(jié)束)結(jié)束偽代碼偽代碼v一種介于自然語言和程序設(shè)計語言之間的一種介于自然語言和程序設(shè)計語言之間的文字和符號表達(dá)工具描述算法的方法:文字和符號表達(dá)工具描述算法的方法: IF AB 輸出輸出A ELSE 輸出輸出B END流程圖流程圖使用具有特定含義的圖形符號來表示算法。使用具有特定含義的圖形符號來表示算法。盒式圖(盒式圖(N-S圖)圖)條件條件滿足滿足不滿足不滿足S1塊塊S2塊塊0 = S0 = I I輸入輸入AS+A = SI I +1 = I I直到直到 I=4I=4輸出結(jié)果輸出結(jié)果 S S第第2章章

14、Fortran90基礎(chǔ)知識基礎(chǔ)知識2.4 2.4 程序單元概念程序單元概念2.1Fortran2.1Fortran語言的發(fā)展語言的發(fā)展2.22.2源程序及其構(gòu)成源程序及其構(gòu)成2.3 2.3 語言元素語言元素2.1 Fortran2.1 Fortran語言的發(fā)展簡史語言的發(fā)展簡史一、一、FORTRAN 含義及其適用范圍含義及其適用范圍 FORmula TRANslator 公式翻譯器公式翻譯器 科學(xué)和工程計算問題的程序設(shè)計語言科學(xué)和工程計算問題的程序設(shè)計語言 是第一門廣泛應(yīng)用的程序語言是第一門廣泛應(yīng)用的程序語言 著名編程語言著名編程語言Fortran創(chuàng)始人巴庫斯創(chuàng)始人巴庫斯 巴庫斯獲圖靈獎巴庫斯

15、獲圖靈獎FortranFortran語言的發(fā)展簡史語言的發(fā)展簡史第一個第一個FORTRAN語言版本是在語言版本是在1954年提出的,在年提出的,在1957年正式發(fā)布使用。年正式發(fā)布使用。1958 FORTRAN1962 FORTRAN1978 FORTRAN771991.FORTRAN 901997. FORTRAN95 FORRAN95不象不象FORTRAN90在在FORTRAN77添添加很多內(nèi)容,只能視為加很多內(nèi)容,只能視為90的修正的修正版,加強了并行運算方面的支持版,加強了并行運算方面的支持2.2 FORTRA902.2 FORTRA90源程序基本結(jié)構(gòu)源程序基本結(jié)構(gòu)例例2-1: 見書見

16、書P16頁例題:頁例題:已知華氏溫度與攝氏溫度之間的換已知華氏溫度與攝氏溫度之間的換算公式為:算公式為: 現(xiàn)輸入某一華氏溫度現(xiàn)輸入某一華氏溫度,請計算出相應(yīng)的攝氏溫度,請計算出相應(yīng)的攝氏溫度。)32(95hCTTPROGRAM H_TO_C!Given the Fahrenheit temprature ,to caculate the CentigradeREAL:TC,THREAD*,THTC=5*(TH-32)/9PRINT*,TH,TCEND PROGRAM H_TO_C例例2-2: 見書見書P17頁:輸入頁:輸入M個整數(shù),將其相加,打印出它們個整數(shù),將其相加,打印出它們的和。的和。P

17、ROGRAM CAL_M_SUMIMPLICIT NONEINTEGER:N,MREAL:T,AN=0;T=0PRINT*,Input number of data:READ*,MDOREAD*,AT=T+AN=N+1IF(N=M) EXITENDDOPRINT*,TEND PROGRAM CAL_M_SUM例例2-3: 求求 該問題涉及五個階乘的相加,可用子該問題涉及五個階乘的相加,可用子程序?qū)崿F(xiàn)階乘。程序?qū)崿F(xiàn)階乘。FUNCTION FACTOR(N) RESULT (FAC_RESULT)IMPLICIT NONEINTEGER:N,FAC_RESULT,IFAC_RESULT=1DO I

18、=1,NFAC_RESULT=FAC_RESULT*IENDDOEND FUNCTION FACTOR PROGRAM CAL_FACTORIMPLICIT NONEINTEGER:FACTOR,S=0,IDO I=4,8S=S+FACTOR(I)ENDDOPRINT*,S=,SEND PROGRAM CAL_FACTOR84!iiFORTRA90FORTRA90源程序基本結(jié)構(gòu)源程序基本結(jié)構(gòu)1、FORTRAN90程序是一種程序是一種分塊結(jié)構(gòu)分塊結(jié)構(gòu),由若干個程序單元,由若干個程序單元塊組成:塊組成: 主程序、外部子程序、模塊、塊數(shù)據(jù)單元主程序、外部子程序、模塊、塊數(shù)據(jù)單元 無論是主程序單元,還

19、是子程序單元,都是獨立的程序無論是主程序單元,還是子程序單元,都是獨立的程序單位,應(yīng)該獨立編寫,它們的形式相似。單位,應(yīng)該獨立編寫,它們的形式相似。2、主程序結(jié)構(gòu)、主程序結(jié)構(gòu) PROGRAM 程序名稱程序名稱 程序體程序體 END program 程序名稱程序名稱其中:其中:END既表既表示停止運行,又示停止運行,又是結(jié)束標(biāo)記。是結(jié)束標(biāo)記。FORTRA90FORTRA90源程序基本結(jié)構(gòu)源程序基本結(jié)構(gòu)3、各程序單元體形式上相同,都由若干行組成:、各程序單元體形式上相同,都由若干行組成: 語句行語句行:說明語句說明語句:用于說明變量的類型、屬性等:用于說明變量的類型、屬性等 例:例:INTEGER

20、:X,Y 可執(zhí)行語句可執(zhí)行語句:輸入、賦值、輸出:輸入、賦值、輸出 例:例:A=4;B=B+1非語句行非語句行:注釋語句注釋語句:!后的所有字符都被編譯后的所有字符都被編譯器忽略。器忽略。 可獨占一行,也可在其它語句之后,可獨占一行,也可在其它語句之后, 空行為注釋行空行為注釋行(固定格式用固定格式用C和和*)2.3 2.3 語言元素語言元素 Fortran90的語言元素是指在程序設(shè)計中所用到的基本的語言元素是指在程序設(shè)計中所用到的基本成分,例如成分,例如字符集、常量、變量、記號以及其它的基本結(jié)構(gòu)字符集、常量、變量、記號以及其它的基本結(jié)構(gòu)等。等。只有了解并掌握了這些基本要素,才可能正確自如地使

21、用該種只有了解并掌握了這些基本要素,才可能正確自如地使用該種語言。語言。 2.3.1 FORTRAN902.3.1 FORTRAN90字符集:字符集: 編寫編寫Fortran90程序時,所能使用的所有字符及符號。程序時,所能使用的所有字符及符號。 26個英文字母個英文字母AZ(az)程序中不區(qū)分大小寫)程序中不區(qū)分大小寫在大多數(shù)處理系統(tǒng)中允許使用小寫字母,除了字符串內(nèi)的字符在大多數(shù)處理系統(tǒng)中允許使用小寫字母,除了字符串內(nèi)的字符外,小寫字母等價于相應(yīng)的大寫字母。外,小寫字母等價于相應(yīng)的大寫字母。10個阿拉伯?dāng)?shù)字個阿拉伯?dāng)?shù)字09 _(下劃線下劃線)注意與減號(注意與減號(-)的區(qū)別。)的區(qū)別。 2

22、1個特殊字符(見表個特殊字符(見表2-1):): 空格空格 = + - * / ( ) , : . $ !” % & ; ? 注意:注意:1、在、在FOR源程序中,只能使用以上字符源程序中,只能使用以上字符 2、字符型數(shù)據(jù)內(nèi)(即引號內(nèi))可以出現(xiàn)任意字符、字符型數(shù)據(jù)內(nèi)(即引號內(nèi))可以出現(xiàn)任意字符(包包括漢字括漢字) 在在Fortran90中,中,將字母、數(shù)字或?qū)S米址幕居行У男蛄袑⒆帜浮?shù)字或?qū)S米址幕居行У男蛄蟹Q為記號,稱為記號,它包括它包括標(biāo)號、關(guān)鍵字、名字、常數(shù)、運算符和定界符標(biāo)號、關(guān)鍵字、名字、常數(shù)、運算符和定界符。例如:。例如:A * SIN(x)+5.3 這個表達(dá)式包

23、括這個表達(dá)式包括6個記號,即個記號,即A、*、SIN、x、+、5.3。注意:注意: 在字符串內(nèi)部,不能隨意地添加空格。在字符串內(nèi)部,不能隨意地添加空格。例例“ABC”與與“A B C”不同。不同。 在記號內(nèi)部,也不許隨意地使用空格。在記號內(nèi)部,也不許隨意地使用空格。例例SIN(X)與與S I N(X)不同。不同。 記號與記號之間的空格可以隨意地使用。記號與記號之間的空格可以隨意地使用。 多個空格在語法上與一個空格的作用相同。多個空格在語法上與一個空格的作用相同。 一個記號與相鄰關(guān)鍵字、名字、常數(shù)或標(biāo)號之間,應(yīng)當(dāng)用一個或多個空格分一個記號與相鄰關(guān)鍵字、名字、常數(shù)或標(biāo)號之間,應(yīng)當(dāng)用一個或多個空格分

24、開,以避免錯誤,同時也使結(jié)構(gòu)清晰。開,以避免錯誤,同時也使結(jié)構(gòu)清晰。2.3.2 2.3.2 記號記號FortranFortran的數(shù)據(jù)類型(的數(shù)據(jù)類型(1 1)整型整型數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型字符類型字符類型邏輯類型邏輯類型實型實型派生類型(用戶自定義類型)派生類型(用戶自定義類型)數(shù)組數(shù)組指針指針復(fù)型復(fù)型FortranFortran的數(shù)據(jù)類型(的數(shù)據(jù)類型(2 2) 在每一基本類型中,依據(jù)不同的處理系統(tǒng)又細(xì)分在每一基本類型中,依據(jù)不同的處理系統(tǒng)又細(xì)分為不同的為不同的種別種別,每一種別都與一個,每一種別都與一個 整數(shù)相對應(yīng),此整數(shù)相對應(yīng),此整數(shù)則稱為整數(shù)則稱為種別參數(shù)種別參數(shù)kind_V

25、alue 。 可在數(shù)值后用下劃線標(biāo)明種別,沒有下劃線為缺可在數(shù)值后用下劃線標(biāo)明種別,沒有下劃線為缺省種別。省種別。缺省種別整數(shù)的范圍一般取決于所用計算機缺省種別整數(shù)的范圍一般取決于所用計算機的字長。說明了種別參數(shù)后,可提高程序的可移植性。的字長。說明了種別參數(shù)后,可提高程序的可移植性。 簡而言之,種別即決定數(shù)值在計算機中存儲的字簡而言之,種別即決定數(shù)值在計算機中存儲的字節(jié)數(shù)。節(jié)數(shù)。 常量的定義常量的定義:常量是程序執(zhí)行過程中不能變化的量。:常量是程序執(zhí)行過程中不能變化的量。 基本數(shù)據(jù)類型有五種:基本數(shù)據(jù)類型有五種: 整型、實型、復(fù)型、字符型和邏輯型整型、實型、復(fù)型、字符型和邏輯型 前三種屬于數(shù)

26、值類型,后兩種為非數(shù)值類型,主前三種屬于數(shù)值類型,后兩種為非數(shù)值類型,主要用于文字處理和控制。要用于文字處理和控制。2.3.32.3.3基本類型常量基本類型常量整型數(shù)據(jù):微機支持整型數(shù)據(jù):微機支持4種種kind_Value:1,2,4,8kind_Value=1的范圍:的范圍: -128127(-2727-1)kind_Value=2的范圍:的范圍: -3276832767(-215215-1)kind_Value=4的的-21474836482147483647(-231231-1) Integer 默認(rèn)默認(rèn)kind_Value的值為的值為4 整型常量又叫整數(shù),整數(shù)值的集合就是數(shù)學(xué)整整型常量

27、又叫整數(shù),整數(shù)值的集合就是數(shù)學(xué)整數(shù)的子集。數(shù)的子集。1.整型常量(整型常量(INTEGER)FORTRAN 90FORTRAN 90通過通過KINDKIND值確定整數(shù)的值確定整數(shù)的存儲開銷存儲開銷、最大位數(shù)最大位數(shù)和和取值取值范圍范圍,如表所示。缺省,如表所示。缺省KINDKIND值則取默認(rèn)值值則取默認(rèn)值4 4。 KINDKIND值值 字節(jié)數(shù)字節(jié)數(shù) 二進(jìn)位數(shù)二進(jìn)位數(shù) 取值范圍取值范圍 1 1 8 -1281 1 8 -128127127 2 2 16 -32768 2 2 16 -327683276732767 4 4 32 -2147483648 4 4 32 -21474836482147

28、48364721474836470 +456 -123 34_2 34_SHORT 12345678998765432_4下劃線后面的量就是種別參數(shù),沒有下劃線的數(shù)都具下劃線后面的量就是種別參數(shù),沒有下劃線的數(shù)都具有缺省種別。有缺省種別。例,下列六個數(shù)都是合法的整數(shù):例,下列六個數(shù)都是合法的整數(shù): 為了保證計算機內(nèi)數(shù)的范圍夠用,就要通過給定種別為了保證計算機內(nèi)數(shù)的范圍夠用,就要通過給定種別參數(shù)來約定。種別參數(shù)是由內(nèi)在詢問函數(shù)參數(shù)來約定。種別參數(shù)是由內(nèi)在詢問函數(shù)KIND送回的。提送回的。提供的最小范圍是由內(nèi)在函數(shù)供的最小范圍是由內(nèi)在函數(shù)Selected_int_kind送回的。表送回的。表示十進(jìn)

29、制冪的范圍是由內(nèi)在函數(shù)示十進(jìn)制冪的范圍是由內(nèi)在函數(shù)range送回的。送回的。功能:功能:返回一個給定數(shù)據(jù)的種別參數(shù)。返回一個給定數(shù)據(jù)的種別參數(shù)。例:例:KIND(0) :為缺省值,其返回值是整型的標(biāo)準(zhǔn)種為缺省值,其返回值是整型的標(biāo)準(zhǔn)種別參數(shù)。別參數(shù)。KIND(2_2): 返回種別參數(shù)返回種別參數(shù)2。關(guān)于關(guān)于KIND函數(shù)函數(shù)格式:格式:SELECTEND_INT_KIND(N) :功能:返回范圍在功能:返回范圍在-10N10N的整數(shù)的的整數(shù)的kind-Value 例:例:selected_int_kind(6)可以返回范圍在可以返回范圍在-106+106(不包括兩端點值)的所有整數(shù)的種別值。(不

30、包括兩端點值)的所有整數(shù)的種別值。為使程序具有可移植性,可將為使程序具有可移植性,可將K6說明成符號常數(shù),說明成符號常數(shù),作為種別常數(shù)來使用。作為種別常數(shù)來使用。 INTEGER, parameter:k6=selected_int_kind(6) 則具有則具有K6種別的常數(shù)就可以寫為:種別的常數(shù)就可以寫為:123_K6了。了。SELECTEND_INT_KIND函數(shù)函數(shù)例例2-4 測試測試FORTRAN系統(tǒng)的整型種別范圍系統(tǒng)的整型種別范圍PROGRAM INT_KINDIMPLICIT NONEINTEGER:IPRINT*,KIND(0)DO I=1,10PRINT*,I,SELECTED

31、_INT_KIND(I)ENDDOENDPROGRAM INT_KIND 4 1 1 2 1 3 2 4 2 5 4 6 4 7 4 8 4 9 4 10 8 在在FORTRAN90中,也可以表示二進(jìn)制、八中,也可以表示二進(jìn)制、八進(jìn)制、十六進(jìn)制形式的無符號整數(shù)。其形式如下:進(jìn)制、十六進(jìn)制形式的無符號整數(shù)。其形式如下:二進(jìn)制數(shù):二進(jìn)制數(shù):B101101 或或 B”101101”八進(jìn)制數(shù):八進(jìn)制數(shù):O76210 十六進(jìn)制數(shù):十六進(jìn)制數(shù):Z1FA2整型常數(shù)的其他表示方法整型常數(shù)的其他表示方法判定整數(shù)判定整數(shù), ,指出合法整數(shù)和非法整數(shù)?指出合法整數(shù)和非法整數(shù)?說明原因說明原因-128-128、358

32、_5358_5、5 5,234234、130_1130_1、+3276+3276、-52467-52467、o136o136實型常量又叫實數(shù),它具有數(shù)學(xué)實數(shù)的近似值。實型常量又叫實數(shù),它具有數(shù)學(xué)實數(shù)的近似值。 實數(shù)最常見的兩種表示形式是:實數(shù)最常見的兩種表示形式是:小數(shù)形式和指數(shù)形式小數(shù)形式和指數(shù)形式 小數(shù)形式:小數(shù)形式:由十個數(shù)字、小數(shù)點及數(shù)符組成的數(shù)。由十個數(shù)字、小數(shù)點及數(shù)符組成的數(shù)。 指數(shù)形式:即科學(xué)計數(shù)法,指數(shù)形式:即科學(xué)計數(shù)法,對絕對值相對較小或很大的實數(shù)對絕對值相對較小或很大的實數(shù) 。2.實型常量(實型常量(REAL)小數(shù)形式:小數(shù)形式:+/- m.n,+/- m.,+/- .n

33、例例 100.0 .5 5. 注:小數(shù)點必須有。注:小數(shù)點必須有。數(shù)字部分?jǐn)?shù)字部分E(或(或D)指數(shù)部分指數(shù)部分 科學(xué)計數(shù)法科學(xué)計數(shù)法 0.876=87610-3 876E-3 =87.6 10-2 87.6E-2 =0.0876 10+1 0.0876E+1 。指數(shù)形式:指數(shù)形式:數(shù)字部分:小數(shù)形式實數(shù)或整數(shù)數(shù)字部分:小數(shù)形式實數(shù)或整數(shù)指數(shù)部分:只能為整數(shù)指數(shù)部分:只能為整數(shù) 錯例:錯例:4E5.6數(shù)字部分不能丟;數(shù)字部分不能丟; 例:例:10-4: E-4(錯)(錯) 1E-4(正確)(正確)以標(biāo)準(zhǔn)化形式(規(guī)格化指數(shù))輸出(以標(biāo)準(zhǔn)化形式(規(guī)格化指數(shù))輸出(=1) 1。數(shù)字部分的值小于。數(shù)字

34、部分的值小于1,且小數(shù)點后的第一位數(shù)字非,且小數(shù)點后的第一位數(shù)字非0 例:例:0.743643E-12 (正確)(正確) 21.835E-12 (錯)(錯) 2。數(shù)字部分有且僅有一位非零的整數(shù)。數(shù)字部分有且僅有一位非零的整數(shù)。 例:例:7.43643E-12 (正確)(正確) 0.21835E-12 (錯)(錯)說明:說明:一般實數(shù)范圍:一般實數(shù)范圍:-1038+1038,有效位,有效位78位位 也有的系統(tǒng)允許數(shù)的范圍更大,可以超過也有的系統(tǒng)允許數(shù)的范圍更大,可以超過10100。 上溢:上溢:overflow 下溢:當(dāng)下溢:當(dāng)0處理處理 為了能得到理想的范圍和有效數(shù)字,要求說明種別類型參數(shù)為了

35、能得到理想的范圍和有效數(shù)字,要求說明種別類型參數(shù)值。值。(書上有誤)例:書上有誤)例: 則符號常數(shù)則符號常數(shù)long提供了至少提供了至少8位精度,以及位精度,以及-1088+1088的值的的值的范圍。范圍。 以此說明的實型常量:以此說明的實型常量: 4.37_long 457.1234_long 就可以在就可以在long指定的精度及數(shù)值范圍內(nèi)進(jìn)行移植。指定的精度及數(shù)值范圍內(nèi)進(jìn)行移植。 實數(shù)的表示范圍:實數(shù)的表示范圍:1、PRECISION(4.37_long) 精度至少為精度至少為82、RANGE(4.37_long) 范圍至少范圍至少88次冪次冪兩個詢問函數(shù):兩個詢問函數(shù):常用實數(shù)一般分為兩

36、種:常用實數(shù)一般分為兩種: realreal(4 4)單精度(默認(rèn))單精度(默認(rèn)) realreal(8 8)雙精度)雙精度實數(shù)種別為實數(shù)種別為8時常量的表示(時常量的表示(雙精度數(shù)雙精度數(shù)) 有效位:有效位:15位;位; 數(shù)字部分?jǐn)?shù)字部分D指數(shù)指數(shù) 例:例:1.2D2 復(fù)型常量又叫復(fù)數(shù)。具有數(shù)學(xué)復(fù)數(shù)的近似值。在復(fù)型常量又叫復(fù)數(shù)。具有數(shù)學(xué)復(fù)數(shù)的近似值。在科學(xué)和工程計算中被廣泛用到。復(fù)數(shù)是實數(shù)的有序?qū)?,科學(xué)和工程計算中被廣泛用到。復(fù)數(shù)是實數(shù)的有序?qū)?,將兩個實數(shù)中間用逗號分隔,然后再放在一對括號中將兩個實數(shù)中間用逗號分隔,然后再放在一對括號中就構(gòu)成了一個復(fù)數(shù)。就構(gòu)成了一個復(fù)數(shù)。 復(fù)數(shù)以復(fù)數(shù)以a+b

37、i的形式來表示數(shù)值,復(fù)數(shù)中的的形式來表示數(shù)值,復(fù)數(shù)中的a、b稱為實部和虛部??蔀閷崝?shù),也可為整數(shù)。稱為實部和虛部??蔀閷崝?shù),也可為整數(shù)。3.復(fù)型常量(復(fù)型常量(COMPLEX) 數(shù)學(xué)數(shù)學(xué) 2+3i2+3i 一般形式:(實部系數(shù),虛部系數(shù))一般形式:(實部系數(shù),虛部系數(shù))一對常量一對常量整整實實錯例:(錯例:(1.0/21.0/2,3 3)正例:(正例:(0 0,6 6) (1E5,38) 1E5,38) (1.0_8,4.2) (1.0_8,4.2) (15_4,24_8) (15_4,24_8) FORTRAN90 FORTRAN90 (2 2,3 3)復(fù)型常量的表示:復(fù)型常量的表示: 計算

38、機除了存儲數(shù)字之外,也可以在內(nèi)存中記錄計算機除了存儲數(shù)字之外,也可以在內(nèi)存中記錄一段文本。字符類型可以記錄的東西非常廣,從鍵盤一段文本。字符類型可以記錄的東西非常廣,從鍵盤輸入的任何東西,不論是數(shù)字、文本或任何特殊符號,輸入的任何東西,不論是數(shù)字、文本或任何特殊符號,它都可以記錄。只記錄一個字母、符號時的數(shù)據(jù)類型它都可以記錄。只記錄一個字母、符號時的數(shù)據(jù)類型稱為稱為“字符字符”,記錄一連串的字符時,就稱為,記錄一連串的字符時,就稱為“字符字符串串”,記錄一個西文字符需要一個字節(jié)的存儲空間。,記錄一個西文字符需要一個字節(jié)的存儲空間。一個漢字為兩個字節(jié)的存儲空間。一個漢字為兩個字節(jié)的存儲空間。4.

39、字符型常量(字符型常量(CHARACTER)由一對單撇號或一對雙撇號之間的字符序列組成。由一對單撇號或一對雙撇號之間的字符序列組成。例:例: ABCD(ABCD(單撇號)或單撇號)或“4567”4567”(雙引號)(雙引號)注意:注意:區(qū)分字符大小寫區(qū)分字符大小寫 a Aa A 空格有效空格有效 a b aba b ab 字符中含字符中含或或”時的處理方法:時的處理方法:如:如:Im a student. Im a student. 可采用兩種表示方法:可采用兩種表示方法: 1 1) Im a student. 2 ) I m a student. 字符長度:字符串內(nèi)字符的個數(shù)字符長度:字符串

40、內(nèi)字符的個數(shù) 空格算一個,起止界不算,長度可為空格算一個,起止界不算,長度可為0。(空串。(空串或或 )字符常量的表示:字符常量的表示:1 1、一般處理系統(tǒng)缺省的字符種別參數(shù)是、一般處理系統(tǒng)缺省的字符種別參數(shù)是KIND(A)KIND(A)返回值。返回值。2 2、若使用非標(biāo)準(zhǔn)種別字符時,、若使用非標(biāo)準(zhǔn)種別字符時,應(yīng)將其種別參數(shù)放在應(yīng)將其種別參數(shù)放在字符常數(shù)的前面字符常數(shù)的前面,以便于簡化編譯程序分析語句的,以便于簡化編譯程序分析語句的工作。工作。例如:某處理系統(tǒng)可以用種別參數(shù)值例如:某處理系統(tǒng)可以用種別參數(shù)值1 1來支持漢字字來支持漢字字符,在這種情況下,一個漢字字符常數(shù)可被書寫成:符,在這種情

41、況下,一個漢字字符常數(shù)可被書寫成: 1_”1_”五筆字型輸入法五筆字型輸入法” 字符常量的種別參數(shù):字符常量的種別參數(shù):邏輯型常量只有真(邏輯型常量只有真(.TRUE.).TRUE.)和假(和假(.FALSE.).FALSE.)兩個值。兩個值。 邏輯常量通常只用來給邏輯變量置初值,以及得到某一邏輯常量通常只用來給邏輯變量置初值,以及得到某一邏輯表達(dá)式的值。邏輯表達(dá)式的值。 其缺省種別與系統(tǒng)有關(guān),實際種別可通過其缺省種別與系統(tǒng)有關(guān),實際種別可通過KIND(.TRUE.)KIND(.TRUE.)得到。若要指定,可用一個跟在下劃線后的整型常數(shù)指出,取得到。若要指定,可用一個跟在下劃線后的整型常數(shù)指出

42、,取值可為值可為1 1,2 2,4 4(缺?。ㄈ笔。?。例如:。例如:.FALSE._2.FALSE._25.邏輯型常量(邏輯型常量(LOGICAL)2.3.4 名字名字用于標(biāo)識一個程序成分,例如用于標(biāo)識一個程序成分,例如符號常量符號常量、變量、派生類型等。、變量、派生類型等。對于名字有下列要求:對于名字有下列要求: 1.名字的長度不能超過名字的長度不能超過31個字符個字符 2.名字的組成成分可以是字母、數(shù)字和下劃線名字的組成成分可以是字母、數(shù)字和下劃線 3.名字的第一個字符必須是字母名字的第一個字符必須是字母 4.在名字中不能出現(xiàn)空格在名字中不能出現(xiàn)空格 提倡使用具有一定含義的名字,提高程序

43、的清晰度和可提倡使用具有一定含義的名字,提高程序的清晰度和可讀性。讀性。1 1、定義:程序運行過程中值可變化的量、定義:程序運行過程中值可變化的量2 2、命名的規(guī)則、命名的規(guī)則 字母、數(shù)字、下劃線組成字母、數(shù)字、下劃線組成字母開頭字母開頭長度長度1-311-31個個錯例錯例 3A 3A 、 x-3 x-3 、3.14 3.14 、A3 $A3 $2.3.5 變量變量實際是內(nèi)存中的一個存儲單元,存放變量的值。實際是內(nèi)存中的一個存儲單元,存放變量的值。 特性:取之不盡,一沖就跑,總采用當(dāng)前值參與運算。特性:取之不盡,一沖就跑,總采用當(dāng)前值參與運算。 例:例:A=2.0 A BA=2.0 A B B

44、=3.0 B=3.0 A=A+B 5.0 15.0 A=A+B 5.0 15.0 B=A B=A* *B B 注:注:A A、B B必須有確定值,如未定義,值不可預(yù)測必須有確定值,如未定義,值不可預(yù)測(有時按(有時按0 0處理)處理)3、變量的含義、變量的含義 基本類型有五種,同常量。五種變量的基本類型有五種,同常量。五種變量的類型說明關(guān)鍵字分別是:類型說明關(guān)鍵字分別是:整型:整型:INTEGER INTEGER 實型:實型: REALREAL復(fù)型:復(fù)型:COMPLEXCOMPLEX 邏輯型:邏輯型:LOGICALLOGICAL字符型:字符型:CHARACTERCHARACTER 4、變量的類

45、型、變量的類型 變量在使用之前應(yīng)進(jìn)行說明。說明的格式是:變量在使用之前應(yīng)進(jìn)行說明。說明的格式是:將關(guān)鍵字放在最前面,待說明的變量放在后面,中將關(guān)鍵字放在最前面,待說明的變量放在后面,中間用間用雙分隔符雙分隔符:隔開,對于同時說明的多個變量,隔開,對于同時說明的多個變量,變量之間用逗號分隔。變量之間用逗號分隔。例:例: INTEGER:I,J,KINTEGER:I,J,K REAL:X,Y,Z REAL:X,Y,Z 變量的說明變量的說明 1.在變量說明的同時,可以給變量賦初值。在變量說明的同時,可以給變量賦初值。 INTEGER:I=5,J=126 REAL:X=7.2,Z,W=774.2 2.

46、在說明變量的同時也可說明其種別在說明變量的同時也可說明其種別 REAL(KIND=4):X,Y 或或 REAL(4):X,Y 3.在說明變量的同時,還可說明變量的屬性在說明變量的同時,還可說明變量的屬性 INTEGER,PARAMETER:I=5,J=123 REAL,DIMENSION(1:10):AFortran90關(guān)于變量說明的新功能:關(guān)于變量說明的新功能:2.3.6 派生數(shù)據(jù)類型派生數(shù)據(jù)類型(第第9章)章) 根據(jù)需要而由基本數(shù)據(jù)類型定義新的數(shù)據(jù)類型。在一個派根據(jù)需要而由基本數(shù)據(jù)類型定義新的數(shù)據(jù)類型。在一個派生類型中可包含多個基本類型。生類型中可包含多個基本類型。如:如:TYPE STU

47、DENT (定義開始定義開始) CHARACTER(LEN=20):DEPARTMENT CHARACTER(LEN=10):CLASS CHARACTER(LEN=15):NAME INTEGER:NUMBER (成員定義)(成員定義) END TYPE STUDENT (定義結(jié)束)(定義結(jié)束)派生類型的使用派生類型的使用派生類型變量的定義:派生類型變量的定義: TYPE(STUDENT):PERSON變量的賦值:變量的賦值: PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21)成員的表示:成員的表示: PERSON%CLASS=“92_2” PERSON%NAME=

48、“LI LIN”2.3.7 基本類型數(shù)組(第基本類型數(shù)組(第7章)章) 數(shù)組是具有相同類型的元素的有序集合。數(shù)組在使用之前必須說明。數(shù)組是具有相同類型的元素的有序集合。數(shù)組在使用之前必須說明。數(shù)組的說明:數(shù)組的說明: INTEGER,DIMENSION(1:50):X 數(shù)組名為數(shù)組名為X,類型為整型,元素個數(shù)為,類型為整型,元素個數(shù)為50。 INTEGER,DIMENSION(5,3):B 數(shù)組名為數(shù)組名為B,類型為整型,元素個數(shù)為,類型為整型,元素個數(shù)為5*3個個 維界:維界:1:50 下界:上界下界:上界 缺省下界為缺省下界為1 數(shù)組中元素的個數(shù)稱為它的大小,維數(shù)稱為秩,每維中元素的個數(shù)稱

49、數(shù)組中元素的個數(shù)稱為它的大小,維數(shù)稱為秩,每維中元素的個數(shù)稱為維的長度,長度的序列稱為形。為維的長度,長度的序列稱為形。通過指定下標(biāo)值的辦法來實現(xiàn)。下標(biāo)值可為整數(shù)或整型表達(dá)式。通過指定下標(biāo)值的辦法來實現(xiàn)。下標(biāo)值可為整數(shù)或整型表達(dá)式。下標(biāo)值不能越界,個數(shù)必須與數(shù)組的秩相等。下標(biāo)值不能越界,個數(shù)必須與數(shù)組的秩相等。注意:注意:1.允許對數(shù)組名進(jìn)行運算。允許對數(shù)組名進(jìn)行運算。 2.允許對數(shù)組片段進(jìn)行操作。允許對數(shù)組片段進(jìn)行操作。 所謂數(shù)組片段是指數(shù)組中某些連續(xù)元素的重新組合。數(shù)所謂數(shù)組片段是指數(shù)組中某些連續(xù)元素的重新組合。數(shù)組片段也是一個數(shù)組。組片段也是一個數(shù)組。數(shù)組的引用:數(shù)組的引用:2.3.8

50、字符子串(第字符子串(第8章)章) 字符型常量又叫字符串。一個字符串的一部分稱為子字符字符型常量又叫字符串。一個字符串的一部分稱為子字符串或字符子串。串或字符子串。字符數(shù)組字符數(shù)組: CHARACTER(LEN=1),),DIMENSION(80):ROW引用:引用: ROW(I)字符串:字符串: CHARACTER(LEN=80):ROW引用:引用: ROW(I:I););ROW(4:7)特殊:特殊:ROW(:I) 相當(dāng)于相當(dāng)于 ROW(1:I) ROW(I:) 相當(dāng)于相當(dāng)于 ROW(I:80) ROW(:) 相當(dāng)于相當(dāng)于 ROW(1:80)2.3.9 數(shù)據(jù)對象和子對象(第數(shù)據(jù)對象和子對象(

51、第7章)章)由一個名引用的對象:由一個名引用的對象:有名標(biāo)量有名標(biāo)量(簡單變量)簡單變量)有名數(shù)組有名數(shù)組由子對象標(biāo)志符引用的子對象是:由子對象標(biāo)志符引用的子對象是:數(shù)組元素數(shù)組元素數(shù)組片段數(shù)組片段結(jié)構(gòu)分量結(jié)構(gòu)分量子串子串2.4 程序單元概念程序單元概念 程序單元是程序單元是FORTRAN語言的基本成分。程序單元可以語言的基本成分。程序單元可以是是主程序主程序、子程序子程序、模塊模塊或或塊數(shù)據(jù)程序單元塊數(shù)據(jù)程序單元。子程序可以是。子程序可以是函數(shù)子程序或子例行子程序。模塊包含的說明是對其它的程函數(shù)子程序或子例行子程序。模塊包含的說明是對其它的程序單元形成可訪問性。塊數(shù)據(jù)單元用來對有名公用區(qū)中的數(shù)序單元形成可訪問性。塊數(shù)據(jù)單元用來對有名公用區(qū)中的數(shù)據(jù)對象賦初值。(據(jù)對象賦初值。(F90中不提倡使用)中不提倡使用)2.4.1 主程序主程序 主程序是不包含主程序是不包含SUBROUTINE、FUNCTION、MODULE或或BLOCK DATA語句作為其第一條語句的程序單元。語句作為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論