FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)_第1頁
FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)_第2頁
FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)_第3頁
FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)_第4頁
FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章FORTRAN程序設(shè)計(jì)基礎(chǔ)FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第1頁。

計(jì)算機(jī)是在“程序”的控制下進(jìn)行自動(dòng)工作的,它解決任何實(shí)際問題都依賴于解決問題的程序。學(xué)習(xí)FORTRAN程序設(shè)計(jì)的目的,就是要學(xué)會利用FORTRAN語言編寫出適合自己實(shí)際需要的程序,讓計(jì)算機(jī)完成自己指定的任務(wù)。本章將介紹:程序設(shè)計(jì)的基本概念FORTRAN語言的發(fā)展FORTRAN程序的基本結(jié)構(gòu)與書寫格式FORTRAN90開發(fā)環(huán)境FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第2頁。1.1程序與程序設(shè)計(jì)計(jì)算機(jī)解題的“程序”是用計(jì)算機(jī)能識別的語言所描述的解決實(shí)際問題的方法和步驟。計(jì)算機(jī)能直接識別的語言是機(jī)器語言,但機(jī)器語言用二進(jìn)制代碼表示機(jī)器指令,且機(jī)器指令跟具體的計(jì)算機(jī)結(jié)構(gòu)有關(guān),程序直觀性差、通用性不強(qiáng)。所以初學(xué)者一般都學(xué)習(xí)利用一種高級語言來編寫程序。FORTRAN語言便是在科學(xué)計(jì)算領(lǐng)域應(yīng)用十分廣泛的一種高級語言。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第3頁。什么叫程序設(shè)計(jì)?對于初學(xué)者來說,往往把程序設(shè)計(jì)簡單地理解為只是編寫一個(gè)程序。這是不全面的。程序設(shè)計(jì)反映了利用計(jì)算機(jī)解決問題的全過程,包含多方面的內(nèi)容,而編寫程序只是其中的一個(gè)方面。使用計(jì)算機(jī)解決實(shí)際問題,通常是先要對問題進(jìn)行分析并建立數(shù)學(xué)模型,然后考慮數(shù)據(jù)的組織方式和算法,并用某一種程序設(shè)計(jì)語言編寫程序,最后調(diào)試程序,使之運(yùn)行后能產(chǎn)生預(yù)期的結(jié)果。這個(gè)過程稱為程序設(shè)計(jì)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第4頁。具體要經(jīng)過以下四個(gè)基本步驟:(1)分析問題,確定數(shù)學(xué)模型或方法。(2)設(shè)計(jì)算法,畫出流程圖。(3)選擇編程工具,編寫程序。(4)調(diào)試程序,分析輸出結(jié)果。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第5頁。1.2算法及其描述1.2.1算法的概念在日常生活中,我們做任何一件事情,都是按照一定規(guī)則,一步一步地進(jìn)行的,這些解決問題的方法和步驟稱為算法。比如工廠生產(chǎn)一部機(jī)器,先把零件按一道道工序進(jìn)行加工,然后,把各種零件按一定法則組裝起來,生產(chǎn)機(jī)器的工藝流程就是算法。同樣,我們要編寫解決問題的程序,首先應(yīng)設(shè)計(jì)算法,任何一個(gè)程序都依賴于特定的算法,有了算法,再來編寫程序是很容易的事情。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第6頁。例1.1求

其中這一題的算法并不難,可寫成:(1)從鍵盤輸入a、b的值。(2)如果a<b,則,否則。(3)計(jì)算u的值。(4)輸出u的值。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第7頁。例1.2輸入十個(gè)數(shù),要求找出其中最大的數(shù)。設(shè)max單元用于存放最大數(shù),先將輸入的第一個(gè)數(shù)放在max中,再將輸入的第二個(gè)數(shù)與max相比較,大者送到max,然后將第三個(gè)數(shù)與max相比,大者放在max中,…,一直到比完九次為止。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第8頁。例1.2的算法(1)輸入一個(gè)數(shù),放在存儲單元max中。

(2)設(shè)置用來統(tǒng)計(jì)比較次數(shù)的單元i,初值置1。

(3)若i≤9,做第(4)步,否則做第(8)步。

