Fortran教程第六章格式輸入輸出.ppt
《Fortran教程第六章格式輸入輸出.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《Fortran教程第六章格式輸入輸出.ppt(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第六章格式輸入輸出,6.1輸入輸出概述,6.2格式輸入輸出語(yǔ)句,6.3格式說(shuō)明語(yǔ)句,6.4常用的編輯描述符,6.5輸入輸出項(xiàng)與編輯符的相互作用,6.1輸入輸出概述,輸入輸出是指在計(jì)算機(jī)內(nèi)存與外部設(shè)備之間傳送數(shù)據(jù)的過(guò)程。從外部設(shè)備將數(shù)據(jù)傳送到計(jì)算機(jī)內(nèi)存稱為輸入。將計(jì)算機(jī)內(nèi)部的數(shù)據(jù)傳送到外部設(shè)備稱為輸出。要順利地傳送數(shù)據(jù),一般應(yīng)在輸入輸出語(yǔ)句中給計(jì)算機(jī)提供三方面的信息:(1)通過(guò)什么設(shè)備來(lái)進(jìn)行輸入輸出。(2)采用什么樣的格式來(lái)進(jìn)行輸入輸出。(3)輸入輸出的具體內(nèi)容。,每一種計(jì)算機(jī)系統(tǒng)都隱含指定一種輸入設(shè)備和輸出設(shè)備。在微機(jī)中,隱含指定鍵盤(pán)為輸入設(shè)備,顯示器為輸出設(shè)備。在輸入輸出數(shù)據(jù)較多時(shí),也可以使用磁盤(pán)作為輸入輸出設(shè)備,即從已經(jīng)建立的磁盤(pán)文件中去讀取數(shù)據(jù),將處理結(jié)果寫(xiě)入到磁盤(pán)文件中去。關(guān)于文件操作將在第11章介紹。輸入輸出的格式由格式編輯符來(lái)指定,不同的數(shù)據(jù)類型需要不同的格式編輯符,不同的格式編輯符確定不同的輸入輸出格式。輸入輸出的具體內(nèi)容即輸入輸出項(xiàng),輸入項(xiàng)只能為變量,輸出項(xiàng)可以為常量、變量、函數(shù)和表達(dá)式,也可以是隱含的DO循環(huán)。下面先看一個(gè)格式輸入輸出的例子。,,程序輸出為:135每循環(huán)一次輸出循環(huán)變量J的值,每個(gè)數(shù)據(jù)占5格,INTEGERJDOJ=1,5,2WRITE(*,10)JENDDO10FORMAT(1X,3I5)END,再看下面的例子。,INTEGERJWRITE(*,10)(J,J=1,5,2)10FORMAT(1X,3I5)END,程序輸出為:135程序中,WRITE語(yǔ)句的輸出項(xiàng)“(J,J=1,5,2)”是一個(gè)隱含的DO循環(huán),當(dāng)作一個(gè)整體輸出,每個(gè)數(shù)據(jù)占5格。,6.2格式輸入輸出語(yǔ)句,6.2.1格式輸出,格式輸出語(yǔ)句有兩個(gè):PRINT語(yǔ)句和WRITE語(yǔ)句。1.PRINT語(yǔ)句PRINT語(yǔ)句的一般格式是:PRINTf,輸出項(xiàng)其中f是格式說(shuō)明符,指明了輸出所用的格式。它有以下三種形式:,(1)格式說(shuō)明符是一個(gè)“*”,表示輸出使用表控格式。(2)格式說(shuō)明符是一個(gè)字符常量。例如PRINT(1X,2F7.3),X,Y(3)格式說(shuō)明符是格式語(yǔ)句(FORMAT)的語(yǔ)句標(biāo)號(hào)。這是最常用的格式輸出形式。例如PRINT100,A,B,C100FORMAT(1X,F9.4,2F7.3)輸出項(xiàng)指定了輸出的具體內(nèi)容。輸出項(xiàng)可以是變量、常量、函數(shù)以及表達(dá)式。此外,輸出項(xiàng)還可以是隱含DO循環(huán)。,2.WRITE語(yǔ)句WRITE語(yǔ)句的一般格式是:WRITE(u,f)輸出項(xiàng)其中u是設(shè)備號(hào),用于指明具體使用的輸入輸出設(shè)備。u可以是一個(gè)無(wú)符號(hào)整常量,也可以是一個(gè)整型變量或整型表達(dá)式,還可以是星號(hào)*。*表示由計(jì)算機(jī)系統(tǒng)預(yù)先約定的外部設(shè)備,一般為顯示器。f是格式說(shuō)明符,指明了輸入輸出所用的格式。它也有三種形式,用法與PRINT語(yǔ)句相同。輸出項(xiàng)也可以是常量、變量、函數(shù)以及表達(dá)式,還可以是隱含的DO循環(huán)。,6.2.2格式輸入,格式輸入語(yǔ)句是指READ語(yǔ)句,它有兩種形式:READf,輸入項(xiàng)READ(u,f)輸入項(xiàng)其中f指明了輸入所用的格式。它有以下三種形式:,(1)格式說(shuō)明符是一個(gè)“*”,表示輸入使用表控格式。(2)格式說(shuō)明符是一個(gè)字符常量。例如READ(*,(I3,2I4))I,J,K(3)格式說(shuō)明符是格式語(yǔ)句(FORMAT)的語(yǔ)句標(biāo)號(hào)。這是最常用的格式輸入形式。u是設(shè)備號(hào),用于指明具體使用的輸入設(shè)備。u可以是一個(gè)無(wú)符號(hào)整常量,也可以是一個(gè)整型變量或整型表達(dá)式,還可以是星號(hào)“*”。“*”表示由計(jì)算機(jī)系統(tǒng)預(yù)先約定的外部設(shè)備,一般為鍵盤(pán)。輸入項(xiàng)指定了輸入的具體內(nèi)容。輸入項(xiàng)目可以變量,不允許是常量或表達(dá)式。此外,輸入項(xiàng)目也可以是隱含DO循環(huán),6.3格式說(shuō)明語(yǔ)句,FORTRAN用專門(mén)的格式說(shuō)明來(lái)描述輸入輸出的格式。盡管格式說(shuō)明可以直接放在輸入輸出語(yǔ)句中,但為了使程序的可讀性更強(qiáng),最好使用格式說(shuō)明語(yǔ)句來(lái)進(jìn)行格式說(shuō)明。格式說(shuō)明語(yǔ)句的一般格式是:nFORMAT(格式說(shuō)明)其中n是語(yǔ)句標(biāo)號(hào),F(xiàn)ORMAT語(yǔ)句一定帶有語(yǔ)句標(biāo)號(hào),以便同格式輸入輸出語(yǔ)句配合使用。格式說(shuō)明由若干個(gè)編輯描述符組成,編輯描述符之間用逗號(hào)分隔。例如10FORMAT(1X,I4,F5.1),格式說(shuō)明語(yǔ)句是非執(zhí)行語(yǔ)句,它只是給輸入輸出語(yǔ)句提供數(shù)據(jù)的格式描述。在程序運(yùn)行過(guò)程中,由輸入輸出語(yǔ)句根據(jù)格式說(shuō)明語(yǔ)句提供的數(shù)據(jù)格式描述,實(shí)現(xiàn)數(shù)據(jù)的格式控制。單獨(dú)的格式說(shuō)明語(yǔ)句在程序中不器任何作用。例如10FORMAT(1X,I4,F5.1)WRITE(*,10)2345,67.8格式說(shuō)明包含3種編輯描述符X,I和F。分別用I4和F5.1來(lái)控制2345和67.8的輸出格式,1X也有特定的用途。格式說(shuō)明語(yǔ)句可以放在程序單位語(yǔ)句(主程序語(yǔ)句PROGRAM,子程序語(yǔ)句FUNCTION或SUBROUTINE)之后,END語(yǔ)句之前的任何位置。,6.4常用的編輯描述符,編輯描述符分成兩大類:可重復(fù)編輯描述符非重復(fù)編輯描述符。,6.4.1可重復(fù)編輯描述符,可重復(fù)編輯描述符是用來(lái)編輯輸入輸出項(xiàng)的輸入輸出格式的,所以它們總是與輸入輸出項(xiàng)相對(duì)應(yīng)。不同類型的輸入輸出項(xiàng)使用不同的編輯描述符。FORTRAN提供的內(nèi)部數(shù)據(jù)類型有整型、實(shí)型、復(fù)型、字符型和邏輯型。相應(yīng)地,編輯描述符也分五類介紹。,根據(jù)數(shù)據(jù)采用的進(jìn)制不同,整型數(shù)據(jù)編輯符分為四種,I編輯符、B編輯符、O編輯符和Z編輯符。I編輯符用來(lái)描述十進(jìn)制的整型數(shù)據(jù),B編輯符用來(lái)描述二進(jìn)制的整型數(shù)據(jù),O編輯符用來(lái)描述八進(jìn)制的整型數(shù)據(jù),Z編輯符用來(lái)描述十六進(jìn)制的整型數(shù)據(jù)。下面逐一介紹。,1.整型數(shù)據(jù)編輯描述符,(1)I編輯符。十進(jìn)制整數(shù)的輸入輸出。一般格式是:rIw其中r是重復(fù)系數(shù),為1時(shí)可以省略。w表示字段寬度,即與該編輯描述符對(duì)應(yīng)的輸入輸出項(xiàng)所占用的字符個(gè)數(shù)。I型輸入的使用規(guī)則:在輸入記錄中從左往右取w個(gè)字符存入對(duì)應(yīng)的輸入項(xiàng)。注意取得的w個(gè)字符必須是整數(shù),正負(fù)號(hào)也占一個(gè)字符位置,空格字符占一個(gè)字符位置但不起作用。READ(*,10)I,J,K10FORMAT(I4,I5,I6)語(yǔ)句執(zhí)行時(shí),若從鍵盤(pán)輸入71□4-346□-□1□2345(□代表空格),則I,J,K的值分別為:714、-346和-123。,I型輸出的使用規(guī)則:在輸出記錄中,對(duì)應(yīng)的輸出項(xiàng)的值占w個(gè)字符寬度。當(dāng)w大于輸出項(xiàng)實(shí)際的數(shù)字位數(shù)時(shí),在輸出字段中插入前導(dǎo)空格補(bǔ)足w個(gè)字符。當(dāng)w小于輸出項(xiàng)實(shí)際的數(shù)字位數(shù)時(shí),將輸出w個(gè)“*”,表示字段寬度定義小了。WRITE(*,10)K,L10FORMAT(I4,I4)當(dāng)K=12,L=-7567時(shí),輸出結(jié)果為:□□12****,(2)B,O,Z編輯符。這是FORTRAN90新增的編輯符。分別采用二進(jìn)制、八進(jìn)制和十六進(jìn)制形式描述整型量的輸入輸出。其基本用法與I編輯符相同。例如READ(*,10)I,JWRITE(*,20)I,J,I,J10FORMAT(B3,B4)20FORMAT(I5,I4,O4,Z5)END語(yǔ)句執(zhí)行時(shí),若從鍵盤(pán)輸入1011101,則I,J的值分別為二進(jìn)制數(shù)101和二進(jìn)制數(shù)1101。輸出結(jié)果為:□□□□5□□13□□□5□□□□D,有四種編輯符可以對(duì)實(shí)型數(shù)據(jù)進(jìn)行操作,它們是F編輯符、E編輯符、EN編輯符、ES編輯符和G編輯符。,2.實(shí)型數(shù)據(jù)編輯描述符,(1)F編輯符。用于實(shí)型量的輸入輸出(按小數(shù)形式)。一般格式是:rFw.d其中r為重復(fù)系數(shù),為1時(shí)可以省略。w為字段寬度,d為輸入輸出項(xiàng)小數(shù)部分所占的位數(shù)。F型輸入規(guī)則:按編輯描述符中w指定的字段寬度從輸入記錄中截取數(shù)據(jù),若w個(gè)字符中不含小數(shù)點(diǎn),則系統(tǒng)自動(dòng)按d決定小數(shù)點(diǎn)的位置,若w個(gè)字符中含有小數(shù)點(diǎn),則按“自帶小數(shù)點(diǎn)優(yōu)先”的原則,不再按Fw.d中的d去加工該數(shù)據(jù),此時(shí)d不起作用。例如READ(*,10)A,B10FORMAT(F7.2,F6.1)語(yǔ)句執(zhí)行時(shí),如從鍵盤(pán)輸入123456□726.89,則A、B的值分別為12345.6和726.89。,當(dāng)輸入的是指數(shù)形式時(shí),如果E前面的數(shù)字部分含有小數(shù)點(diǎn),則d不起作用。如果數(shù)字部分不含有小數(shù)點(diǎn),則自動(dòng)按d決定數(shù)字部分小數(shù)點(diǎn)的位置。例如READ(*,10)A,B10FORMAT(F8.0,F7.2)執(zhí)行語(yǔ)句時(shí),如從鍵盤(pán)輸入72.48E-3□□□□2E2,則A、B的值分別為0.07248、2.0。,F型輸出規(guī)則:把輸出項(xiàng)的值轉(zhuǎn)換成字段寬度為w的小數(shù)形式輸出,其中小數(shù)部分占d位,小數(shù)點(diǎn)占一位。如果輸出項(xiàng)小數(shù)部分實(shí)際的位數(shù)小于d,則輸出時(shí)小數(shù)部分低位以零補(bǔ)足d位,否則保留d位,從d+1位開(kāi)始四舍五入。如果輸出項(xiàng)實(shí)際長(zhǎng)度小于w,則在左邊用空格補(bǔ)足w個(gè),否則輸出w個(gè)“*”,以示w太小。例如WRITE(*,10)A,B,C10FORMAT(1X,3F8.3)當(dāng)A、B、C的值分別是78.9、-0.00072、12345.678時(shí),輸出為:□□78.900□□□-.001********,(2)E編輯符。用于輸入輸出指數(shù)形式的實(shí)數(shù)。它的一般格式是:rEw.d其中r是重復(fù)系數(shù),w是字段寬度,d為數(shù)字部分小數(shù)位數(shù)。E型輸入規(guī)則:與F編輯符完全相同。E型輸出規(guī)則:采取規(guī)格化的指數(shù)形式,即數(shù)字部分小數(shù)前面為0,小數(shù)點(diǎn)后第一位為非零數(shù)字,指數(shù)部分占4列(E、指數(shù)符號(hào)位及兩位指數(shù))。如果輸出項(xiàng)數(shù)字部分的小數(shù)位數(shù)多于d位,保留d位,從第d+1位起四舍五入,小于d位,在其右邊補(bǔ)0。如果輸出項(xiàng)實(shí)際的位數(shù)小于w,左補(bǔ)空格,否則輸出w個(gè)“*”。,例如WRITE(*,10)A,B10FORMAT(1X,E12.4,E13.2)當(dāng)A、B的值為128.433和-0.0008時(shí),輸出為:□□□.1284E+03□□□□□-.80E-03,(3)EN編輯符。EN編輯符與E編輯符基本用法相同。區(qū)別在于EN編輯符輸出數(shù)據(jù)的非指數(shù)部分的絕對(duì)值強(qiáng)制在1到1000的范圍內(nèi),且指數(shù)可以被3整除。例如WRITE(*,10)128.433,-0.000810FORMAT(1X,EN12.4,EN13.2)輸出為:128.4330E+00□□-800.00E-06,(4)ES編輯符。ES編輯符與E編輯符基本用法相同。區(qū)別在于ES編輯符輸出數(shù)據(jù)的非指數(shù)部分的絕對(duì)值強(qiáng)制在1到10的范圍內(nèi)。例如WRITE(*,10)128.433,-0.000810FORMAT(1X,ES12.4,ES13.2)輸出為:□□1.2843E+02□□□□-8.00E-04,(5)G編輯符。也用于實(shí)型量的輸入輸出。一般格式為:rGw.dG編輯符用于輸入時(shí),與F、E編輯符的功能完全相同。用于輸出時(shí),要根據(jù)輸出項(xiàng)的大小決定用F格式輸出還是用E格式輸出。例如WRITE(*,10)123456.789,0.09876510FORMAT(1X,G13.7,G11.4)輸出為:□123456.8□□□□□□.9877E-01,3.復(fù)型數(shù)據(jù)編輯描述符復(fù)型數(shù)據(jù)沒(méi)有專門(mén)的編輯符。對(duì)復(fù)型數(shù)據(jù)的輸入輸出,可以按實(shí)部和虛部分別輸入輸出。例如COMPLEXCMREAD(*,10)CMWRITE(*,20)CM10FORMAT(2F5.2)20FORMAT(1X,2F7.2)語(yǔ)句執(zhí)行時(shí),從鍵盤(pán)輸入1234567890,則輸出為:□123.45□678.90,4.邏輯型數(shù)據(jù)編輯描述符邏輯型數(shù)據(jù)的輸入輸出用L編輯符。其一般格式是:rLw邏輯值只有兩個(gè):真(.TRUE.)和假(.FALSE.)。在輸入時(shí),輸入的數(shù)據(jù)可以是.TRUE.或.FALSE.,也可以是頭一個(gè)字母為T(mén)或F的任何字符串(T或F前面可以接“.”或空格,后面可以是任意字符),例如LOGICALL1,L2READ(*,10)L1,L210FORMAT(L6,L3)語(yǔ)句執(zhí)行時(shí),從鍵盤(pán)輸入.TRUE..FT,則L1、L2的值分別是.TRUE.、.FALSE.。在輸出時(shí),對(duì)邏輯真(.TRUE.),輸出一個(gè)字母T,對(duì)邏輯假(.FALSE.),輸出字母F,且在左邊補(bǔ)w-1個(gè)空格。例如WRITE(*,10).FALSE.,A.LT.B.OR.1.GT.210FORMAT(1X,L3,L4)輸出為:□□F□□□T,5.字符型數(shù)據(jù)編輯描述符字符型數(shù)據(jù)的輸入輸出用A編輯符。其一般格式是:rAw其中字段寬度w可以省略,省略時(shí),輸入輸出項(xiàng)的字段寬度隱含為對(duì)應(yīng)的字符型輸入輸出項(xiàng)的長(zhǎng)度l。,A編輯符的輸入規(guī)則:從輸入記錄中取w個(gè)字符,但這w個(gè)字符能否全部存入對(duì)應(yīng)的輸入項(xiàng),還取決于輸入項(xiàng)的長(zhǎng)度l。當(dāng)w等于l時(shí),w個(gè)字符全部送給輸入項(xiàng)。當(dāng)w>l時(shí),從w個(gè)字符中取出最右邊l個(gè)字符送給對(duì)應(yīng)的輸入項(xiàng)。這一點(diǎn)與字符賦值語(yǔ)句的賦值規(guī)則剛好相反。當(dāng)wl時(shí),輸出項(xiàng)所有的字符全部輸出,并且靠右對(duì)齊,左補(bǔ)w-l個(gè)空格。當(dāng)w6.EQV..FALSE.WRITE(*,10)A,B10FORMAT(1X,F10.2,F10.2/L5)END,6.請(qǐng)寫(xiě)出下列程序的執(zhí)行結(jié)果。(1)WRITE(*,10)(3,4,I=1,2)10FORMAT(1X,3I3)END(2)READ(*,10)K,A,AWRITE(*,20)K,A10FORMAT(I5,F6.1,F7.2)20FORMAT(1X,I7,2F9.2)END輸入為:123456789.0123456789。,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- Fortran 教程 第六 格式 輸入輸出
鏈接地址:http://kudomayuko.com/p-11496188.html