版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1visual fortran 90 程序設(shè)計(jì)第十章第十章 文件文件210.1 文件概述文件概述10.4 直接文件的存取直接文件的存取10.2 對(duì)文件的基本操作對(duì)文件的基本操作10.5 inqure語句語句10.3 順序文件的存取順序文件的存取10.6 無格式文件無格式文件3一、引入文件的目的:一、引入文件的目的:便于輸入、輸出數(shù)據(jù)的保存與維護(hù)便于輸入、輸出數(shù)據(jù)的保存與維護(hù)二、程序結(jié)構(gòu)的變化:二、程序結(jié)構(gòu)的變化:文件要先打開,再輸入、輸出文件要先打開,再輸入、輸出主程序:主程序:program main 說明部分說明部分 打開用于輸入、輸出的文件打開用于輸入、輸出的文件 從輸入文件中從輸入文件
2、中讀數(shù)據(jù)讀數(shù)據(jù) 調(diào)用子程序處理調(diào)用子程序處理 將結(jié)果將結(jié)果寫到輸出文件中寫到輸出文件中 關(guān)閉用于輸入、輸出的文件關(guān)閉用于輸入、輸出的文件 end program main子程序:子程序:不變不變4文件是記錄的序列文件是記錄的序列1、記錄記錄:一行一行稱為一個(gè)記錄(記錄是值或字符的序列),記稱為一個(gè)記錄(記錄是值或字符的序列),記錄是輸入、輸出的基本單位。錄是輸入、輸出的基本單位。2、記錄的三種格式:、記錄的三種格式:有格式記錄(有格式記錄(ascii)(表控格式或自定格式讀寫)(表控格式或自定格式讀寫) 無格式記錄(二進(jìn)制,無格式記錄(二進(jìn)制,僅適合與磁盤操作僅適合與磁盤操作)文件結(jié)束記錄(不
3、是文件的組成部分,是文件的結(jié)束標(biāo)記)文件結(jié)束記錄(不是文件的組成部分,是文件的結(jié)束標(biāo)記)10.1 10.1 文件概述文件概述5文件是相關(guān)記錄的有序集合。文件的特征:文件是相關(guān)記錄的有序集合。文件的特征: (1)文件名文件名 (2)格式格式:隨記錄分為有格式文件、無格式文件:隨記錄分為有格式文件、無格式文件 (3)存取方式存取方式:順序存取文件順序存取文件由由記錄指針記錄指針控制控制順序存順序存取文件的存取操作取文件的存取操作,必須從頭到尾按順序進(jìn)行必須從頭到尾按順序進(jìn)行 直接存取文件直接存取文件由由記錄號(hào)記錄號(hào)控制,控制,可以在程序執(zhí)行過可以在程序執(zhí)行過程中對(duì)任意一個(gè)指定的記錄進(jìn)行讀寫。程中對(duì)
4、任意一個(gè)指定的記錄進(jìn)行讀寫。 (4)文件應(yīng)先連接(預(yù)連接)文件應(yīng)先連接(預(yù)連接)即即先打開,再讀寫先打開,再讀寫3 3、文件的概念和類型、文件的概念和類型6文件的分類方法很多:文件的分類方法很多: (1)源程序文件和數(shù)據(jù)文件(文件內(nèi)容)源程序文件和數(shù)據(jù)文件(文件內(nèi)容) (2)磁盤文件和磁帶文件(存儲(chǔ)介質(zhì))磁盤文件和磁帶文件(存儲(chǔ)介質(zhì)) (3)內(nèi)部文件和外部(存儲(chǔ)設(shè)備的類型:內(nèi)存或外部設(shè)備)內(nèi)部文件和外部(存儲(chǔ)設(shè)備的類型:內(nèi)存或外部設(shè)備) (4)輸入文件、輸出文件和輸入輸出文件(讀寫操作)輸入文件、輸出文件和輸入輸出文件(讀寫操作) (5)順序存取和直接(隨機(jī))存取(存取方式)順序存取和直接(隨
5、機(jī))存取(存取方式) (6)有格式和無格式(文件記錄的格式)有格式和無格式(文件記錄的格式)特殊文件:標(biāo)準(zhǔn)輸入文件:鍵盤特殊文件:標(biāo)準(zhǔn)輸入文件:鍵盤 標(biāo)準(zhǔn)輸出文件:顯示器標(biāo)準(zhǔn)輸出文件:顯示器本章重點(diǎn)討論:有格式的磁盤順序文件。本章重點(diǎn)討論:有格式的磁盤順序文件。文件類型:文件類型:710.2 10.2 文件的基本操作文件的基本操作對(duì)文件的基本操作包括對(duì)文件的基本操作包括打開文件、讀、寫文件及關(guān)閉文件打開文件、讀、寫文件及關(guān)閉文件。通常有四種類型的文件通常有四種類型的文件 :有格式順序存取文件有格式順序存取文件、無格式順、無格式順序存取文件、序存取文件、有格式直接存取文件有格式直接存取文件、無格
6、式直接存取文件。、無格式直接存取文件。 10.2.1 open 語句語句功能功能:打開文件。把文件與一個(gè)文件號(hào)連接起來且文件指:打開文件。把文件與一個(gè)文件號(hào)連接起來且文件指針指向第一個(gè)記錄(直接文件無文件指針)。針指向第一個(gè)記錄(直接文件無文件指針)。一般形式如下:一般形式如下:open(連接信息表)(連接信息表)連接信息表所包含的說明符如下:連接信息表所包含的說明符如下:1、unit=ut。 文件號(hào)文件號(hào)ut ,必須是無符號(hào)整數(shù)必須是無符號(hào)整數(shù)當(dāng)文件號(hào)為第一個(gè)說明符時(shí),當(dāng)文件號(hào)為第一個(gè)說明符時(shí),unit=可省略可省略2、file=fe。 fe字符型數(shù)據(jù),代表文件名字符型數(shù)據(jù),代表文件名(可含
7、盤符路徑可含盤符路徑) 例如:例如:open(3,file=data.dat)3、status=ss。 ss用戶給出的字符串,表示文件的狀態(tài)。用戶給出的字符串,表示文件的狀態(tài)。 有五種值可選(意義見書有五種值可選(意義見書p260):): new,old,replace,scratch,unknown 默認(rèn)默認(rèn)為為unknown 其中其中scratch 表示打開臨時(shí)文件,不能與文件名同時(shí)使表示打開臨時(shí)文件,不能與文件名同時(shí)使用。用。4、access=as。字符串,其值可為字符串,其值可為sequential(順序的)(順序的)或或direct(直接的)。(直接的)。缺省為缺省為sequenti
8、al5、form=fm。字符串,其值為字符串,其值為formatted或或unformatted,表明文件是有格式的還是無格式的。,表明文件是有格式的還是無格式的。 對(duì)對(duì)順序文件的缺省值順序文件的缺省值為有格式,對(duì)為有格式,對(duì)直接文件的缺省值直接文件的缺省值為為無格式。無格式。6、recl=rl。正整數(shù)的整型表達(dá)式,用來指定文件中記錄正整數(shù)的整型表達(dá)式,用來指定文件中記錄的長度。直接文件中每個(gè)記錄必須相等,必須選擇的長度。直接文件中每個(gè)記錄必須相等,必須選擇recl項(xiàng),項(xiàng),順序文件不需要使用該項(xiàng)。順序文件不需要使用該項(xiàng)。7、action=an。為一字符串,可取為一字符串,可取read、writ
9、e、readwrite(默認(rèn)值)。(默認(rèn)值)。為可選項(xiàng)為可選項(xiàng)8、blank=bk。為一字符串,可取為為一字符串,可取為null(默認(rèn)值)或(默認(rèn)值)或zero??刂莆募械?。控制文件中的空格是忽略不計(jì)還是當(dāng)零處理空格是忽略不計(jì)還是當(dāng)零處理。為可選。為可選項(xiàng)項(xiàng)9、iostat=it。整型變量。整型變量。open語句語句執(zhí)行時(shí),獲得數(shù)值執(zhí)行時(shí),獲得數(shù)值。執(zhí)行成功則為零,執(zhí)行成功則為零,出錯(cuò)則為一正整數(shù)。為可選項(xiàng)出錯(cuò)則為一正整數(shù)。為可選項(xiàng)10、err=label。若打開文件出錯(cuò),則轉(zhuǎn)向標(biāo)號(hào)語句。為可若打開文件出錯(cuò),則轉(zhuǎn)向標(biāo)號(hào)語句。為可選項(xiàng)選項(xiàng)11說明:說明:open語句中各說明符的語句中各說明符的
10、次序可以任意次序可以任意,但應(yīng),但應(yīng)注意注意: 1、文件與文件號(hào)在某一程序單元中連接成功,就在該程、文件與文件號(hào)在某一程序單元中連接成功,就在該程序的所有單元中都保持這種連接關(guān)系。直到程序結(jié)束,除序的所有單元中都保持這種連接關(guān)系。直到程序結(jié)束,除非使用非使用close或新的或新的open語句。語句。 2、一個(gè)文件不能同時(shí)與兩個(gè)或多個(gè)文件號(hào)相連接。一個(gè)、一個(gè)文件不能同時(shí)與兩個(gè)或多個(gè)文件號(hào)相連接。一個(gè)文件號(hào)也不能同時(shí)與兩個(gè)或多個(gè)文件連接。文件號(hào)也不能同時(shí)與兩個(gè)或多個(gè)文件連接。例:例:有格式有格式順序文件順序文件open語句的最簡(jiǎn)形式語句的最簡(jiǎn)形式open(2,file=a.dat)例:例:有格式直
11、接文件有格式直接文件open語句的最簡(jiǎn)形式語句的最簡(jiǎn)形式open(2,file=a.dat,access=direct, form=formatted,recl=12) recl:規(guī)定記錄的統(tǒng)一長度規(guī)定記錄的統(tǒng)一長度例:例:無格式順序文件無格式順序文件open語句的最簡(jiǎn)形式語句的最簡(jiǎn)形式open(2,file=a.dat, form=unformatted, access=sequential)例:例:無格式直接文件無格式直接文件open語句的最簡(jiǎn)形式語句的最簡(jiǎn)形式open(2, file=a.dat, access=direct, recl=16)1310.2.2 close語句語句關(guān)閉文件
12、關(guān)閉文件功能:解除文件號(hào)與文件的連接關(guān)系。功能:解除文件號(hào)與文件的連接關(guān)系。寫法:寫法:close(關(guān)閉信息表)(關(guān)閉信息表)關(guān)閉信息表主要有下列說明符:關(guān)閉信息表主要有下列說明符:unit=utiostat=it 為可選項(xiàng)為可選項(xiàng)status=ss。指定文件關(guān)閉后是否保留指定文件關(guān)閉后是否保留。為可選項(xiàng),。為可選項(xiàng),ss可為可為keep或或delete,默認(rèn)除,默認(rèn)除scratch(臨時(shí)文件臨時(shí)文件)全部全部保留。保留。最簡(jiǎn)寫法:最簡(jiǎn)寫法:close(2)1410.2.3 讀寫數(shù)據(jù)語句讀寫數(shù)據(jù)語句fortran90讀寫語句共有四種形式:讀寫語句共有四種形式:read 格式說明,輸入表格式說明
13、,輸入表print 格式說明,輸出表格式說明,輸出表read (控制信息表)輸入表(見(控制信息表)輸入表(見p49)write (控制信息表)輸出表(見(控制信息表)輸出表(見p51)前兩種省略文件號(hào),表示在系統(tǒng)預(yù)先指定的設(shè)備上輸入輸出,前兩種省略文件號(hào),表示在系統(tǒng)預(yù)先指定的設(shè)備上輸入輸出,一般指鍵盤和顯示器。一般指鍵盤和顯示器。后兩種既適合在隱含設(shè)備上輸入輸出,也適用于對(duì)文件的輸后兩種既適合在隱含設(shè)備上輸入輸出,也適用于對(duì)文件的輸入輸出??刂菩畔⒈碇械恼f明符,除入輸出??刂菩畔⒈碇械恼f明符,除unit項(xiàng)不可缺少外,其項(xiàng)不可缺少外,其它均可根據(jù)情況選用。它均可根據(jù)情況選用。151、從文件中讀
14、數(shù)據(jù)的語句:、從文件中讀數(shù)據(jù)的語句:寫法:寫法: read (控制信息表)輸入表(控制信息表)輸入表順序存儲(chǔ)文件的最簡(jiǎn)寫法:順序存儲(chǔ)文件的最簡(jiǎn)寫法: read (設(shè)備號(hào),格式說明)輸入表(設(shè)備號(hào),格式說明)輸入表例:例:read(2,*)a,b,c read(2,fmt=(3f4.1)a,b,c注意點(diǎn):注意點(diǎn):(1)對(duì)對(duì)順序存儲(chǔ)文件順序存儲(chǔ)文件總是讀文件指針指向的記總是讀文件指針指向的記錄(文件指針指向的記錄稱為錄(文件指針指向的記錄稱為當(dāng)前記錄當(dāng)前記錄)。)。(2)讀完后指針下移一個(gè)記錄)讀完后指針下移一個(gè)記錄(3)如無輸入表,僅指針下移一個(gè)記錄)如無輸入表,僅指針下移一個(gè)記錄有格式有格式直
15、接存儲(chǔ)文件直接存儲(chǔ)文件的最簡(jiǎn)寫法:指明記錄號(hào)的最簡(jiǎn)寫法:指明記錄號(hào)read(2,*,rec=5)a,b,c16無格式順序文件、直接文件的無格式順序文件、直接文件的read語句:語句:與有格式與有格式的區(qū)別是去掉格式說明這一項(xiàng)的區(qū)別是去掉格式說明這一項(xiàng)例:例:read(10)i,j read(10,rec=3)i,j17read的其它選項(xiàng)的其它選項(xiàng)iostat=it it為整型變量值,執(zhí)行此語句時(shí)獲得數(shù)值,為整型變量值,執(zhí)行此語句時(shí)獲得數(shù)值, 0 此操作發(fā)生錯(cuò)誤此操作發(fā)生錯(cuò)誤 =0 執(zhí)行成功執(zhí)行成功無此項(xiàng),讀寫發(fā)生錯(cuò)誤將報(bào)錯(cuò),并停止運(yùn)行無此項(xiàng),讀寫發(fā)生錯(cuò)誤將報(bào)錯(cuò),并停止運(yùn)行advance=yes
16、(默認(rèn)值):遇下一個(gè)輸入語句換行讀?。J(rèn)值):遇下一個(gè)輸入語句換行讀取 =no:遇下一個(gè)輸入語句不換行讀?。河鱿乱粋€(gè)輸入語句不換行讀取182、將數(shù)據(jù)寫到輸出文件中的語句、將數(shù)據(jù)寫到輸出文件中的語句寫法:寫法:write (控制信息表)輸出表(控制信息表)輸出表順序存儲(chǔ)文件的最簡(jiǎn)寫法:順序存儲(chǔ)文件的最簡(jiǎn)寫法:write (設(shè)備號(hào),格式說明)輸出表(設(shè)備號(hào),格式說明)輸出表注意點(diǎn)注意點(diǎn)(1)對(duì)順序存儲(chǔ)文件總是寫在文件指針指向的記錄處。對(duì)順序存儲(chǔ)文件總是寫在文件指針指向的記錄處。 (2)寫完后指針下移一個(gè)記錄)寫完后指針下移一個(gè)記錄 (3)總是改寫)總是改寫 (4)總是寫最后一個(gè)記錄)總是寫最后一
17、個(gè)記錄19write的其它選項(xiàng)的其它選項(xiàng)iostat=it it為整型變量值,執(zhí)行此語句時(shí)獲得數(shù)值,為整型變量值,執(zhí)行此語句時(shí)獲得數(shù)值, 0 此操作發(fā)生錯(cuò)誤此操作發(fā)生錯(cuò)誤 =0 執(zhí)行成功執(zhí)行成功無此項(xiàng),讀寫發(fā)生錯(cuò)誤將報(bào)錯(cuò),并停止運(yùn)行無此項(xiàng),讀寫發(fā)生錯(cuò)誤將報(bào)錯(cuò),并停止運(yùn)行advance=yes(默認(rèn)值):遇下一個(gè)輸出語句換行輸出(默認(rèn)值):遇下一個(gè)輸出語句換行輸出 =no:遇下一個(gè)輸出語句不換行輸出:遇下一個(gè)輸出語句不換行輸出20例例10-1、從鍵盤輸入、從鍵盤輸入n個(gè)學(xué)生的姓名和考試成績,把它寫入個(gè)學(xué)生的姓名和考試成績,把它寫入到一個(gè)順序文件中。到一個(gè)順序文件中。program creat_f
18、ileimplicit nonecharacter(len=10):namereal:scoreinteger:n,iopen(1,file=student.dat,status=new)read *,ndo i=1,nread*,name,scorewrite(1,(a10,f6.1)name,scoreenddoclose(1)endprogram如果再執(zhí)行,由于此時(shí)文件如果再執(zhí)行,由于此時(shí)文件的狀態(tài)已是的狀態(tài)已是“old”,打開,打開文件操作不會(huì)成功。解決方文件操作不會(huì)成功。解決方法:法:刪除文件、刪除刪除文件、刪除status或改為或改為“replace”21例例10-2、把例、把例1
19、0-1建立的文件中的數(shù)據(jù)顯示到終端顯示器上。建立的文件中的數(shù)據(jù)顯示到終端顯示器上。program read_fileimplicit nonecharacter(len=10):namereal:scoreinteger:isopen(1,file=student.dat)read(1,(a10,f6.1),iostat=is)name,scoredo while(is=0) write(*,(a10,f6.1)name,score read(1,(a10,f6.1),iostat=is)name,scoreenddoclose(1)endprogramiostst=it it為整型變?yōu)檎妥?/p>
20、量值,執(zhí)行此語句時(shí)獲得量值,執(zhí)行此語句時(shí)獲得數(shù)值,數(shù)值, 0 此操作發(fā)生此操作發(fā)生錯(cuò)誤,錯(cuò)誤, =0 執(zhí)行成功執(zhí)行成功2210.3 10.3 順序文件的存取順序文件的存取有關(guān)順序文件的文件指針操作語句有關(guān)順序文件的文件指針操作語句:open:文件指針指向第一條記錄文件指針指向第一條記錄read:文件指針下移一個(gè)記錄文件指針下移一個(gè)記錄write:文件指針下移一個(gè)記錄文件指針下移一個(gè)記錄rewind語句語句:文件指針指向第一條記錄文件指針指向第一條記錄backspaces語句語句:文件指針上移一個(gè)記錄文件指針上移一個(gè)記錄23rewindrewind語句(反繞語句)語句(反繞語句) 不論當(dāng)前文件的
21、指針在何處,如果想把文件定位到文件不論當(dāng)前文件的指針在何處,如果想把文件定位到文件初始點(diǎn),都可以通過反繞語句實(shí)現(xiàn)。初始點(diǎn),都可以通過反繞語句實(shí)現(xiàn)。反繞語句有兩種形式:反繞語句有兩種形式:rewind 文件號(hào)文件號(hào)rewind (定位說明符表)(定位說明符表) unit=設(shè)備號(hào),必選項(xiàng)設(shè)備號(hào),必選項(xiàng) iostat=整型變量整型變量 ,可選項(xiàng),用法同,可選項(xiàng),用法同open語句語句例如:例如: rewind 2 rewind (2) !2的前面省略了的前面省略了unit= rewind (iostat=i,unit=12)24 backspace 語句語句使指定文件號(hào)連接的文件在當(dāng)前位使指定文件號(hào)
22、連接的文件在當(dāng)前位置上回退一個(gè)記錄。置上回退一個(gè)記錄。 當(dāng)前文件定位到第當(dāng)前文件定位到第n個(gè)記錄之后,執(zhí)行一次個(gè)記錄之后,執(zhí)行一次backspace 語句,就定位在第(語句,就定位在第(n-1)個(gè)記錄之后。因)個(gè)記錄之后。因而使程序能重讀(或?qū)懀┑诙钩绦蚰苤刈x(或?qū)懀┑趎個(gè)記錄。個(gè)記錄。該語句有兩種形式:該語句有兩種形式:backspace 設(shè)備號(hào)設(shè)備號(hào)backspace (定位說明符表)(定位說明符表)backspacebackspace語句(回退一個(gè)記錄語句)語句(回退一個(gè)記錄語句)25integer:k1,k2,i,isopen(1,file=d:abc)do i=1,3write(1
23、,(2i3)i,i*ienddobackspace(1)read(1,(2i3)k1print*,k1rewind(1)read(1,(2i3),iostat=is)k1,k2do while(is=0)read(1,(2i3),iostat=is)k1,k2enddoclose(1)print*,k1,k2end閱讀程序,寫出執(zhí)行結(jié)果閱讀程序,寫出執(zhí)行結(jié)果打開文件并寫文件打開文件并寫文件回退一個(gè)記錄回退一個(gè)記錄回到起點(diǎn)回到起點(diǎn)順序讀文件順序讀文件執(zhí)行結(jié)果:執(zhí)行結(jié)果: 3 3 9文件內(nèi)容:文件內(nèi)容:112439分析:分析:由于不能對(duì)順序文件同時(shí)讀和寫,因此修改順序由于不能對(duì)順序文件同時(shí)讀和寫,
24、因此修改順序文件時(shí),必須從文件頭開始依次讀入每個(gè)記錄,把正確文件時(shí),必須從文件頭開始依次讀入每個(gè)記錄,把正確的記錄寫到的記錄寫到另一個(gè)臨時(shí)文件另一個(gè)臨時(shí)文件中;讀到有錯(cuò)的記錄時(shí),則中;讀到有錯(cuò)的記錄時(shí),則把修改后的內(nèi)容寫到臨時(shí)文件中。全部修改完后,把臨把修改后的內(nèi)容寫到臨時(shí)文件中。全部修改完后,把臨時(shí)文件中的內(nèi)容按次序傳送回原文件。時(shí)文件中的內(nèi)容按次序傳送回原文件。例例10-3 :10-3 :通過例通過例2 2檢查文件檢查文件student.datstudent.dat中學(xué)生的數(shù)據(jù)后中學(xué)生的數(shù)據(jù)后發(fā)現(xiàn)第發(fā)現(xiàn)第k1k1個(gè)記錄的學(xué)生姓名有錯(cuò),第個(gè)記錄的學(xué)生姓名有錯(cuò),第k2k2個(gè)記錄的學(xué)生的成個(gè)記錄
25、的學(xué)生的成績有誤。編寫程序修改原來的文件。績有誤。編寫程序修改原來的文件。character(len=10):name,new_name,cfmt=(a10,f6.1)real:score,new_scoreinteger:is,n,i,k1,k2open(1,file=student.dat,status=old)open(2,status=scratch)read*,k1,new_nameread*,k2,new_scoren=0do read(1,cfmt,iostat=is)name,score if(is/=0) exit n=n+1 if(n=k1)name=new_name if
26、(n=k2)score=new_score write(2,cfmt)name,scoreenddorewind(1);rewind(2)do i=1,n read(2,cfmt)name,score write(1,cfmt)name,score write(*,cfmt)name,scoreenddoclose(1);close(2)end program打開兩個(gè)文件打開兩個(gè)文件讀入待修改的記錄及讀入待修改的記錄及內(nèi)容內(nèi)容寫入臨時(shí)文件寫入臨時(shí)文件28end fileend file語句(結(jié)束語句)語句(結(jié)束語句) end file語句在語句在指定文件當(dāng)前位置處寫上一個(gè)文件指定文件當(dāng)前位置處
27、寫上一個(gè)文件結(jié)束記錄。結(jié)束記錄。 執(zhí)行該語句后,文件指針定位在文件結(jié)束記錄之后,執(zhí)行該語句后,文件指針定位在文件結(jié)束記錄之后,不能再讀寫原來連接的文件。不能再讀寫原來連接的文件。一般也有兩種形式:一般也有兩種形式: end file 文件號(hào)文件號(hào) end file (定位說明符表)(定位說明符表)用法同用法同rewind語句。語句。2910.4 10.4 直接文件的存取直接文件的存取 對(duì)直接文件可以直接存取任一記錄。對(duì)直接文件可以直接存取任一記錄。 open語句中需加入以下兩項(xiàng):語句中需加入以下兩項(xiàng): access=“direct”,recl=“整型表達(dá)式整型表達(dá)式” recl:規(guī)定記錄的統(tǒng)一
28、長度。規(guī)定記錄的統(tǒng)一長度。 直接文件的每個(gè)記錄必須相同,否則難以實(shí)施直接直接文件的每個(gè)記錄必須相同,否則難以實(shí)施直接存取。存取。30例:有格式直接文件例:有格式直接文件open語句的最簡(jiǎn)形式語句的最簡(jiǎn)形式open(2,file=a.dat,access=direct,& form=formatted,recl=12) recl:規(guī)定記錄的統(tǒng)一長度規(guī)定記錄的統(tǒng)一長度31在讀寫語句中通過指明記錄號(hào),就可直接存取該記錄在讀寫語句中通過指明記錄號(hào),就可直接存取該記錄內(nèi)的數(shù)據(jù),而不必從文件的開頭依次去讀寫。內(nèi)的數(shù)據(jù),而不必從文件的開頭依次去讀寫。例:例: read(unit=1,fmt=(i3,
29、a),rec=12)n,stringwrite(fmt=(i3,a),unit=1,rec=12)n,string3210.5 inquire語句 該語句又稱查詢語句。按功能分為三種:該語句又稱查詢語句。按功能分為三種:按文件號(hào)查詢,按文件號(hào)查詢,按文件名查詢和按長度查詢。按文件名查詢和按長度查詢。 inquire(1,exist=e,name=n) inquire(file=stud.dat,opened=opd,& access=ace,number=nr) inquire(iolength=l)a(1:n) 其功能是查詢輸出表的長度,一般用在建立無格式直接其功能是查詢輸出表的長度
30、,一般用在建立無格式直接存取文件之前。查詢的結(jié)果作為記錄長度(存取文件之前。查詢的結(jié)果作為記錄長度(recl說明符使說明符使用)。用)。3310.6 10.6 無格式文件無格式文件 無格式文件中的數(shù)據(jù)采用與內(nèi)存中數(shù)據(jù)同樣的存儲(chǔ)方無格式文件中的數(shù)據(jù)采用與內(nèi)存中數(shù)據(jù)同樣的存儲(chǔ)方式,即式,即采用二進(jìn)制內(nèi)碼進(jìn)行存放數(shù)據(jù)采用二進(jìn)制內(nèi)碼進(jìn)行存放數(shù)據(jù)(占占4個(gè)字節(jié)個(gè)字節(jié))。如:如:654321:00000000000010011111101111110001 系統(tǒng)讀寫文件時(shí)不需要進(jìn)行格式轉(zhuǎn)換,加快了數(shù)據(jù)存系統(tǒng)讀寫文件時(shí)不需要進(jìn)行格式轉(zhuǎn)換,加快了數(shù)據(jù)存取速度、也節(jié)省了大量的外存空間。取速度、也節(jié)省了大量的外存
31、空間。 但在操作系統(tǒng)環(huán)境下無法看懂其中的內(nèi)容。但在操作系統(tǒng)環(huán)境下無法看懂其中的內(nèi)容。34練習(xí)練習(xí)1 1:fortran文件系統(tǒng)中標(biāo)準(zhǔn)輸入文件指鍵盤、標(biāo)文件系統(tǒng)中標(biāo)準(zhǔn)輸入文件指鍵盤、標(biāo)準(zhǔn)輸出文件指屏幕,以下敘述中錯(cuò)誤的是:準(zhǔn)輸出文件指屏幕,以下敘述中錯(cuò)誤的是:a.標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件以及磁盤文件均可按有格標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件以及磁盤文件均可按有格式、順序方式讀寫式、順序方式讀寫b.標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件以及磁盤文件均可按有格標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件以及磁盤文件均可按有格式、直接方式讀寫式、直接方式讀寫c.磁盤文件才可按有格式、直接方式讀寫,而標(biāo)準(zhǔn)輸入文磁盤文件才可按有格式、直接
32、方式讀寫,而標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件不可以件、標(biāo)準(zhǔn)輸出文件不可以d.磁盤文件才可按無格式、順序方式讀寫,而標(biāo)準(zhǔn)輸入文磁盤文件才可按無格式、順序方式讀寫,而標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件不可以件、標(biāo)準(zhǔn)輸出文件不可以35練習(xí)練習(xí)2 2:以下帶有控制信息表的讀寫語句中,錯(cuò)誤的是以下帶有控制信息表的讀寫語句中,錯(cuò)誤的是(p260)a. read(fmt=*,unit=2,iostat=ios)a,b,c,i,j,kb. read(unit=2,fmt=(3a6,3i4),rec=number)a,b,c,i,j,kc. write(unit=*,fmt=(3a6,3i4),rec=number)a,b,
33、c,i,j,kd. write(iostat=ios,unit=3,rec=number)a,b,c,i,j,k36練習(xí)練習(xí)3 3:若用若用open語句打開直接存取有格式(語句打開直接存取有格式(1號(hào))文件,號(hào))文件,那么以下讀寫語句中,錯(cuò)誤的是:(那么以下讀寫語句中,錯(cuò)誤的是:(p267)a. read(unit=1,fmt=(i3,a),rec=12)n,stringb. write(unit=1,fmt=(i3,a),recl=12)n,stringc. read(unit=1,rec=12,fmt=(i3,a)n,stringd. write(fmt=(i3,a),unit=1,rec
34、=12)n,string【題目】【題目】函數(shù)函數(shù)f(x,c)的展開式如下的展開式如下(2009年春 01)將上式右端編寫成外部過程。當(dāng)級(jí)數(shù)通項(xiàng)的絕對(duì)值小于將上式右端編寫成外部過程。當(dāng)級(jí)數(shù)通項(xiàng)的絕對(duì)值小于eps(eps=1e-10)時(shí)停止計(jì)算。在同一行上,)時(shí)停止計(jì)算。在同一行上,x和和c用用f6.2格式輸出,格式輸出,計(jì)算所得的用計(jì)算所得的用f9.5格式輸出。計(jì)算所用的數(shù)據(jù)存放在文件格式輸出。計(jì)算所用的數(shù)據(jù)存放在文件myf2.dat中,中,從該文件輸入的從該文件輸入的x、c的值分別為:的值分別為:0.85, 6.75; 1.62, 7.88; 3.27, 4.44; 4.44, 7.895.28, 9.87; 6.11, 8.46; 7.80, 21.5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 防溺水安全應(yīng)急預(yù)案
- 三人共同創(chuàng)業(yè)店鋪股權(quán)分配合同2025
- 專利實(shí)施許可合同備案示范合同
- KTV股東合作合同模板
- 上海市新車買賣合同標(biāo)準(zhǔn)模版
- 產(chǎn)品采購合同質(zhì)量保證協(xié)議書
- 個(gè)人與個(gè)人借款合同范例
- 個(gè)人購房正式合同樣本
- 標(biāo)準(zhǔn)借款合同
- 個(gè)人與銀行借款合同典范模板
- 改革開放前后家鄉(xiāng)的變化教學(xué)課件
- 一年級(jí)的成長歷程
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 正月十五元宵節(jié)介紹課件
- 病毒性肺炎疾病演示課件
- 中考英語語法填空專項(xiàng)練習(xí)附答案(已排版-可直接打印)
- 口腔醫(yī)學(xué)中的人工智能應(yīng)用培訓(xùn)課件
- 軟星酒店網(wǎng)絡(luò)規(guī)劃與設(shè)計(jì)
- 自然辯證法概論(新)課件
- 基層醫(yī)療機(jī)構(gòu)基本情況調(diào)查報(bào)告
- 六西格瑪(6Sigma)詳解及實(shí)際案例分析
評(píng)論
0/150
提交評(píng)論