(4)輸入一個(gè)數(shù),放在存儲單元x中。

(5)比較max和x中的數(shù),若x>max,則將x的值送給max,否則,max值不變。

(6)i增加1。

(7)返回到第(3)步。

(8)輸出max中的數(shù),此時(shí)max中的數(shù)就是十個(gè)數(shù)中最大的數(shù)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第9頁。例1.3求兩個(gè)正整數(shù)m和n的最大公約數(shù)。m,n的最大公約數(shù)即是所有能同時(shí)除盡m,n的數(shù)中的最大數(shù)。求兩個(gè)正整數(shù)的最大公約數(shù)常用展轉(zhuǎn)相除法。由于m和n是兩個(gè)正整數(shù),因此存在q,r,使m=n×q+r(q≥0,r≥0,r<n)。如果r=0,則n即是m和n的最大公約數(shù)。否則,可以證明n和r的最大公約數(shù)就是m和n的最大公約數(shù)。用同樣的方法求n和r的最大公約數(shù)。如此繼續(xù)下去,直到余數(shù)為0。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第10頁。例1.3的算法:(1)輸入m和n的值。

(2)求m除以n的余數(shù)r。

(3)若r=0,則轉(zhuǎn)至第(6)步,否則執(zhí)行第(4)步。

(4)n→m,r→n。

(5)轉(zhuǎn)第(2)步。

(6)輸出n。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第11頁。算法的五個(gè)特征:(1)有窮性。算法中執(zhí)行的步驟總是有限次數(shù)的,不能無止境地執(zhí)行下去。(2)確定性。算法中的每一步操作必須具有確切的含義,不能有二義性。(3)有效性。算法中的每一步操作必須是可執(zhí)行的。(4)要有數(shù)據(jù)輸入。算法中操作的對象是數(shù)據(jù),因此應(yīng)提供有關(guān)數(shù)據(jù)。(5)要有結(jié)果輸出。算法的目的是用來解決一個(gè)給定的問題,因此應(yīng)提供輸出結(jié)果,否則算法就2沒有實(shí)際意義。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第12頁。1.2.2算法的描述

算法的描述有許多方法,常用的有:自然語言、一般流程圖、N-S圖等。前面例1.1~例1.3的算法是用自然語言──漢語描述的,其優(yōu)點(diǎn)是通俗易懂,但它不太直觀,描述不夠簡潔,且容易產(chǎn)生二義性。在實(shí)際應(yīng)用中常用流程圖表示算法。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第13頁。1.一般流程圖一般流程圖是一種傳統(tǒng)的算法描述方法,它用不同的幾何圖形來代表不同性質(zhì)的操作。例如,用矩形框表示要進(jìn)行的操作,用菱形框表示判斷,用流程線將各步操作連接起來并指示算法的執(zhí)行方向。一般流程圖的主要優(yōu)點(diǎn)是直觀性強(qiáng),初學(xué)者容易掌握。缺點(diǎn)是對流程線的使用沒有嚴(yán)格限制,如毫無限制地使流程任意轉(zhuǎn)來轉(zhuǎn)去,將使流程圖變得毫無規(guī)律,難以閱讀。為了提高算法可讀性和可維護(hù)性,必須限制無規(guī)則的轉(zhuǎn)移,使算法結(jié)構(gòu)規(guī)范化。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第14頁。例1.4用一般流程圖來描述例1.1的算法。輸入a、ba<b?輸出uynFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第15頁。例1.2的算法。y1→ix>max?輸入maxy輸入xi≤9?x→maxi+1→i輸出maxnnFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第16頁。2.程序的三種基本結(jié)構(gòu)1966年Bohra和Jacopini提出了組成結(jié)構(gòu)化算法的三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第17頁。順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu),依次順序執(zhí)行不同的程序塊。S1S2S3FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第18頁。選擇結(jié)構(gòu)選擇結(jié)構(gòu)根據(jù)條件滿足或不滿足而去執(zhí)行不同的程序塊。當(dāng)條件P滿足時(shí)執(zhí)行A程序塊,否則執(zhí)行B程序塊。PS1S2YNFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第19頁。循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指重復(fù)執(zhí)行某些操作,重復(fù)執(zhí)行的部分稱為循環(huán)體。判斷條件是否滿足,當(dāng)條件P滿足時(shí)反復(fù)執(zhí)行A程序塊,每執(zhí)行一次測試一次P,直到P不滿足為止,跳出循環(huán)體執(zhí)行它下面的基本結(jié)構(gòu)。PSNYFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第20頁。三種基本程序結(jié)構(gòu)的共同特點(diǎn):(1)只有一個(gè)入口。(2)只有一個(gè)出口。(3)結(jié)構(gòu)中無死語句,即結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會被執(zhí)行。(4)結(jié)構(gòu)中無死循環(huán)。結(jié)構(gòu)化定理表明,任何一個(gè)復(fù)雜問題的程序,都可以用以上三種基本結(jié)構(gòu)組成。具有單入口單出口性質(zhì)的基本結(jié)構(gòu)之間形成順序執(zhí)行關(guān)系,使不同基本結(jié)構(gòu)之間的接口關(guān)系簡單,相互依賴性少,從而呈現(xiàn)出清晰的結(jié)構(gòu)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第21頁。3.N-S圖由于傳統(tǒng)流程圖的缺點(diǎn),1973年美國學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖工具─N-S圖。N-S圖以三種基本結(jié)構(gòu)作為構(gòu)成算法的基本元素,每一種基本結(jié)構(gòu)用一個(gè)矩形框來表示,而且取消了流程線,各基本結(jié)構(gòu)之間保持順序執(zhí)行關(guān)系。N-S圖可以保證程序具有良好的結(jié)構(gòu),所以N-S圖又叫做結(jié)構(gòu)化流程圖。

