已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章FORTRAN語言基礎(chǔ),字符集與保留字基本數(shù)據(jù)類型常量與變量運算符與表達(dá)式及語句輸入輸出,源程序:programmain!exampleimplicitnonerealt6,t7,t8,tavet6=22.7t7=25.8t8=27.2tave=(t6+t7+t8)/3.0print*,tave=,taveend,變量申明,語句,保留字,運算式,注釋行,1.字符集FORTRAN規(guī)定允許使用的字符為:,2.1字符集與保留字,注意:在FORTRAN語句中不區(qū)分大小寫字母,如REAL何real或Real是一樣的。,2.保留字保留字(也稱關(guān)鍵字)是FORTRAN90/95中具有特定意義的字符串。如:語句關(guān)鍵字、內(nèi)部函數(shù)名,(1)語句關(guān)鍵字如語句“IF(ATHEN”中的“IF”和“THEN”是語句保留字。類似的保留字有:PROGRAM、INTEGER、REAL、READ、PRINT、WRITE、DO、END、SUBROUTINE、FUNCTION等。(詳見P445),(2)內(nèi)部函數(shù)名如“ABS”、“SIN”、“LOG”等(詳見P456-459),注意:FORTRAN90/95允許保留字作為其他實體的名稱(變量名、數(shù)組名、函數(shù)名、程序名等)如:語句“PROGRAMPROGRAM”中第一個“PROGRAM”將被編譯程序識別為保留字,第二個“PROGRAM”將被識別為實體名稱(主程序單元名)。,1.FORTRAN提供的數(shù)據(jù)類型,不同類型數(shù)據(jù)有不同的特性,其處理的方式有所不同,取值范圍也不一樣,在處理數(shù)據(jù)前,必須說明數(shù)據(jù)的特性。,2.2基本數(shù)據(jù)類型,2.數(shù)據(jù)類型有四個性質(zhì):(1)每個數(shù)據(jù)類型有一個唯一的名稱。(2)每個數(shù)據(jù)類型規(guī)定了一個取值范圍(值的集合)(3)每個數(shù)據(jù)類型規(guī)定了其常量數(shù)據(jù)的表示方法(4)每個數(shù)據(jù)類型規(guī)定了一組操作,在程序運行過程中,其值不能被改變的量稱為常量,它在程序中直接生成并直接用于計算和處理。整型常量、實型常量、復(fù)型常量、字符型常量、邏輯型常量,2.3常量,1.數(shù)值型常量及其類型(1)整型常量整型常量又稱為整型常數(shù)或整數(shù),包括正數(shù)、負(fù)數(shù)和0。例如:+5-367098,(2)實型常量實型常量即實型常數(shù)或簡稱為實數(shù)。它有兩種形式:小數(shù)形式:12.3-3.5100.56指數(shù)形式:5.35E5表示5.35105,2.66E-3表示2.6610-3,當(dāng)單精度實數(shù)不足以表示一個數(shù)的大小或精度時,可以用雙精度實數(shù)表示,只是將實數(shù)指數(shù)部分中的字母E改成字母D即可。例如,6.85746304857D5,.3875479654765D+3等都是雙精度實數(shù)。,(3)復(fù)型常量復(fù)型常量即復(fù)型常數(shù)或簡稱為復(fù)數(shù)。如:(1.0,1.0)表示復(fù)數(shù)1.0+1.0i,(2.1,-4.5)表示復(fù)數(shù)2.1-4.5i,(-6.0,0)表示復(fù)數(shù)-6.0。,2.字符型常量一對單引號(撇號)或雙引號括起來的若干個非空字符串為字符型常量,又稱為字符或字符串。如:a,A,x+y,#$%注意:字符串內(nèi)字母區(qū)分大小寫,a和A是不同的字符常量。,(1)字符串中含有撇號如:Imaboy.“Imaboy.”(2)字符串長度(字符串中的空格是有意義)如Imaboy.的長度為10為空串而則為長度為1,3.邏輯型常量邏輯常量僅有兩個,.TRUE.和.FALSE.注意:對于邏輯值.TRUE.,在其存儲單元字節(jié)內(nèi)每位為“1”,可視為整數(shù)值-1,對于邏輯值.FALSE.,在其存儲單元字節(jié)內(nèi)每位為“0”,可視為整數(shù)值0,它們均能參與整數(shù)運算。如:7+.FALSE.,結(jié)果仍為7。1+.TRUE.,結(jié)果則為0,4.符號常量如:圓周率、重力加速度g等數(shù)據(jù)。,1、變量的定義變量是指在程序運行期間其值是可以變化的量,系統(tǒng)為程序中的每一個變量開辟一個存儲單元,用來存放變量的值。2、變量的命名FORTRAN中規(guī)定須以字母開頭,后可接多達(dá)30個字母、數(shù)字或下劃線。,2.4變量,下面列出的是合法的標(biāo)識符,可以作為變量名:Sum,average,student_name,BASIC下面是不合法的標(biāo)識符和變量名:_total,M.D.John,H1N1,integer,3、變量的類型變量也相應(yīng)的分為五種類型:(1)整型變量(2)實型變量(3)復(fù)型變量(4)字符型變量(5)邏輯型變量,數(shù)值型變量,字符型變量,邏輯型變量,下面為合法聲明整型變量語句:INTEGER(KIND=2)a,b,c,d!聲明KIND值為2的4個整型變量INTEGER(1)e!聲明KIND值為1的1個整型變量INTEGERf!聲明KIND值為4(缺?。┑?個整型變量INTEGER:g=123!聲明KIND值為4(缺省)的1個整型變量且初值為123注意:符號在聲明中可有可無。若有,則可賦初值,否則不可賦初值。如聲明語句“INTEGERg=123”是非法語句。,(1)整型變量,下面為合法聲明實型變量語句REAL(KIND=4)a,b,c,d!聲明KIND值為4的4個實型變量REAL(8)e!聲明KIND值為8的1個實型變量REALf!聲明KIND值為4(缺?。┑?個實型變量REAL:g=1.23!聲明KIND值為4(缺?。┑?個實型變量且賦初值為1.23,注意:符號在聲明中可有可無。若有,則可賦初值,否則不可賦初值。如聲明語句“REALg=1.23”是非法語句。KIND值為8的實型變量為雙精度變量,可由DOUBLEPRECISION聲明取代。,(2)實型變量,下面為合法聲明復(fù)型變量語句:COMPLEX(KIND=4)a,b,c,d!聲明KIND值為4的4個復(fù)型變量COMPLEX(8)e!聲明KIND值為8的1個復(fù)型變量COMPLEXf!聲明KIND值為4(缺?。┑?個復(fù)型變量COMPLEX:g=(3,4)!聲明KIND值為4(缺?。┑?個復(fù)型變量,且賦初值為(3,4)。注意:符號在聲明中可有可無。若有,則可賦初值,否則不可賦初值。如聲明語句“COMPLEXg=(3,4)”是非法語句。,(3)復(fù)型變量,下面為合法聲明字符型變量語句:CHARACTERa!聲明長度為1(缺?。┑?個字符型變量CHARACTER(8)b,c!聲明長度為8的2個字符型變量CHARACTER(LEN=4)e,f,g!聲明長度為4的3個字符型變量CHARACTER*6h!聲明長度為6的1個字符型變量CHARACTER:a=A!a的初值為“A”CHARACTER(7):b=“FORTRAN”,c!b的初值為“FORTRAN”,c初值為7空格“”而聲名語句CHARACTER*7h=“student”則為非法語句。,(4)字符型變量,下面為合法聲明邏輯型變量語句:LOGICAL(KIND=4)a!聲明KIND值為4的1個邏輯型變量LOGICAL(4)a!聲明KIND值為4的1個邏輯型變量LOGICALa!聲明KIND值為4(缺?。┑?個邏輯型變量LOGICAL:a=.True.!聲明KIND值為4(缺省)的1個復(fù)型變量,且賦初值為真。,(5)邏輯型變量,(6)變量的聲明在程序中,變量類型需要通過類型聲明語句來定義。變量聲明有兩種形式:顯式聲明和隱式聲明(隱含約定)。顯式聲明INTEGERaREALbCOMPLEXc,隱式聲明(隱含約定),I-N規(guī)則規(guī)定:在程序中,凡是變量名用以下字母開頭的變量被默認(rèn)為整型變量,I、J、K、L、M、N、i、j、k、l、m、n以其他字母開頭的變量被默認(rèn)為實型變量,如:id為整型變量,而total則為實型變量。,FORTRAN90/95中一般不提倡使用,通過在程序變量說明之前加入:IMPLICITNONE語句來取消I-N規(guī)則。,IMPLICIT語句,功能:禁止I-N規(guī)則或重新定義I-N規(guī)則,例如:IMPLICITNONE!關(guān)閉默認(rèn)類型功能,所有變量都要事先聲明IMPLICITINTEGER(a,b,c)!a,b,c開頭的變量都認(rèn)為是整型IMPLICITREAL(m-p)!m到p開頭的變量都認(rèn)為是實型,注意:以上三種方法中,以類型顯式聲明語句最優(yōu)先,IMPLICIT語句次之,“I-N規(guī)則”的隱含約定級別最低。類型說明語句和IMPLICIT語句都是非執(zhí)行語句。類型說明只在本程序單位內(nèi)有效。IMPLICIT命令要置于PROGRAM命令的下一行,不能把它放在其他位置。,(7)變量的初始化直接把數(shù)值寫在聲明的變量后面。使用這個方法來設(shè)置初值時,不能省略定義語句中間的冒號。如:,在FORTRAN77中則使用DATA命令來設(shè)置初始值,如:,1.運算符號,2.5運算符與表達(dá)式,2.算術(shù)運算符及其表達(dá)式+(正號或加號)、-(負(fù)號或減號)、*(乘號)、/(除號)、*(乘方)。不同的運算符有優(yōu)先級次序。,例如:(a-b)/c*2+sin(x+y)。請注意:(1)由于用“/”號作為除號,因此在寫除法運算式子時應(yīng)加上必要的括號。(2)乘號不能省略,如asinx,必須寫成a*sin(x)。(3)FORTRAN中無大、中、小括號之分,一律用小括號。(4)乘方按“先右后左”原則處理。(5)對單項運算符(正號或負(fù)號)相當(dāng)于在它前面有一個運算量“0”,如:-a*2相當(dāng)于0-a*2,而不是(-a)*2。,算術(shù)表達(dá)式的求值運算的規(guī)則:(1)同類型的操作數(shù)之間運算的結(jié)果仍保持原類型。特別要注意:兩個整數(shù)相除的商也是整數(shù)。例如,5/2的值是2而不等于2.5,4*(-1)等于0,應(yīng)寫為5*(1./3.)而不是5*(1/3)。(2)如果參加運算的兩個操作數(shù)為不同類型,則編譯系統(tǒng)會自動將它們轉(zhuǎn)換成同一類型后進(jìn)行運算。轉(zhuǎn)換的規(guī)律是:將低級類型轉(zhuǎn)換成高級類型。類型的轉(zhuǎn)換時從左向右進(jìn)行的,在遇到不同類型的操作數(shù)時才進(jìn)行轉(zhuǎn)換。例如,1/2*1.0等于0,而1./2*1等于0.5。,算術(shù)操作數(shù)類型和級別,3.關(guān)系運算符及其表達(dá)式,格式為:表達(dá)式1關(guān)系運算符表達(dá)式2有以下幾點說明:(1)如果表達(dá)式1,表達(dá)式2都為算術(shù)表達(dá)式,則進(jìn)行關(guān)系運算前將其轉(zhuǎn)換成同一類型,轉(zhuǎn)換方法同算術(shù)表達(dá)式。(2)如果表達(dá)式1,表達(dá)式2都為字符表達(dá)式,則進(jìn)行關(guān)系運算前將其轉(zhuǎn)換成等長字符串,不足末尾補(bǔ)足空格。(3)復(fù)數(shù)的關(guān)系運算只有兩種:等于和不等于。(4)對算術(shù)表達(dá)式進(jìn)行關(guān)系運算,根據(jù)它們值的大小決定運算結(jié)果。(5)對字符表達(dá)式進(jìn)行關(guān)系運算,依次比較兩字符串相應(yīng)位置字符的ASCII碼值大小決定運算結(jié)果。,例如:1234!結(jié)果為.FALSE.(4+5*2).LE.10!結(jié)果為.FALSE.(4.2,7.3).NE.(7.3,4.2)!結(jié)果為.TRUE.MOD(4,2).EQ.0!4除以2的余數(shù)是否等于0。結(jié)果為.TURE.banana=apple!結(jié)果為.FALSE.Thisisapen.100例如,下面語句是非法語句。LOGICALflag1,flag2flag1=1.5!類型不一致flag2=china!類型不一致,(3)字符賦值語句賦值號左邊變量和右邊表達(dá)式類型均為字符型。例如:下面語句是合法語句。CHARACTER*7strstr=studentstr=Heisa/student例如:下面語句是非法語句。CHARACTER*7strstr=student+125!125是整數(shù)不能與字符串進(jìn)行加法運算str=125+3*20!右邊不能為算術(shù)運算表達(dá)式str=a100.AND.p!右邊不能為邏輯運算表達(dá)式,當(dāng)右邊表達(dá)式長度與左邊變量長度不同時:當(dāng)右邊表達(dá)式長度小于左邊變量長度,將表達(dá)式運算后的結(jié)果長度強(qiáng)制轉(zhuǎn)換為左邊變量長度,不足補(bǔ)空格,并將轉(zhuǎn)換后的字符串賦予左邊變量;當(dāng)右邊表達(dá)式長度大于左邊變量長度,將表達(dá)式運算后的結(jié)果左側(cè)部分賦予變量,多余截去。,例如:CHARACTER*5str1CHARACTER*3str2str1=isstr2=china執(zhí)行以上語句后,str1值是“is”,str2值是“chi”。,(4)DATA賦值語句DATA語句給數(shù)組賦初值的一般形式為:DATA變量列表/初值表/,變量列表/初值表,其中,初值表中只允許出現(xiàn)常量,不允許出現(xiàn)表達(dá)式。例如:DATAa,b,i/3.0,-3.1,8/,對DATA語句為變量賦初值,F(xiàn)ORTRAN作如下規(guī)定:在初值表中如果有幾個連續(xù)相同的變量可以簡寫為:n*常量。例如:DATAa,b,c,i,k/3*1.0,2*3/變量列表中的變量與初值表中的常量個數(shù)相同,類型一一對應(yīng)。例如:DATAa,b,c,d/3.0,2*2.0/,i/3.0/上面的賦值是錯誤的。,如果在一個程序單位中有多個DATA語句給同一個變量賦初值,則以最后一個DATA語句中所賦的初值為準(zhǔn)。例如,在一個程序單元中有以下DATA語句:DATAa,b,c,d/1.0,3.0,2*0.0/DATAx,y,c/4.0,2.0,7.5/其中變量c分別在兩個DATA語句中出現(xiàn),并且賦的值不同,結(jié)果c的值應(yīng)為7.5。,2.程序控制語句(1)PROGRAM語句FORTRAN允許編程人員為自己的程序定義一個名字,其語句格式是:PROGRAM程序名PROGRAM語句可以省略,如果不省略必須放在該程序塊的第一個語句位置。,(2)END語句END語句在FORTRAN中是可執(zhí)行語句,它有三個功能:作為一個程序塊的結(jié)束標(biāo)志。主程序中END語句表示整個程序的終止執(zhí)行語句。子程序中執(zhí)行END語句,作用與返回語句RETURN語句作用相同。每個程序單元必須有一個END語句在該程序單元的最后一行。,(3)STOP語句和PAUSE語句STOP語句:作為一個程序塊的結(jié)束標(biāo)志。STOP語句的一般形式為:STOPn其中,n為在執(zhí)行STOP語句時所輸出的信息。PAUSE語句:暫停語句,用于暫停程序的運行,但不結(jié)束程序的運行,當(dāng)需要從暫停處恢復(fù)運行時,按一個回車鍵即可。PAUSE語句的一般形式為:PAUSEn,常用的內(nèi)部函數(shù)如表所示:,2.7內(nèi)部函數(shù),下面舉例說明表中內(nèi)部函數(shù)的使用:,它是FORTRAN輸入、輸出中最簡單的一種方式,是按系統(tǒng)隱含的標(biāo)準(zhǔn)格式輸入輸出。(2)有格式輸入、輸出。它是按用戶規(guī)定的數(shù)據(jù)格式輸入、輸出。故也稱可控格式(或有格式)的輸入、輸出。(3)無格式的輸入、輸出。它是以二進(jìn)制形式輸入和輸出數(shù)據(jù),只適用于計算機(jī)內(nèi)存與磁盤、磁帶等之間的數(shù)據(jù)交換。,本節(jié)只講(1)表控輸入/出,(2-3)將在文件一章講解。,(1)表控格式輸入、輸出。,2.8輸入和輸出,1.表控輸入語句表控輸入不必指定輸入數(shù)據(jù)的格式,所以又稱為自由格式輸入,其一般形式為:READ*,輸入表其中,“*”號表示表控輸入;而輸入表(如不同類型的變量,中間用逗號分隔開)則用來控制數(shù)據(jù)的輸入,即要求輸入表和輸入的數(shù)據(jù)有嚴(yán)格的對應(yīng)關(guān)系。,例如:a,b為實型,m,n為整型READ*,a,b,m,n可以從鍵盤輸入以下數(shù)據(jù):3.7,-1.8,24,10(數(shù)據(jù)間用逗號分隔)或:3.7-1.82410(數(shù)據(jù)間用空格分隔)則a=3.7,b=-1.8,m=24,n=10。,在使用表控輸入語句時應(yīng)注意以下幾點:(1)應(yīng)保證從輸入設(shè)備上輸入數(shù)據(jù)的個數(shù)與READ語句輸入表中變量的個數(shù)相同,各數(shù)據(jù)類型與相應(yīng)變量的類型一致。(2)輸入數(shù)據(jù)可分為多行輸入,直到輸入全部數(shù)據(jù)。(3)輸入數(shù)據(jù)個數(shù)要求不少于輸入表中變量個數(shù)。如果少于變量個數(shù),則程序?qū)⒌却脩糨斎牒罄m(xù)數(shù)據(jù)。如果多于變量個數(shù),則多余的數(shù)據(jù)不起作用。,例如:上述READ語句執(zhí)行時輸入以下數(shù)據(jù):3.7,-1.8,24,10,75,34,2.4后3個數(shù)是無效的,將被忽略。READ語句讀取前4個數(shù)后,程序?qū)⒗^續(xù)執(zhí)行下一條語句。,在使用表控輸入語句時應(yīng)注意以下幾點:(4)使用多個READ語句時,每個READ語句都是從一個新的輸入行開始讀數(shù)的。例如:READ*,a,bREAD*,m,n如果輸入數(shù)據(jù)為:3.7,-1.8,24,10第一個READ語句讀入前兩個數(shù),即a=3.7,b=-1.8,而第二個READ語句并不會從這一輸入行剩余的數(shù)據(jù)中讀數(shù),所以m,n未被賦值。想要正確賦值,應(yīng)改為兩個輸入行:3.7,-1.824,10,在使用表控輸入語句時應(yīng)注意以下幾點:(5)輸入數(shù)據(jù)時,可以用符號斜杠“/”結(jié)束輸入,為被輸入數(shù)據(jù)的變量保持原值不變。例如:READ*,a,b,m,n輸入數(shù)據(jù)為:3.7,-1.8/,24,10執(zhí)行結(jié)果為a=3.7,b=-1.8,m,n均未被賦值。,在使用表控輸入語句時應(yīng)注意以下幾點:(6)如果READ語句中有幾個連續(xù)地變量要賦以相同的值,則可用重
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電梯智能化改造設(shè)計與施工合同4篇
- 2025年度個人二手車買賣合同車輛狀況鑒定服務(wù)合同
- 二零二五版門禁系統(tǒng)安全防護(hù)與應(yīng)急響應(yīng)合同4篇
- 2025年度個人住宅買賣合同書
- 2025年度個人買賣房屋交易稅費結(jié)算及支付合同3篇
- 2025年度廣告宣傳合同標(biāo)的媒體投放:1、客戶品牌宣傳4篇
- 2025年度個人對個人車輛抵押貸款服務(wù)合同范本
- 二零二五版鎳氫電池產(chǎn)品研發(fā)風(fēng)險投資合同4篇
- 2025年度泥漿運輸與環(huán)保監(jiān)測一體化服務(wù)合同4篇
- 2025年度促銷員產(chǎn)品體驗活動策劃合同3篇
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實踐路徑
- 廣東省湛江市廉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2024年湖北省知名中小學(xué)教聯(lián)體聯(lián)盟中考語文一模試卷
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- 燃?xì)庑袠I(yè)有限空間作業(yè)安全管理制度
- 氣胸病人的護(hù)理幻燈片
- 《地下建筑結(jié)構(gòu)》第二版(朱合華)中文(2)課件
- JB T 7946.1-2017鑄造鋁合金金相
- 包裝過程質(zhì)量控制
- 通用電子嘉賓禮薄
評論
0/150
提交評論