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