版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Fortran 95 程序設(shè)計程序設(shè)計第三章第三章 輸入輸出及聲明輸入輸出及聲明程序結(jié)構(gòu)程序結(jié)構(gòu) 程序開始程序開始 PROGRAM MAIN MAIN是自定義名稱是自定義名稱 .主程序代碼主程序代碼 WRITE(*,*) “HELLO” 程序終止程序終止 STOP 此行可省略此行可省略主程序代碼結(jié)束主程序代碼結(jié)束 END END ( FORTRAN 77) END PROGRAM END PROGRAM MAIN 4.1 簡單的輸出簡單的輸出: WRITE命令命令Write(*,*) “就這么簡單就這么簡單“Write(unit=*, fmt=*) “就這么簡單就這么簡單“ ! 完整寫法完整寫
2、法Write(6, *) “string” !嚴謹一些的寫法!嚴謹一些的寫法Write(unit=6, fmt=*) “STRING” !最嚴謹?shù)膶懛ㄗ顕乐數(shù)膶懛╓RITE(*,*) “HELLO”, “FRIENDS!”WRITE(*,*) “MY NAME IS “”PETER”.”WRITE(*,*) Thats right 注意:注意:1)每執(zhí)行完一個write命令后,會自動換行2)Fortran 77只能使用單引號封裝的字符串3)引號封裝的字符串中含有同類的引號要連用才能輸出 PRINT命令命令 print *, “hello”比比write少了一個少了一個*號,只能在屏幕輸出號,只
3、能在屏幕輸出 3-2 聲明聲明:在程序代碼中,向編譯器要求預(yù)留存放數(shù)據(jù)(變量和常量)的內(nèi)存空間變量、常量的命名原則名稱以使用英文字母為原則,可以內(nèi)含下劃線或數(shù)字,名稱以使用英文字母為原則,可以內(nèi)含下劃線或數(shù)字,但是前綴必須是英文字母但是前綴必須是英文字母名稱的長度,在名稱的長度,在77標準中至少支持標準中至少支持6個字符長,個字符長,90標準中標準中至少支持至少支持31個字符長。個字符長。變量名最好不要和變量名最好不要和Fortran的執(zhí)行命令同名,也不能和主的執(zhí)行命令同名,也不能和主程序的名稱或是前面聲明過的變量同名。程序的名稱或是前面聲明過的變量同名。程序中辨認變量時,不會區(qū)分它的大小寫程
4、序中辨認變量時,不會區(qū)分它的大小寫。例:例:x1, va_2, 3p, program, print 主程序名為主程序名為PX 中的變量名不能有中的變量名不能有PX或或px 3-2-1 整數(shù)類型的聲明賦值語句賦值語句,數(shù)值或數(shù)數(shù)值或數(shù)學(xué)表達式學(xué)表達式聲明數(shù)據(jù)類型聲明數(shù)據(jù)類型變量名稱變量名稱輸出變量值輸出變量值整型變量的聲明形式:整型變量的聲明形式:長整型(長整型(4個字節(jié))個字節(jié)) Integer(kind=4) a !fortran 90 添加添加 integer*4 a !fortran 77 傳統(tǒng)作法傳統(tǒng)作法 integer(4) a !fortran 77 傳統(tǒng)作法傳統(tǒng)作法短整型(短整
5、型(2個字節(jié))個字節(jié)) Integer(kind=2) a !fortran 90 添加添加 integer*2 a !fortran 77 傳統(tǒng)作法傳統(tǒng)作法 integer(2) a !fortran 77 傳統(tǒng)作法傳統(tǒng)作法未聲明長度的未聲明長度的變量變量,通常,通常編譯器默認為長整型編譯器默認為長整型;有的編譯器支持;有的編譯器支持1 byte的的整數(shù)變量。整數(shù)變量。另外的形式:另外的形式:integer a, b, cinteger: a, b=3 !聲明語句中賦初值聲明語句中賦初值 注意:整型變量只保存整數(shù),實數(shù)的小數(shù)注意:整型變量只保存整數(shù),實數(shù)的小數(shù)點后數(shù)據(jù)會自動省略點后數(shù)據(jù)會自動
6、省略變量名的隱含約定變量名的隱含約定 Fortran標準規(guī)定:標準規(guī)定:凡是以字母I, J, K, L, M, N六個字母開頭的變量,未經(jīng)聲明默認為整型,其他字母開頭的變量為實型。 未經(jīng)聲明的變量未經(jīng)聲明的變量 IMAX=6.6 IMAX=6 變量類型聲明后,隱含約定不作用,但是聲明僅在本程序單元內(nèi)有效。即變量聲明具有局域性(局部變量或全局變量) 3-2-2 實數(shù)(浮點數(shù) real) 聲明形式:聲明形式:Real a !默認單精度(默認單精度(4 bytes) 單精度: real(kind=4) a !fortran 90 添加添加 real*4 a !fortran 77舊有舊有 real(
7、4) a !fortran 77舊有舊有雙精度: real(kind=8) a !fortran 90 添加添加 real*8 a !fortran 77舊有舊有 real(8) a !fortran 77舊有舊有算式科學(xué)計數(shù)法表示科學(xué)計數(shù)法表示106, 0.1單精度的有效位數(shù)為單精度的有效位數(shù)為67位位雙精度有效位數(shù)雙精度有效位數(shù)15位位三角函數(shù)中三角函數(shù)中使用的角度為弧度,使用的角度為弧度,如果是變量必需是實型,不能是整型如果是變量必需是實型,不能是整型完整的數(shù)學(xué)函數(shù)完整的數(shù)學(xué)函數(shù)說明參見附錄說明參見附錄A注意輸入?yún)?shù)的注意輸入?yún)?shù)的類型要求及輸出類型要求及輸出的數(shù)據(jù)類型的數(shù)據(jù)類型 3-2
8、-3 復(fù)數(shù)(COMPLEX) 復(fù)數(shù)由實部和虛部組成,為浮點數(shù)保存Complex a !默認單精度默認單精度Complex(kind=4) a !單精度,單精度, fortran90添加添加Complex(kind=8) a !雙精度,雙精度, fortran90添加添加Complex*4 a !單精度,單精度,fortran 77舊有舊有Complex(4) a !單精度,單精度,fortran 77舊有舊有Complex*8 a !雙精度,雙精度,fortran 77舊有舊有Complex(8) a !雙精度,雙精度,fortran 77舊有舊有復(fù)數(shù)變量的賦值:復(fù)數(shù)變量的賦值: a=(x,y
9、) !a=x+yi 3-2-4字符及字符串(character) 字符類型是用來保存一個字符或一長串字符符所組成的字符類型是用來保存一個字符或一長串字符符所組成的“字字符串符串”時所使用的類型,每個字符占用一個字節(jié)。時所使用的類型,每個字符占用一個字節(jié)。Character a !單個字符單個字符Character(len=10) b !fortran 90 添加添加Character(10) c !fortran 77 舊有舊有Character*10 d !fortran 77 舊有舊有Character*(10) e !fortran 77 舊有舊有字符和字符串變量賦值:單引號或雙引號封裝
10、,內(nèi)裝內(nèi)容屬于數(shù)據(jù),區(qū)分英語字母的大小寫字符變量的操作:字符變量的操作:局部操作局部操作(起始位置:終止位置)(起始位置:終止位置)字符變量的操作:字符變量的操作:兩個字符串連接兩個字符串連接 /注意字符串的長度注意字符串的長度部分常用字符串函數(shù)部分常用字符串函數(shù) 3-2-5 邏輯變量(邏輯變量(logical) 聲明(通常占用空間大小由編譯器選擇):聲明(通常占用空間大小由編譯器選擇): LOGICAL a 賦值:賦值: a=.true. b=.false. !注意前后分別要注意前后分別要加一個點加一個點顯示 3-3 輸入命令輸入命令 (read) 從鍵盤或文件讀入數(shù)據(jù)給變量從鍵盤或文件讀入
11、數(shù)據(jù)給變量 形式形式: read(*,*) a read(unit=5, fmt=*) a !最嚴謹?shù)膶懛ㄗ顕乐數(shù)膶懛?read(unit=5, *) a !鍵盤為默認的輸入設(shè)備,輸入號為鍵盤為默認的輸入設(shè)備,輸入號為5 read(*,*) a, b, c !多個變量值同時輸入多個變量值同時輸入數(shù)據(jù)輸入注意事項:數(shù)據(jù)輸入注意事項:1)輸入的數(shù)據(jù)要與對應(yīng)的變量的類型相一致)輸入的數(shù)據(jù)要與對應(yīng)的變量的類型相一致2) 多個數(shù)據(jù)同時輸入可以逗號或空格(一個或多多個數(shù)據(jù)同時輸入可以逗號或空格(一個或多個),或者回車鍵,來間隔數(shù)據(jù)個),或者回車鍵,來間隔數(shù)據(jù)3)如果輸入數(shù)據(jù)數(shù)目不足,計算機會等待直到完成;
12、如果輸入數(shù)據(jù)數(shù)目不足,計算機會等待直到完成;如果數(shù)據(jù)量超過,多余的數(shù)據(jù)不起作用如果數(shù)據(jù)量超過,多余的數(shù)據(jù)不起作用4)每個)每個read語句都是從新的輸入行開始讀語句都是從新的輸入行開始讀5)如果輸入數(shù)據(jù)行中出現(xiàn))如果輸入數(shù)據(jù)行中出現(xiàn)“/”符號,表示輸入終止符號,表示輸入終止 3-4 格式化輸入輸出(格式化輸入輸出(FORMAT) 格式化輸出的目的:把數(shù)據(jù)按照一定的格式來顯格式化輸出的目的:把數(shù)據(jù)按照一定的格式來顯示示 某些讀取數(shù)據(jù)的情況,要恰當?shù)脑O(shè)置輸入格式才某些讀取數(shù)據(jù)的情況,要恰當?shù)脑O(shè)置輸入格式才能得到正確的數(shù)據(jù)能得到正確的數(shù)據(jù) 設(shè)置格式采用設(shè)置格式采用FORMAT命令命令 3-4-1 格
13、式化輸出概論格式化輸出概論形式:形式:Integer aWrite(*, 100) a format(I4) !此行可放在程序的任意位置此行可放在程序的任意位置Write(*, “(I4)”) a行號行號格式,第二種形式中格式,第二種形式中用雙引號或單引號封用雙引號或單引號封裝裝第二種形式的優(yōu)缺點第二種形式的優(yōu)缺點 優(yōu)點:優(yōu)點:1)減少程序的行數(shù))減少程序的行數(shù)2)輸出格式和)輸出格式和write在一起,閱讀較清楚在一起,閱讀較清楚3)可以避免在程序代碼中寫行號)可以避免在程序代碼中寫行號缺點:缺點:1)格式復(fù)雜時,編寫很長)格式復(fù)雜時,編寫很長2)在不同的輸出語句使用相同格式時,程序代碼重)
14、在不同的輸出語句使用相同格式時,程序代碼重復(fù)復(fù) 3-4-2 詳論格式化輸出詳論格式化輸出 最常用的格式控制字符最常用的格式控制字符“I, F, E, A, X”Iw.m 整數(shù)的輸出格式,總共占整數(shù)的輸出格式,總共占w個字符寬度,至少有個字符寬度,至少有m個數(shù)字個數(shù)字Write(*, “(I5)”) 100 100Write(*, “(I3)”) 10000 *Write(*, “(I5.3)”) 10 010Fw.d 浮點數(shù)輸出浮點數(shù)輸出,總共占總共占w個字符寬度,小數(shù)部分占個字符寬度,小數(shù)部分占m個字符寬個字符寬Write(*,”(F9.3)”) 124.45 124.450 Ew.dEe
15、科學(xué)計數(shù)法輸出浮點數(shù),總寬度科學(xué)計數(shù)法輸出浮點數(shù),總寬度w個字符,小數(shù)部分占個字符,小數(shù)部分占d個,個, 指數(shù)部分至少輸出指數(shù)部分至少輸出e個數(shù)字個數(shù)字Write(*, “(E15.7)”) 124.45 0.1234500E+03Write(*, “(E9.2E3)”) 12.34 0.12E+002Dw.d 與與Ew.d用法同,只是用法同,只是E換成換成DWrite(*, “(D9.2)”) 12.34 0.12D+02Aw 以以w個字符寬度來輸出字符串個字符寬度來輸出字符串Write(*, “(A10)”) “Hello” HelloWrite(*, “(A10)”) a !和聲明長度有
16、關(guān)和聲明長度有關(guān) HelloWrite(*, “(A3”) “Hello” HelnX 輸出位置向右移輸出位置向右移n位位Write(*, “(5X, I3)”) 100 100Lw 以以w個字符寬輸出個字符寬輸出T或或FWrite(*, “(L4)”) .true. T 3-4-2 詳論格式化輸出詳論格式化輸出 3-4-2 詳論格式化輸出詳論格式化輸出/ 換行輸出換行輸出 write(*, “(I3/I3)” 10, 10 10 10Tc 把輸出的位置移動到本行的第把輸出的位置移動到本行的第c個字節(jié)處個字節(jié)處Write(*,”(T3, I3)”) 100 100Write(*, “(10X,
17、 T3, I3)”) 100 100An 輸出輸出n個字符個字符write(*, “(A4, I3)”) ANS=, 10 !輸出字符不足前面以空格添加,超過則舍棄輸出字符不足前面以空格添加,超過則舍棄Write(*, 100) 10 !可以在!可以在format里直接寫出里直接寫出FORMAT(ANS=, I3) ANS= 10WRITE(*, “(ANS=, I3) ”) 10 !用雙引號封裝的用雙引號封裝的format, 字符串用單引號字符串用單引號 ! 反之亦然反之亦然輸出格式的寫法技巧及注意事項輸出格式的寫法技巧及注意事項 一個輸出語句中的重復(fù)格式一個輸出語句中的重復(fù)格式 n(fmt
18、) WRITE(*, “( 3(1XF5.2) )”) A, B, C 將輸出格式存儲在字符變量中將輸出格式存儲在字符變量中 格式設(shè)置要與輸出數(shù)據(jù)的類型對應(yīng)格式設(shè)置要與輸出數(shù)據(jù)的類型對應(yīng) 3-4-2 詳論格式化輸出詳論格式化輸出 格式化輸出格式化輸出print 與與write類似,只是不能只定輸出位置類似,只是不能只定輸出位置Print 100, a !使用行代碼使用行代碼100的的format語句來輸出語句來輸出print “(A10)”, “Hello” !直接把格式字符串寫在直接把格式字符串寫在print中中 格式也用在輸入語句(格式也用在輸入語句(read)中中特別是:特別是:1)輸入
19、內(nèi)容包含空格、逗號或)輸入內(nèi)容包含空格、逗號或/號號 2)從文件讀入數(shù)據(jù))從文件讀入數(shù)據(jù) 3-5 聲明的其他事項聲明的其他事項 IMPLICIT 命令改變命令改變Fortran標準默認類型標準默認類型 FORTRAN中的變量可以不必聲明直接使用,第一個字母為中的變量可以不必聲明直接使用,第一個字母為I, J, K, L, M, N的被視為整型,其他視為浮點數(shù)的被視為整型,其他視為浮點數(shù)IMPLICIT NONE!加在所有聲明語句之前,則所有變量都必須聲明再用!加在所有聲明語句之前,則所有變量都必須聲明再用IMPLICIT 類型類型(字母)字母)Implicit integer(a, b, c)
20、 !a, b,c開始的變量都為整型開始的變量都為整型Implicit integer(a-f, i) ! a-f, i開始的變量都為整型開始的變量都為整型Implicit real(m-p) ! M-p開始的變量都為浮點數(shù)開始的變量都為浮點數(shù) IMPLICIT命令必須接在命令必須接在program命令的下一行,其他語句之前命令的下一行,其他語句之前 3-5 聲明的其他事項聲明的其他事項 常數(shù)的聲明方法(常數(shù)的聲明方法(PARAMETER)1) 常用的參數(shù)設(shè)為常數(shù)參量,在程序中不能被改變,常用的參數(shù)設(shè)為常數(shù)參量,在程序中不能被改變,避免錯誤避免錯誤2)把不變的數(shù)據(jù)設(shè)為常數(shù),可以增加執(zhí)行速度)把不
21、變的數(shù)據(jù)設(shè)為常數(shù),可以增加執(zhí)行速度 Real, parameter: pi=4.14159 !雙冒號不能省略雙冒號不能省略形容詞形容詞 3-5 聲明的其他事項聲明的其他事項 設(shè)置變量的初值設(shè)置變量的初值Fortran 90可在聲明變量類型時,可在聲明變量類型時,fortran 77用用DATA語句語句 3-5 聲明的其他事項聲明的其他事項 DATA語句在聲明語句之后,語句中在變量名之后語句在聲明語句之后,語句中在變量名之后用兩個斜杠包羅數(shù)值,數(shù)值之間以逗號相隔,并用兩個斜杠包羅數(shù)值,數(shù)值之間以逗號相隔,并與變量名一一對應(yīng)與變量名一一對應(yīng) 3-5 聲明的其他事項聲明的其他事項 聲明在程序中的結(jié)構(gòu)
22、聲明在程序中的結(jié)構(gòu)聲明應(yīng)放在所有可執(zhí)行語句之前,聲明應(yīng)放在所有可執(zhí)行語句之前,Data命令屬于聲命令屬于聲明的一部分;聲明不被視為可執(zhí)行語句。明的一部分;聲明不被視為可執(zhí)行語句。Program mainImplicit noneInteger aReal b, c, dData c,d /2.3, 4.5/Read (*,*) a從program或是impicit后面開始聲明變量聲明要在執(zhí)行語句之前結(jié)束,此后不能再聲明變量 3-6 混合運算混合運算類型不完全相同的數(shù)值或變量之間的運算,如整數(shù)與浮點數(shù)類型不完全相同的數(shù)值或變量之間的運算,如整數(shù)與浮點數(shù)1)同類型的數(shù)值間的運算結(jié)果仍保持原類型同類
23、型的數(shù)值間的運算結(jié)果仍保持原類型 1/2 0 ; 1.0/2.0 0.52) 不同類型的數(shù)值間的運算,低級類型轉(zhuǎn)成高級類型不同類型的數(shù)值間的運算,低級類型轉(zhuǎn)成高級類型 1.0/2 0.5 整型整型浮點數(shù)浮點數(shù)3)類型轉(zhuǎn)換由左向右類型轉(zhuǎn)換由左向右 1/4 *2.0 0.04) 可用庫函數(shù)可用庫函數(shù) INT(R) 和和 REAL(I)改變數(shù)值類型改變數(shù)值類型 integer I=2 write(*,*) sin(real(i) 3-7 Fortran 90 的自定義數(shù)據(jù)類型自定義類型:用自定義類型:用type 命令創(chuàng)造命令創(chuàng)造 組合型數(shù)據(jù)組合型數(shù)據(jù)賦值可以整體設(shè)置 :a=person(“Peter
24、”, 18, 180, 80, “Hefei, Anhui”)依順序依順序 name age height weight address 3-8 KIND的使用的使用聲明中聲明中KIND用來為變量向計算機申請內(nèi)存字節(jié)空間用來為變量向計算機申請內(nèi)存字節(jié)空間PC的編譯器中,各類變量所保存的值域范圍如下:的編譯器中,各類變量所保存的值域范圍如下:Integer(kind=1) -128127Integer(kind=2) -3276832767Integer(kind=4) -2147483648 2147483647Real(kind=4) 1.18*10-38 4.40*1038Real(kin
25、d=8) 2.23*10-308 1.79*10308FORTRAN 90有關(guān)有關(guān)kind的庫函數(shù),可以增加程序代的庫函數(shù),可以增加程序代碼的跨平臺能力碼的跨平臺能力 3-8 KIND的使用的使用SELECTED_INT_KIND(n)返回對應(yīng)于記錄返回對應(yīng)于記錄n位整數(shù)所需聲明的位整數(shù)所需聲明的kind值。超出值域,值。超出值域, 返回返回1。SELECTED_REAL_KIND(n, e)返回對應(yīng)于記錄返回對應(yīng)于記錄n位有效位數(shù)、指數(shù)達到位有效位數(shù)、指數(shù)達到e位的浮點數(shù)說需要的位的浮點數(shù)說需要的kind值。有值。有效位數(shù)無法滿足,返回效位數(shù)無法滿足,返回-1;指數(shù)范圍無法滿足,返回指數(shù)范圍
26、無法滿足,返回2;都無法滿足,;都無法滿足,返回返回-4. 在不同的機器或編譯器上,保存同樣有效位數(shù)的數(shù)值,所在不同的機器或編譯器上,保存同樣有效位數(shù)的數(shù)值,所使用的使用的kind值不一定相同;不同機型(值不一定相同;不同機型(PC或工作站)所能或工作站)所能保存的值域也可能不同。保存的值域也可能不同。 查詢出各種數(shù)值的范圍所需的查詢出各種數(shù)值的范圍所需的kind值,可以有效地使用內(nèi)值,可以有效地使用內(nèi)存空間存空間;保證程序代碼的通用性保證程序代碼的通用性 3-8 KIND的使用的使用1. 下面哪些為有效的變量名或程序名?下面哪些為有效的變量名或程序名?Name address phone_# real main 4.1Iou iou_2 4gotten packet for/22. 判斷下列輸入、輸出語句是否正確,如果不正確,請說明判斷下列輸入、輸出語句是否正確,如果不正
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋結(jié)構(gòu)加固施工方案
- 施工材料采購及管理方案
- 裝修風(fēng)格搭配與建議方案
- 2026年心理醫(yī)生專業(yè)資格認證考試指南
- 2026年環(huán)保型太陽能系統(tǒng)操作與維護題庫
- 2026年電子商務(wù)物流與供應(yīng)鏈管理題庫
- 2026年教育心理學(xué)測試題集學(xué)員資料
- 2026年環(huán)境科學(xué)與保護專業(yè)試題庫環(huán)境監(jiān)測與治理
- 2026年社交媒體營銷與傳播專家題集
- 廚房管理知識電子課件
- 四川省成都市邛崍市2024-2025學(xué)年九年級上學(xué)期期末化學(xué)試題(含答案)
- GB/T 44819-2024煤層自然發(fā)火標志氣體及臨界值確定方法
- 《風(fēng)力發(fā)電廠調(diào)試規(guī)程》
- 搞笑小品劇本《我的健康誰做主》臺詞完整版-宋小寶徐崢
- 正大天虹方矩管鍍鋅方矩管材質(zhì)書
- 兔子解剖實驗報告
- 雙減背景下家校共育的問題及策略
- 建設(shè)工程第三方質(zhì)量安全巡查標準
- 管理養(yǎng)老機構(gòu) 養(yǎng)老機構(gòu)的服務(wù)提供與管理
- 飯店轉(zhuǎn)讓協(xié)議合同
- 營建的文明:中國傳統(tǒng)文化與傳統(tǒng)建筑(修訂版)
評論
0/150
提交評論