版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、文檔可能無法思考全面,請瀏覽后下載! 7.3 格式輸出 格式輸出語句由兩部分組成:輸出語句和輸出格式語句。輸出語句的一般形式為: WRITE(*,L) 輸出表列 或: PRINT L 輸出表列其中:* 代表隱含的輸出設備,L 指輸出格式語句的標號。 輸出格式語句的一般形式:L FORMAT(1X,S)其中:L 輸出格式語句的標號,1X 縱向走紙符,S 輸出格式,用不同的“格式編輯符”(簡稱“編輯符”)來實現(xiàn)指定的輸出格式,各格式間用逗號相隔。 FORMAT語句又叫“格式語句”,是一個非執(zhí)行語句,本身不產(chǎn)生任何操作,只是提供輸入或輸出的格式。FORMAT語句可以出現(xiàn)在程序的任何地方(但必須在PR
2、OGRAM語句之后和END語句之前,如果在子程序中用FORMAT語句,則應在子程序定義語句之后)。系統(tǒng)按WRITE語句或PRINT語句中指定的語句標號找到相應的FORMAT語句,并按FORMAT語句所規(guī)定的格式對數(shù)據(jù)進行輸出。注意,PRINT語句中不能再用“*”,PRINT語句中的第一個標識符是語句標號而不是要打印輸出的數(shù)據(jù)。輸出格式分兩類 基本格式 7.3.1 I格式(又叫整數(shù)格式) 一般形式:Iw 或:Iw.m其中:w 一個數(shù)據(jù)占的位數(shù)寬度(又稱“字段寬度”),m 需要輸出的最少數(shù)字位數(shù)。例1: WRITE (*,100)M,N 100 FORMAT(1X,I4,I4)如果M=40,N=-
3、12,則輸出如下:40 -12 例2: WRITE (* , 100) I,J,K 100 FORMAT(1X,I5.3,I6.3,I4)若 I=1234, J=-24, K=24689 則輸出為:8 / 91234 -24 * (1)數(shù)字在指定的區(qū)域內向右端靠齊,如果數(shù)字位數(shù)比指定的字段寬度w小,則左邊補以空格。負數(shù)的符號也包含在字段寬度內。 (2)如果數(shù)字的位數(shù)超過了規(guī)定的字段寬度w,則不輸出有效數(shù)據(jù),而在該字段寬度范圍內充滿“*”符號。 (3)如果數(shù)字的位數(shù)超過了m,則按實際應輸出的位數(shù)輸出(但條件是不能超過w)。m不包括負號所占的一列。7.3.2 F格式(又叫小數(shù)型格式) 一般形式:F
4、w.dw 各數(shù)值占的總位數(shù) d 輸出數(shù)據(jù)的小數(shù)位數(shù)(小數(shù)點后的位數(shù))。 例1: WRITE(*,100)A,B,C100 FORMAT(1X,F10.2,F9.3,F8.4)若 A=1234.56, B=3456.78,C=234.56789 則輸出:1234.56 3456.780 234.5679 例2: WRITE (* , 100) X,Y100 FORMAT(1X,F10.4,F10.2)若 X=24680135.7, Y=0.0012345, 則輸出為:* .00 (1)數(shù)字在指定的區(qū)域內向右端靠齊,如果數(shù)字位數(shù)(含小數(shù)點和符號位)比指定的字段寬度w小,則左邊補以空格;如果數(shù)字的位
5、數(shù)超過了規(guī)定的字段寬度w,則不輸出有效數(shù)據(jù),而在該字段寬度范圍內充滿“*”符號。 (2)如果數(shù)據(jù)的小數(shù)位數(shù)比指定的小數(shù)位數(shù)d小,則在小數(shù)右邊補0以湊足d位;如果小數(shù)位數(shù)大于d位,則輸出時多于的小數(shù)位數(shù)按“四舍五入”規(guī)則舍去。 (3)假設b為數(shù)據(jù)整數(shù)部分的位數(shù),則應使wb+d+1(小數(shù)點占一列),如果輸出負數(shù),則應保證wb+d+2(小數(shù)點和負號各占一列)。 (4)用F格式輸出時應注意,由于難以事先確切估計出數(shù)據(jù)的大小,輸出大的數(shù)時容易產(chǎn)生“寬度不夠”的錯誤(由于w不夠大),輸出小的數(shù)時會出現(xiàn)丟掉有用數(shù)字的情況(由于d不夠大而將后面的數(shù)字截去),這就是“大數(shù)印錯,小數(shù)印丟”。7.3.3 E格式(又
6、叫指數(shù)型格式) 一般形式:w.dw 各數(shù)值占的總位數(shù),d 輸出數(shù)據(jù)的小數(shù)位數(shù)(小數(shù)點后的位數(shù))。例1: WRITE (*,100)X,Y 100 FORMAT(1X,E12.4, E12.5 )如:X=3.17 Y=1234.56 則輸出結果為:0.3170E+01 0.12346E+04。 (1)采取標準化的指數(shù)形式輸出一個實數(shù),d為以指數(shù)形式出現(xiàn)的數(shù)據(jù)的數(shù)字部分的小數(shù)位數(shù)。 (2)指數(shù)部分一般占4列,其中字母“E”和指數(shù)的符號各占一列,指數(shù)2列。 小數(shù)部分d列,再加上一個小數(shù)點和小數(shù)點前的一個“0”,因此要保證wd+6,輸出負數(shù)時,wd+7。 (3)有的計算機系統(tǒng)允許有較大的實數(shù)范圍,F(xiàn)O
7、RTRAN77提供了一種擴充的編輯符, 可以輸出三位或四位指數(shù)。這種編輯符的形式為:Ew.dEe,用e指定指數(shù)的位數(shù)。有的計算機系統(tǒng)的FORTRAN編譯系統(tǒng)已根據(jù)其允許的實數(shù)范圍,自動將指數(shù)的位數(shù)改為3位或4位,不必在RORMAT語句中用Ew.dEe編輯符單獨為某些數(shù)據(jù)指定所需的指數(shù)位數(shù),只需寫Ew.d形式即可,輸出時系統(tǒng)會給出三位(或四位)指數(shù)。7.3.4 G格式 G格式可以根據(jù)輸出的實數(shù)大小決定用小數(shù)形式(F格式)輸出或指數(shù)形式(E格式)輸出。當輸出大數(shù)值或小數(shù)值時自動按E格式,當輸出的數(shù)不大不小時用F格式。其一般形式為:Gw.d (1)凡絕對值小于0.1的數(shù)或絕對值大于10d的數(shù)用E格式
8、輸出;其余的數(shù)用F格式輸出。 (2)用E格式輸出時,最后4列為指數(shù)部分,而用F格式輸出時最后4列留空。 (3)用指數(shù)形式輸出時,格式同Ew.d;用F格式輸出時,不是按Fw.d形式輸出,d規(guī)定的不是小數(shù)位數(shù)而是打印出來的全部數(shù)字的位數(shù),小數(shù)位數(shù)根據(jù)數(shù)值大小和d的大小而定,這樣做的目的是使數(shù)的整數(shù)部分能全部保留,而適當截去小數(shù)部分,以保證輸出數(shù)值的正確性。因為小于10d的數(shù),其整數(shù)部分最多為d位,因此,可以全部輸出這d位整數(shù),小數(shù)的位數(shù)為:d-(數(shù)值整數(shù)位數(shù))。7.3.5 D格式 一般形式:Dw.a用于雙精度數(shù)據(jù)的輸出,使用方法與E格式相仿,只是把字母“E”換成“D”。7.3.6L格式 一般形式:
9、Lw用于邏輯型數(shù)據(jù)的輸出,w 輸出數(shù)據(jù)的字段寬度。邏輯值“.TRUE.,在輸出時打印一個字母T;邏輯值.FLASE.,在輸出時打印一個字母F。T和F打印在字段范圍內的最右端。7.3.7 A格式 一般形式:Aw 或:A用于字符型數(shù)據(jù)的輸出,w為字段寬度,不指定w時(即形式:A),按字符變量的實際長度(即程序定義該變量時的長度)輸出。 字符串在指定的區(qū)域內向右端靠齊,如果字符串的位數(shù)比指定的字段寬度w小,則左邊補以空格;如果字符串的位數(shù)超過了規(guī)定的字段寬度w,則只輸出最左面的w個字符。7.3.8 (撇號)格式 用來插入所需的字符串,例如: WRITE(*,100) I,J100 FORMAT(1X
10、,I=,I3,J=,I4)如果I=123,J=2347,則輸出:I=123J=2347 如果需要輸出的字符包括撇號,則用兩個連續(xù)的撇號代表一個被輸出的撇號字符。例如: CHARACTER *10 STUD READ * STUD WRITE(*,10) STUD10 FORMAT(1X,A,IS LIS STUDENT.) END如果輸入給STUD的值為ZHANG SUN,則輸出為:ZHANG SUN IS LIS STUDENT.7.3.9 H格式 一般形式:nH 用來輸出字符常量,與撇號格式相似。n為字符串中字符的個數(shù)。如上面的例子(I=123,J=2347),可改寫為: WRITE(*,
11、100) I,J100 FORMAT(1X,2HI=,I3,2HJ=,I4)則輸出與上例相同:I=123J=2347 可以單獨用撇號格式或H格式輸出字符串而不必要求WRITE語句中有相應的輸出項。如: WRITE(*,100) 100 FORMAT(1X,ZHANG SUN IS LIS STUDENT.)或:100 FORMAT(1X,26HZHANG SUN IS LIS STUDENT.) 用H格式必須準確地數(shù)出字符串中的字符個數(shù),數(shù)錯了就會造成錯誤。所以最好不用H編輯符而用撇號編輯符,后者不必數(shù)字符,使用方便,字符串界線清楚無誤。FORTRAN 77之所以保留H編輯符主要是為了與FOR
12、TRAN 66兼容(FORTRAN 66只能用H編輯符輸出字符串而沒有撇號編輯符)。7.3.10 X格式 一般形式:nX用于輸出空格,n 輸出的空格數(shù)目。即插入n個空格,或者說,使打印的“當前位置”向右移動n列。例: WRITE(*,100)I,A,B100 FORMAT(1X,I3,2X,F(xiàn)6.2,2X,E11.5)當I=146,A=124.32,B=1247.32時,輸出為:146 124.32 0.12473E+04如果不用X格式插入空格,數(shù)據(jù)將連成一片,難以區(qū)分開。 注意:不要把2X作為與A對應的格式符,WRITE語句中的I,A,B分別與FORMAT語句中的I3,F(xiàn)6.2和E11.5格
13、式符對應。X格式符不能用來提供整數(shù)、實數(shù)、以及其它類型數(shù)據(jù)的輸出格式,它只能插入若干個空格。 FORTRAN 77還允許n是負整數(shù),表示從當前位置向左移動n的絕對值列。微機上使用的FORTRAN子集不能使用n為負值的格式符。7.3.11 /(斜杠)格式 斜杠(/)編輯符的作用是:結束本記錄的輸出并開始下一個記錄的輸出。例如: WRITE(*,100)I,A,J,B100 FORMAT(1X,I3,F6.1/1X,I3,F6.1)若I=246,A=12.36,J=35,B=173.5,輸出結果為:246 12.4 35 173.5 一個WRITE語句輸出打印了二行信息,這是由于FORMAT語句中
14、有一斜杠,使之產(chǎn)生兩個輸出記錄(注意,斜杠之后也有一個“1X”,使第二個記錄的第一個字符為“空格”,作為縱向走紙符)。 如果有兩個連續(xù)的斜杠,如:100 FORMAT(1X,I3,F6.1/1X,I3,F6.1)輸出完第一行后,空一行,再輸出第二行。即:246 12.4(空一行) 35 173.5 如果在編輯符的最后出現(xiàn)斜杠,如:100 FORMAT(1X,I3,F6.1/1X,I3,F6.1/)輸出完第二個記錄后,再輸出一個空行。即:246 12.4 35 173.5(空一行) 7.3.12 重復系數(shù) 重復使用的編輯符可以在其前加一個重復系數(shù),其形式為:rIw,rFw.d,rEw.d,rGw
15、.d,rAw,rLw等,r為重復系數(shù)。以下兩個FORMAT語句等價:100 FORMAT(1X,I3,I3,F10.2,F10.2,F10.2)100 FORMAT(1X,2I3,3F10.2) 如果有以下FORMAT語句:150 FORMAT(1X,I4,2X,F10.2,2X,I4,2X,F10.2,2X)其中下劃線的二組編輯符是相同的,可以只寫一次而用重復系數(shù)使之重復使用:150 FORMAT(1X,2(I4,2X,F10.2,2X)7.3.13 縱向走紙控制 FORTRAN規(guī)定的走紙控制符如下表:縱向走紙控制符打印前縱向走紙控制空格走紙一行(即正常換行)0走紙二行(即一行隔一行)1換頁
16、+不走紙(不換行)從本行開頭重新疊打其它字符大多數(shù)系統(tǒng)按走紙一行處理 如果需要本行的輸出是換一行從頭開始打印的話,就應該在本行的開頭設置一個空格?!?X”的本來意義是產(chǎn)生一個空格,但按規(guī)定,將輸出記錄的第一個字符作為縱向走紙控制之用,它產(chǎn)生的動作是“走紙一行”。因此,F(xiàn)ORMAT語句中的第一項“1X”的作用是“縱向走紙控制”。 (1)打印輸出一行后不會自動換行,“打印的當前位置”(即指針)停在本行輸出的最后一個字符后面。 (2)只要輸出記錄的第一個字符是空格,就可使走紙一行。因此也可以不采用“1X”而用 (即空格)也可達到同樣的目的。 (3)如果不預先在輸出記錄的第一個字符處設一空格,則系統(tǒng)會
17、將輸出的第一個字符作為走紙控制符,從而使本來想打印的內容缺少了一個字符。 (4)如果走紙控制符為“+”表示不換行,在本行睛再疊印一行新的內容。7.3.14 WRITE語句與FORMAT語句的相互作用 輸出記錄的內容是同WRITE語句和FORMAT語句共同決定的。WRITE語句提供變量的值,F(xiàn)ORMAT語句提供字符串、空格、以及數(shù)據(jù)輸出的格式。FORMAT語句中括弧內的內容稱為“格式說明”。對這兩個語句相互關系說明如下: (1)WRITE語句中的變量個數(shù)與FORMAT語句中的I,F(xiàn),E,G,D,L,A編輯符的個數(shù)可以相等也可以不等。如果變量個數(shù)少于上述編輯符個數(shù),則多余的編輯符不起作用。(注意,
18、上述編輯符不包括X編輯符、H編輯符、撇號編輯符,下同)。 在執(zhí)行格式控制時,對WRITE語句的變量表列和FORMAT語句中的格式說明同時掃描,一一對應。當變量表列結束,而FORMAT語句掃描到一個上述的編輯符,則掃描繼續(xù)下去,直到遇到非X、非H、非撇號編輯符為止。 (2)如果變量個數(shù)多于格式說明中的編輯符個數(shù),即WRITE語句中的變量表列中還有未輸出的元素,而格式說明中編輯符已用完,則重新使用該格式說明,但產(chǎn)生一個新記錄。 (3)如果在格式說明中包含有重復使用的編輯符組,則當格式說明用完后再重新使用時,只有最右面的一個編輯符組(包括其重復系數(shù))和它右面的編輯符被重復使用。 (4)如果有輸出量,但格式說明中無相應的編輯符,則輸出永不停止。因此,如果WRITE語句中有一個或一個以上的輸出變量的話,則格式說明中至少應該有一個非X、非H(或撇號)的相應的編輯符。 (5)在掃描過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年工程地質三維建模的行業(yè)標準
- 2026年地質三維建模在災害預警中的應用
- 2026上半年貴州事業(yè)單位聯(lián)考正安縣招聘65人筆試備考試題及答案解析
- 2026年購房者行為模式的變化分析
- 2026年自清潔建筑材料的創(chuàng)新與應用案例
- 2025年海南省行政管理崗筆試及答案
- 2025年孝南人事考試及答案
- 2026山東濰坊市公立三甲醫(yī)院病房護士招聘16人考試備考題庫及答案解析
- 2025年裸考教資筆試題目及答案
- 2025年招聘筆試往年真題及答案
- 施工總平面布置圖范本
- 嬰幼兒輔食添加及食譜制作
- 安全生產(chǎn)標準化對企業(yè)的影響安全生產(chǎn)
- 關于若干歷史問題的決議(1945年)
- 畢業(yè)論文8000字【6篇】
- 隨訪管理系統(tǒng)功能參數(shù)
- SH/T 0362-1996抗氨汽輪機油
- GB/T 23280-2009開式壓力機精度
- GB/T 17213.4-2015工業(yè)過程控制閥第4部分:檢驗和例行試驗
- FZ/T 73009-2021山羊絨針織品
- GB∕T 5900.2-2022 機床 主軸端部與卡盤連接尺寸 第2部分:凸輪鎖緊型
評論
0/150
提交評論