S1S2S3

YNS1S2

當(dāng)P滿足時(shí)SPFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第22頁。例1.5用N-S圖來描述例1.1的算法。輸入a、bYN輸出ua<b?FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第23頁。例1.2的算法。輸入max1→i當(dāng)i≤9時(shí)輸入xynx→maxi+1→i輸出maxx>max?FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第24頁。1.3程序設(shè)計(jì)方法1.3.1結(jié)構(gòu)化程序設(shè)計(jì)隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,人們對程序設(shè)計(jì)方法的研究也在不斷深入。早期程序設(shè)計(jì)的好壞常以運(yùn)行速度快、占用內(nèi)存少為主要標(biāo)準(zhǔn),然而在計(jì)算機(jī)的運(yùn)算速度大大提高,存儲容量不斷擴(kuò)大的情況下,程序具有良好的結(jié)構(gòu)成為第一要求,一個(gè)結(jié)構(gòu)良好的程序雖然在效率上不一定最好,但結(jié)構(gòu)清晰,易于閱讀和理解,便于驗(yàn)證其正確性。這對傳統(tǒng)的程序設(shè)計(jì)方法提出了嚴(yán)重的挑戰(zhàn),從而促使了結(jié)構(gòu)化程序設(shè)計(jì)方法的產(chǎn)生。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第25頁。結(jié)構(gòu)化程序設(shè)計(jì)自20世紀(jì)60年代由荷蘭學(xué)者E.W.Dijkstra提出以來,經(jīng)受了實(shí)踐的檢驗(yàn),同時(shí)也在實(shí)踐中不斷發(fā)展和完善,成為軟件開發(fā)的重要方法,在程序設(shè)計(jì)方法學(xué)中已占有十分重要的位置。用這種方法設(shè)計(jì)的程序結(jié)構(gòu)清晰,易于閱讀和理解,便于調(diào)試和維護(hù)。結(jié)構(gòu)化程序設(shè)計(jì)采用自頂向下、逐步求精和模塊化的分析方法。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第26頁。自頂向下自頂向下是指對設(shè)計(jì)的系統(tǒng)要有一個(gè)全面的理解,從問題的全局入手,把一個(gè)復(fù)雜問題分解成若干個(gè)相互獨(dú)立的子問題,然后對每個(gè)子問題再作進(jìn)一步的分解,如此重復(fù),直到每個(gè)問題都容易解決為止。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第27頁。逐步求精逐步求精是指程序設(shè)計(jì)的過程是一個(gè)漸進(jìn)的過程,先把一個(gè)子問題用一個(gè)程序模塊來描述,再把每個(gè)模塊的功能逐步分解細(xì)化為一系列的具體步驟,以致能用某種程序設(shè)計(jì)語言的基本控制語句來實(shí)現(xiàn)。逐步求精總是和自頂向下結(jié)合使用,一般把逐步求精看作自頂向下設(shè)計(jì)的具體體現(xiàn)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第28頁。

模塊化所謂模塊化就是把大程序按照功能分為較小的程序。一般地講,一個(gè)程序是由一個(gè)主控模塊和若干子模塊組成的。主控模塊用來完成某些公用操作及功能選擇,而子模塊用來完成某項(xiàng)特定的功能。當(dāng)然,子模塊是相對主模塊而言的。作為某一子模塊,它也可以控制更下一層的子模塊。一個(gè)復(fù)雜的問題可以分解成若干個(gè)較簡單的子問題來解決。這種設(shè)計(jì)風(fēng)格,便于分工合作,將一個(gè)龐大的模塊分解為若干個(gè)子模塊分別完成。然后用主控模塊控制、調(diào)用子模塊。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第29頁。模塊化結(jié)構(gòu)化程序設(shè)計(jì)的過程就是將問題求解由抽象逐步具體化的過程。這種方法符合人們解決復(fù)雜問題的普遍規(guī)律,可以顯著提高程序設(shè)計(jì)的質(zhì)量和效率。主控模塊子模塊1子模塊2子模塊n子模塊21子模塊22子模塊2m…………FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第30頁。例1.6計(jì)算s=1+(1+2!)+(1+2!+3!)+…+(1+2!+…+10!)這是求若干項(xiàng)之和的問題S=0I從1~10求FS=S+F輸出SF=0J從1~I求F1F=F+F1F1=1K從1~JF1=F1*KFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第31頁。例1.7兩個(gè)自然數(shù)之和是667,且它們的最小公倍數(shù)與最大公約數(shù)之比是120:1,例如115和552,求這樣的自然數(shù)。設(shè)兩個(gè)自然數(shù)分別為M和N=667-M(2<=M<=333),兩數(shù)最小公倍數(shù)為L,兩數(shù)最大公約數(shù)為G,則一級算法如圖所示。M從2變化到333N=667-M求G求LYN輸出M、NL=120*G?FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第32頁。求最大公約數(shù)及最小公倍數(shù)對參數(shù)A和B(A<B),使K從A開始變化,找到一個(gè)能同時(shí)整除A與B的K,K就是最大公約數(shù)。而求最小公倍數(shù)是:若干個(gè)B之和,若能被A整除,則該和便是A和B的最小公倍數(shù)。K從A變化到1YN返回K值A(chǔ)和B能同時(shí)被K整除?K=B當(dāng)K不能被A整除時(shí)K=K+B返回K值FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第33頁。例1.8驗(yàn)證哥德巴赫猜想:任何大于2的偶數(shù)都是兩個(gè)素?cái)?shù)之和。給出每一個(gè)偶數(shù)N,驗(yàn)證能否表示成兩個(gè)素?cái)?shù)之和,如果不能,輸出No,否則繼續(xù)驗(yàn)證下一個(gè)偶數(shù)N。接下來的的問題是如何把N分解為N1和N2(N=N1+N2)以及如何判斷N1和N2是素?cái)?shù)。把N分解為N1和N2的方法很多,一種方法是,N1從2變化到N/2,且N2=N-N1。為了判斷N1和N2是否素?cái)?shù),可以分別引入邏輯變量L1和L2,N1是素?cái)?shù)時(shí),L1為真,否則為假,N2是素?cái)?shù)時(shí),L2為真,否則為假。二級算法如圖1.13(b)所示,其中判斷N1或N2是否素?cái)?shù)可采用子程序技術(shù)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第34頁。判斷M是否素?cái)?shù)的算法根據(jù)素?cái)?shù)的定義來判斷。素?cái)?shù)是大于1,且除了1和它本身以外,不能被其他任何整數(shù)所整除的整數(shù)。為了判斷整數(shù)M是否為素?cái)?shù),一個(gè)最簡單的辦法用2、3、4、5、...、M-1這些數(shù)逐個(gè)去除M,看能否除盡,如果全都除不盡,則M是素?cái)?shù),否則,只要其中一個(gè)數(shù)能除盡,則M不是素?cái)?shù)。當(dāng)M較大時(shí),用這種方法,除的次數(shù)太多,可以有許多改進(jìn)辦法,以減少除的次數(shù),提高運(yùn)行效率。其中的一種是:用2、3、4、…、去除,如果都除不盡,則M是素?cái)?shù),這是因?yàn)槿绻∮诘扔诘臄?shù)都不能除盡M,則大于的數(shù)也不能除盡M。用反證法證明。設(shè)有大于的數(shù)J能除盡M,則它的商K必小于,且K能除盡M(商為J)。這與原命題矛盾,假設(shè)不成立。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第35頁。1.3.2面向?qū)ο蟪绦蛟O(shè)計(jì)Object-OrientedProgramming,簡稱OOP傳統(tǒng)的程序設(shè)計(jì)是基于求解過程來組織程序流程。在這類程序中,數(shù)據(jù)和施加于數(shù)據(jù)的操作是獨(dú)立設(shè)計(jì)的,以對數(shù)據(jù)進(jìn)行操作的過程作為程序的主體。面向?qū)ο蟪绦蛟O(shè)計(jì)則以對象作為程序的主體。對象是數(shù)據(jù)和操作的“封裝體”,封裝在對象內(nèi)的程序通過“消息”來驅(qū)動(dòng)運(yùn)行。在圖形用戶界面上,消息可通過鍵盤或鼠標(biāo)的某種操作來傳遞。在對象內(nèi)部的實(shí)現(xiàn)上,常常使用結(jié)構(gòu)化程序設(shè)計(jì)方法。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第36頁。1.4FORTRAN語言FORTRAN語言是世界上第一個(gè)高級程序設(shè)計(jì)語言,50年代初由IBM公司的JohnBacuus領(lǐng)導(dǎo)的一個(gè)小組研制。他當(dāng)時(shí)推斷,如果發(fā)明一種自動(dòng)執(zhí)行指令碼的語言,使用循環(huán)的方法,讓計(jì)算機(jī)在一組指令的控制下執(zhí)行重復(fù)任務(wù),將會極大地降低計(jì)算機(jī)的運(yùn)行成本。隨后由美國Dartmouth大學(xué)JohnKemeny和ThomasKurt在該語言基礎(chǔ)上開發(fā)了BASIC語言。今天,42年過去了,F(xiàn)ortran在軍事和科學(xué)應(yīng)用中仍然是主要的編程語言。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第37頁。匯編語言計(jì)算機(jī)中真正可以處理的只是由“0”、“1”組成的二進(jìn)制代碼,這種指令代碼易出錯(cuò)且不易修改,由于依賴于機(jī)器,使用極不方便,于是人們發(fā)明“指令的助記符”,用幾個(gè)字母(往往就是其含義的英文單詞或縮寫)代替某條指令,如加法用ADD表示,這種符號系統(tǒng)的擴(kuò)大就是匯編語言。使用匯編語言編程,優(yōu)點(diǎn)是運(yùn)行效率高,可直接對硬件內(nèi)部進(jìn)行控制,缺點(diǎn)是需對硬件有更深入的了解,而且編程效率不高,并且與機(jī)器的體系結(jié)構(gòu)仍有一定的依賴關(guān)系。

匯編程序:由于機(jī)器并不能直接識別和運(yùn)行用匯編語言編制出的程序,必須先轉(zhuǎn)換成對應(yīng)的機(jī)器代碼指令,這項(xiàng)工作不用手工完成,僅需交給稱為“匯編程序”的軟件處理一下,即可得到可以直接運(yùn)行的程序文件?;谶@種關(guān)系,人們將用匯編語言編出來的程序稱為“源程序”,稱用匯編程序處理后產(chǎn)生的程序?yàn)椤澳康某绦颉?。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第38頁。高級語言高級語言:由于匯編語言依賴于硬件體系,且助記符量大難記,于是人們又發(fā)明了更加易用的所謂高級語言。在這種語言下,其語法和結(jié)構(gòu)更類似普通英文,且由于遠(yuǎn)離對硬件的直接操作,使得一般人經(jīng)過學(xué)習(xí)之后都可以編程。根據(jù)應(yīng)用范圍的不同和歷史的發(fā)展,高級語言有很多種,如BASIC、FORTRAN、C、PASCAL、LISP、FOXPRO、COBOL。解釋程序:對源程序邊解釋翻譯成機(jī)器代碼邊執(zhí)行的高級語言程序。由于它的方便性和交互性較好,早期一些高級語言采用這種方式,如BASIC、dBASE。但它的弱點(diǎn)是運(yùn)行效率低,程序的運(yùn)行依賴于開發(fā)環(huán)境,不能直接在操作系統(tǒng)下運(yùn)行。編譯程序:為了提高運(yùn)行效率和對源程序的保密,人們推出了可以一次性將源程序轉(zhuǎn)換成可執(zhí)行代碼的程序開發(fā)軟件。它產(chǎn)生可以在操作系統(tǒng)下直接執(zhí)行的程序,且運(yùn)行速度比用解釋程序執(zhí)行快得多,F(xiàn)ORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第39頁。1.5FORTRAN程序的基本結(jié)構(gòu)例1.9輸入圓的半徑,計(jì)算并輸出圓的周長和面積。該問題的程序分為三個(gè)步驟:一是輸入原始數(shù)據(jù),即圓的半徑,二是計(jì)算圓的周長和面積,三是輸出圓的周長和面積。程序如下:PROGRAMSAMPLEREALR,P,S!定義三個(gè)實(shí)型變量READ*,R!輸入圓的半徑P=2*3.14159*R!計(jì)算圓的周長S=3.14159*R*R!計(jì)算圓的面積PRINT*,R,P,S!輸出圓的周長和面積END

FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第40頁。FORTRAN程序結(jié)構(gòu)一個(gè)FORTRAN程序由若干個(gè)程序單元組成。程序單元可以是主程序、外部子程序,也可以是模塊,其中模塊包含可被其他程序訪問的各種程序?qū)嶓w。

[PROGRAM程序名][說明部分][可執(zhí)行部分]END[PROGRAM[程序名]]FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第41頁。1.6FORTRAN程序的書寫格式作為歷史最長的高級語言,F(xiàn)ORTRAN語言保持著早期歷史的痕跡,F(xiàn)ORTRAN77及其以前的版本源程序?qū)懜袷讲捎霉潭ǜ袷?,格式過于刻板嚴(yán)格。FORTRAN90作了改進(jìn),提供了較為自由的程序書寫格式,在合乎語法的前提下,程序員有了更大的自主空間。但考慮到兼容性,在FORTRAN90中仍可使用FORTRAN77源程序的書寫格式。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第42頁。1.6.1固定格式:分成四個(gè)區(qū)第1~5列為標(biāo)號區(qū)。第1列為C或*,說明此行為注釋行。第6列為續(xù)行標(biāo)志區(qū)。續(xù)行標(biāo)志是除空格和零以外的任何FORTRAN77字符。第7~72列為語句區(qū)。語句可以從第7列以后任何位置開始書寫。但一行只能寫一個(gè)語句。第73~80列為注釋區(qū)。FORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第43頁。1.6.2

自由格式在自由格式源程序中,不再有標(biāo)號區(qū)、續(xù)行標(biāo)志區(qū)、語句區(qū)和注釋區(qū)的劃分,源程序可以從第1列寫到第132列。具體規(guī)定如下:(1)一行可以寫多個(gè)語句,語句之間用“;”分隔,但最后一個(gè)語句不允許有標(biāo)點(diǎn)符號。例如:X=23.5;Y=-467.0;Z=X+YFORTRAN90程序設(shè)計(jì)教程-第1章-FORTRAN程序設(shè)計(jì)基礎(chǔ)全文共49頁,當(dāng)前為第44頁。1.6.2

自由格式(2)用!作為注釋符,!可以寫在一行中的任一列。因?yàn)樽⑨尶偸茄由熘脸绦蛐械慕Y(jié)束,所以在同一行的不同語句之間不能插入注釋。(3)當(dāng)一個(gè)語句比較長時(shí),在一行中

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論