Добро пожаловать,

�аши партнеры
Книги-online
Ëàáîðàòîðíàÿ ðàáîòà 9
Ëàáîðàòîðíàÿ ðàáîòà 9
Ðàáîòà ñ ôàéëàìè
Öåëü ðàáîòû: ïîçíàêîìèòü ñ ïîíÿòèåì ôàéëîâîãî òèïà äàííûõ (òèïèçèðîâàííûå, òåêñòîâûå è íåòèïèçèðîâàííûå ôàéëû); âûðàáîòàòü íàâûêè ðàáîòû ñ ôàéëîâûì òèïîì äàííûõ â ÿçûêå ïðîãðàììèðîâàíèÿ Pascal. íàó÷èòüñÿ ñ÷èòûâàòü èíôîðìàöèþ èç ôàéëîâ, çàïèñûâàòü èíôîðìàöèþ â ôàéë; íàó÷èòñÿ ðåøàòü çàäà÷è ñ èñïîëüçîâàíèåì ôàéëîâ
Îáùèå ñâåäåíèÿ
Ôàéë ïðåäñòàâëÿåò ñîáîé ñòðóêòóðèðîâàííûé òèï äàííûõ, ñîäåðæàùèé ïîñëåäîâàòåëüíîñòü êîìïîíåíòîâ îäíîãî òèïà è îäíîé äëèíû. ×èñëî ýëåìåíòîâ â ôàéëå (äëèíà ôàéëà) íå ôèêñèðîâàíî. Ýòî ÿâëÿåòñÿ îñíîâíûì îòëè÷èåì ôàéëà îò ìàññèâà.
Ôàéë ìîæíî ïðåäñòàâèòü êàê ëåíòó, ó êîòîðîé åñòü íà÷àëî, à êîíåö íå ôèêñèðîâàí. Ýëåìåíòû ôàéëà çàïèñûâàþòñÿ íà ýòó ëåíòó ïîñëåäîâàòåëüíî, äðóã çà äðóãîì ñ ïîìîùüþ íåêîòîðîãî óñòðîéñòâà - óêàçàòåëÿ ôàéëà. Ïðè ÷òåíèè èëè çàïèñè ýòîò óêàçàòåëü ïåðåìåùàåòñÿ ê ñëåäóþùåìó ýëåìåíòó è äåëàåò åãî äîñòóïíûì äëÿ îáðàáîòêè.  êàæäûé ìîìåíò äîñòóïåí äëÿ ÷òåíèÿ èëè çàïèñè òîëüêî òîò ýëåìåíò ôàéëà, íà êîòîðûé óñòàíîâëåí óêàçàòåëü.
Ïðèìåð
Ïðèìåð1. Ïåðåïèñàòü èç òåêñòîâîãî ôàéëà f â ôàéë g ñòðîêè â ïåðåâåðíóòîì âèäå, ïîðÿäîê ñòðîê ä.á. îáðàòíûì.
Ýòàïû ðåøåíèÿ çàäà÷è:
Áóäåì ñ÷èòûâàòü ôàéë f ïîñòðî÷íî è ïåðåâåðòûâàÿ ñòðîêè áóäåì çàïèñûâàòü èõ â ìàññèâ, äàëåå ñîçäàäèì ôàéë è çàïîëíèì åãî ñòðîêàìè èç ìàññèâà ìåíÿÿ ïîðÿäîê ñòðîê íà îáðàòíûé.
Ñîñòàâèì áëîê -ñõåìó ïðîãðàììû.
Ñîäåðæèìîå ñàìèõ áëîêîâ íå äîëæíî âûçâàòü áîëüøèõ çàòðóäíåíèé â ñìûñëîâîì ïîíèìàíèè, ãëàâíîå çäåñü ýòî - òåõíè÷åñêàÿ ðåàëèçàöèè íà ÿçûêå Ïàñêàëü, ïîýòîìó çàïèøåì ðåàëèçàöèè êàæäîãî áëîêà íà Ïàñêàëå.
à) "Ñ÷èòûâàåì ñòðîêè èç ôàéëà F"
assign (f,'input.dat');
reset (f);
while not eof (f) do
begin readln (f,st);
end;
á) "Ïåðåâîðà÷èâàåì ñòðîêè è çàïèñûâàåì èõ â ìàññèâ"
st1:='';
for i:= 1 to length (st) do
st1:= st[i]+st1;
m[k]:=st1;
k:=k+1;
â) "Çàïèñûâàåì â ôàéë g"
assign (g,'output.dat');
rewrite (g);
for i:= 1 to k do writeln (g,m[i]);
3. Ïðîãðàììà öåëèêîì
program example;
var
f,g:text;
m:array[1..100] of string;
k,i:integer;
begin
assign (f,'input.dat');
reset (f);
k:=0;
while not eof (f) do
begin readln (f,st);
k:=k+1;
st1:='';
for i:= 1 to length (st) do st1:= st[i]+st1;
m[k]:=st1;
end;
assign (g,'output.dat');
rewrite (g);
for i:= 1 to k do writeln (g,m[i]);
end.
Êîíòðîëüíûå âîïðîñû
×òî òàêîå ôàéë? Êàêèå ñóùåñòâóþò âèäû ôàéëîâ?
Êàêèìè ñòàíäàðòíûìè ïðîöåäóðàìè è ôóíêöèÿìè ðàñïîëàãàåò Borland Pascal äëÿ ðàáîòû ñ ôàéëàìè?
Êàêîâî äîëæíî áûòü ñîäåðæàíèå ïðîãðàììû ïî ñîçäàíèþ ôàéëà è åãî êîððåêòèðîâêè (çàìåíà ýëåìåíòîâ, äîáàâëåíèå ýëåìåíòîâ, óäàëåíèå ýëåìåíòîâ)?
Êàêîâû îñîáåííîñòè ðàáîòû ñ òåêñòîâûìè ôàéëàìè?
Êàêîâû îñîáåííîñòè ðàáîòû ñ òèïèçèðîâàííûìè ôàéëàìè?
Êàê ïîäñ÷èòàòü ÷èñëî ñòðîê â òåêñòîâîì ôàéëå?
Çàäàíèÿ
Ðàáîòà ñ òåêñòîâûìè ôàéëàìè:
Äàíû òåêñòîâûå ôàéëû f1 è f2. Ïåðåïèñàòü ñ ñîõðàíåíèåì ïîðÿäêà ñëåäîâàíèÿ êîìïîíåíòû ôàéëà f1 â ôàéë f2, à êîìïîíåíòû ôàéëà f2 â ôàéë f1. Èñïîëüçîâàòü âñïîìîãàòåëüíûé ôàéë h.
Äàí òåêñòîâûé ôàéë f. Çàïèñàòü â ôàéë g êîìïîíåíòû ôàéëà f â îáðàòíîì ïîðÿäêå.
Äàíû òåêñòîâûå ôàéëû f è g. Çàïèñàòü â ôàéë h ñíà÷àëà êîìïîíåíòû ôàéëà f, çàòåì - êîìïîíåíòû ôàéëà g ñ ñîõðàíåíèåì ïîðÿäêà.
Äàí ôàéë f, êîìïîíåíòû êîòîðîãî ÿâëÿþòñÿ öåëûìè ÷èñëàìè. Ïîëó÷èòü â ôàéëå g âñå êîìïîíåíòû ôàéëà f: à) ÿâëÿþùèìèñÿ ÷åòíûìè ÷èñëàìè; á) äåëÿùèåñÿ íà 3 è íå äåëÿùèåñÿ íà 7; â) ÿâëÿþùèìèñÿ òî÷íûìè êâàäðàòàìè.
Äàí ôàéë f, êîìïîíåíòû êîòîðîãî ÿâëÿþòñÿ öåëûìè ÷èñëàìè. Ïîëó÷èòü ôàéë g, îáðàçîâàííûé èç ôàéëà f èñêëþ÷åíèåì ïîâòîðíûõ âõîæäåíèé îäíîãî è òîãî æå ÷èñëà.
Äàí ôàéë f, êîìïîíåíòû êîòîðîãî ÿâëÿþòñÿ öåëûìè ÷èñëàìè. Íèêàêàÿ èç êîìïîíåíò ôàéëà íå ðàâíà íóëþ. Ôàéë f ñîäåðæèò ñòîëüêî æå îòðèöàòåëüíûõ ÷èñåë, ñêîëüêî è ïîëîæèòåëüíûõ. Èñïîëüçóÿ âñïîìîãàòåëüíûé ôàéë h, ïåðåïèñàòü êîìïîíåíòû ôàéëà f â ôàéë g òàê, ÷òîáû â ôàéëå g:
a) íå áûëî äâóõ ñîñåäíèõ ÷èñåë ñ îäèíàêîâûì çíàêîì;
b) âíà÷àëå øëè ïîëîæèòåëüíûå, çàòåì îòðèöàòåëüíûå ÷èñëà;
c) ÷èñëà øëè â ñëåäóþùåì ïîðÿäêå: äâà ïîëîæèòåëüíûõ, äâà îòðèöàòåëüíûõ, äâà ïîëîæèòåëüíûõ, äâà îòðèöàòåëüíûõ è ò.ä. (ïðåäïîëàãàåòñÿ, ÷òî ÷èñëî êîìïîíåíò â ôàéëå f äåëèòñÿ íà 4).
Äàí ôàéë f, êîìïîíåíòû êîòîðîãî ÿâëÿþòñÿ öåëûìè ÷èñëàìè. Íèêàêàÿ èç êîìïîíåíò ôàéëà íå ðàâíà íóëþ. ×èñëà â ôàéëå èäóò â ñëåäóþùåì ïîðÿäêå: äåñÿòü ïîëîæèòåëüíûõ, äåñÿòü îòðèöàòåëüíûõ, äåñÿòü ïîëîæèòåëüíûõ, äåñÿòü îòðèöàòåëüíûõ è ò.ä. Ïåðåïèñàòü êîìïîíåíòû ôàéëà f â ôàéë g òàê, ÷òîáû â ôàéëå g ÷èñëà øëè â ñëåäóþùåì ïîðÿäêå: à) ïÿòü ïîëîæèòåëüíûõ, ïÿòü îòðèöàòåëüíûõ, ïÿòü ïîëîæèòåëüíûõ, ïÿòü îòðèöàòåëüíûõ è ò.ä.; á) äâàäöàòü ïîëîæèòåëüíûõ, äâàäöàòü îòðèöàòåëüíûõ, äâàäöàòü ïîëîæèòåëüíûõ, äâàäöàòü îòðèöàòåëüíûõ è ò.ä. (ïðåäïîëàãàåòñÿ, ÷òî ÷èñëî êîìïîíåíò â ôàéëå f äåëèòñÿ íà 40).
Äàí ôàéë f, êîìïîíåíòû êîòîðîãî ÿâëÿþòñÿ öåëûìè ÷èñëàìè. Çàïèñàòü â ôàéë g íàèáîëüøåå çíà÷åíèå ïåðâûõ ïÿòè êîìïîíåíò ôàéëà f, çàòåì - ñëåäóþùèõ ïÿòè êîìïîíåíò è ò.ä. Åñëè â ïîñëåäíåé ãðóïïå îêàæåòñÿ ìåíåå ïÿòè êîìïîíåíò, òî ïîñëåäíÿÿ êîìïîíåíòà ôàéëà g äîëæíà áûòü ðàâíà íàèáîëüøåé èç êîìïîíåíò ôàéëà f, îáðàçóþùèõ ïîñëåäíþþ (íåïîëíóþ) ãðóïïó.
Äàí ñèìâîëüíûé ôàéë f: à) ïîäñ÷èòàòü ÷èñëî âõîæäåíèé â ôàéë ñî÷åòàíèé 'ab'; á) îïðåäåëèòü âõîäèò ëè â ôàéë ñî÷åòàíèå 'abcdefgh'; â) ïîäñ÷èòàòü ÷èñëî âõîæäåíèé â ôàéë êàæäîé èç áóêâ 'a','b','c','d', 'e','f' è âûâåñòè ðåçóëüòàò â âèäå òàáëèöû
a --> Na b --> Nb c --> Nc
d --> Nd e --> Ne f --> Nf
ãäå Na, Nb, Nc, Nd, Ne, Nf - ÷èñëà âõîæäåíèé ñîîòâåòñòâóþùèõ áóêâ.
Äàí ñèìâîëüíûé ôàéë f. Ãðóïïû ñèìâîëîâ, ðàçäåëåííûå ïðîáåëàìè (îäíèì èëè íåñêîëüêèìè) è íå ñîäåðæàùèå ïðîáåëîâ âíóòðè ñåáÿ, áóäåì íàçûâàòü ñëîâàìè. Óäàëèòü èç ôàéëà âñå îäíîáóêâåííûå ñëîâà è ëèøíèå ïðîáåëû. Ðåçóëüòàò çàïèñàòü â ôàéë g.
Òèïèçèðîâàííûå ôàéëû
Áàãàæ ïàññàæèðà õàðàêòåðèçóåòñÿ êîëè÷åñòâîì âåùåé è îáùèì âåñîì âåùåé. Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ î áàãàæå íåñêîëüêèõ ïàññàæèðîâ. Ñâåäåíèÿ î áàãàæå êàæäîãî ïàññàæèðà ïðåäñòàâëÿþò ñîáîé çàïèñü ñ äâóìÿ ïîëÿìè: îäíî ïîëå öåëîãî òèïà (êîëè÷åñòâî âåùåé) è îäíî - äåéñòâèòåëüíîå (âåñ â êèëîãðàììàõ).
a) Íàéòè áàãàæ, ñðåäíèé âåñ îäíîé âåùè â êîòîðîì îòëè÷àåòñÿ íå áîëåå, ÷åì íà 0.3 êã îò îáùåãî ñðåäíåãî âåñà îäíîé âåùè.
b) Íàéòè ÷èñëî ïàññàæèðîâ, èìåþùèõ áîëåå äâóõ âåùåé è ÷èñëî ïàññàæèðîâ, êîëè÷åñòâî âåùåé êîòîðûõ ïðåâîñõîäèò ñðåäíåå ÷èñëî âåùåé.
c) Îïðåäåëèòü, èìåþòñÿ ëè äâà ïàññàæèðà, áàãàæè êîòîðûõ ñîâïàäàþò ïî ÷èñëó âåùåé è ðàçëè÷àþòñÿ ïî âåñó íå áîëåå ÷åì íà 0,5 êã.
d) Âûÿñíèòü, èìååòñÿ ëè ïàññàæèð, áàãàæ êîòîðîãî ïðåâûøàåò áàãàæ êàæäîãî èç îñòàëüíûõ ïàññàæèðîâ è ïî ÷èñëó âåùåé, è ïî âåñó.
e) Âûÿñíèòü, èìååòñÿ ëè ïàññàæèð, áàãàæ êîòîðîãî ñîñòîèò èç îäíîé âåùè âåñîì ìåíåå 30 êã.
Ïðÿìàÿ íà ïëîñêîñòè çàäàåòñÿ óðàâíåíèåì ax+by+c=0, ãäå a è b îäíîâðåìåííî íå ðàâíû íóëþ. Áóäåì ðàññìàòðèâàòü òîëüêî ïðÿìûå, äëÿ êîòîðûõ êîýôôèöèåíòû a,b,c - öåëûå ÷èñëà. Ïóñòü f - ôàéë, ñîäåðæàùèé êîýôôèöèåíòû íåñêîëüêèõ ïðÿìûõ (íå ìåíåå òðåõ). Ïåðåïèñàòü èç ôàéëà f â ôàéë g êîýôôèöèåíòû òåõ ïðÿìûõ, êîòîðûå:
a) ïàðàëëåëüíû ïåðâîé èç ïðÿìûõ, çàäàííîé â ôàéëå f;
b) óêàçàíû â ïóíêòå à), íî äîïîëíèòåëüíî òðåáóåòñÿ, ÷òîáû âñå ïðÿìûå áûëè ðàçëè÷íû;
c) ïåðåñåêàþò ïåðâóþ èç ïðÿìûõ, çàäàííûõ â ôàéëå f;
d) óêàçàíû â ïóíêòå b), íî äîïîëíèòåëüíî òðåáóåòñÿ, ÷òîáû ñðåäè ïðÿìûõ íå áûëî ïàðàëëåëüíûõ.
Óñëîâèå ïðåäûäóùåé çàäà÷è ñîõðàíÿåòñÿ. Òðåáóåòñÿ ïîëó÷èòü â ôàéëå g êîýôôèöèåíòû âñåõ ðàçëè÷íûõ ïðÿìûõ ôàéëà f.
Ñâåäåíèÿ îá ó÷åíèêå ñîñòîÿò èç åãî èìåíè è ôàìèëèè è íàçâàíèÿ êëàññà (ãîäà îáó÷åíèÿ è áóêâû), â êîòîðîì îí ó÷èòñÿ. Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ îá ó÷åíèêàõ øêîëû:
a) âûÿñíèòü, èìåþòñÿ ëè â øêîëå îäíîôàìèëüöû;
b) âûÿñíèòü, èìåþòñÿ ëè îäíîôàìèëüöû â êàêèõ-ëèáî ïàðàëëåëüíûõ êëàññàõ;
c) âûÿñíèòü, èìåþòñÿ ëè îäíîôàìèëüöû â êàêîì-íèáóäü êëàññå;
d) îòâåòèòü íà âîïðîñû à)-â), íî â îòíîøåíèè ó÷åíèêîâ, ó êîòîðûõ ñîâïàäàþò è èìÿ, è ôàìèëèÿ;
e) âûÿñíèòü, â êàêèõ êëàññàõ íàñ÷èòûâàåòñÿ áîëåå 35 ó÷àùèõñÿ;
f) âûÿñíèòü íà ñêîëüêî ÷åëîâåê â âîñüìûõ êëàññàõ áîëüøå, ÷åì â äåñÿòûõ;
g) ñîáðàòü â ôàéëå g ñâåäåíèÿ îá ó÷åíèêàõ 9-õ è 10-õ êëàññîâ, ïîìåñòèâ âíà÷àëå ñâåäåíèÿ îá ó÷åíèêàõ êëàññà 9à, çàòåì 9á è ò.ä., çàòåì 10à, 10á è ò.ä.
Äàí ôàéë f, ñîäåðæàùèé òå æå ñâåäåíèÿ îá ó÷åíèêàõ, ÷òî è â ïðåäûäóùåé çàäà÷å, è äîïîëíèòåëüíî îòìåòêè, ïîëó÷åííûå ó÷åíèêàìè â ïîñëåäíåé ÷åòâåðòè.
a) âûÿñíèòü, ñêîëüêî ó÷åíèêîâ øêîëû íå èìåþò îòìåòîê íèæå ÷åòûðåõ;
b) ñîáðàòü â ôàéëå g ñâåäåíèÿ î ëó÷øèõ ó÷åíèêàõ øêîëû, ò.å. îá ó÷åíèêàõ, íå èìåþùèõ îòìåòîê íèæå ÷åòûðåõ è ïî ñóììå áàëëîâ íå óñòóïàþùèõ äðóãèì ó÷åíèêàì ñâîåãî è ïàðàëëåëüíûõ êëàññîâ.
Ñâåäåíèÿ îá àâòîìîáèëå ñîñòîÿò èç åãî ìàðêè, íîìåðà è ôàìèëèè âëàäåëüöà. Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ î íåñêîëüêèõ àâòîìîáèëÿõ. Íàéòè: à) ôàìèëèè âëàäåëüöåâ è íîìåðà àâòîìîáèëåé äàííîé ìàðêè; á) êîëè÷åñòâî àâòîìîáèëåé êàæäîé ìàðêè. Íàéäåííûå äàííûå çàïèñàòü â ôàéë g.
Äàí ôàéë f, ñîäåðæàùèé ðàçëè÷íûå äàòû. Êàæäàÿ äàòà - ýòî ÷èñëî, ìåñÿö è ãîä. Íàéòè: à) ãîä ñ íàèìåíüøèì íîìåðîì; á) âñå âåñåííèå äàòû; â) ñàìóþ ïîçäíþþ äàòó. Íàéäåííûå äàííûå çàïèñàòü â ôàéë g.
Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ î êíèãàõ. Ñâåäåíèÿ î êàæäîé èç êíèã - ýòî ôàìèëèÿ àâòîðà, íàçâàíèå è ãîä èçäàíèÿ. 1) Íàéòè íàçâàíèÿ êíèã äàííîãî àâòîðà, èçäàííûõ ñ 1960 ã. 2) Îïðåäåëèòü, èìååòñÿ ëè êíèãà ñ íàçâàíèåì "Èíôîðìàòèêà". Åñëè äà, òî ñîîáùèòü ôàìèëèþ àâòîðà è ãîä èçäàíèÿ. Åñëè òàêèõ êíèã íåñêîëüêî, òî ñîîáùèòü èìåþùèåñÿ ñâåäåíèÿ îáî âñåõ êíèãàõ.
Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ î êóáèêàõ: ðàçìåð êàæäîãî êóáèêà (äëèíà ðåáðà â ñàíòèìåòðàõ), åãî öâåò (êðàñíûé, çåëåíûé, æåëòûé èëè ñèíèé) è ìàòåðèàë (äåðåâÿííûé, ìåòàëëè÷åñêèé, êàðòîííûé). Íàéòè: à) êîëè÷åñòâî êóáèêîâ êàæäîãî èç ïåðå÷èñëåííûõ öâåòîâ è èõ ñóììàðíûé îáúåì; á) êîëè÷åñòâî äåðåâÿííûõ êóáèêîâ ñ ðåáðîì 3 ñì è êîëè÷åñòâî ìåòàëëè÷åñêèõ êóáèêîâ ñ ðåáðîì, áîëüøèì 5 ñì.
Äàí ôàéë f, ñîäåðæàùèé ñâåäåíèÿ î âåùåñòâàõ: óêàçûâàåòñÿ íàçâàíèå âåùåñòâà, åãî óäåëüíûé âåñ è ïðîâîäèìîñòü (ïðîâîäíèê, ïîëóïðîâîäíèê, èçîëÿòîð). 1) Íàéòè óäåëüíûå âåñà è íàçâàíèÿ âñåõ ïîëóïðîâîäíèêîâ. 2) Âûáðàòü äàííûå î ïðîâîäíèêàõ è óïîðÿäî÷èòü èõ ïî óáûâàíèþ óäåëüíûõ âåñîâ.
Çàäà÷è ïîâûøåííîé ñëîæíîñòè
Íàïèñàòü ïðîãðàììó äëÿ ñæàòèÿ è ðàñïàêîâêè ôàëîâ: à) òåêñòîâîãî, á) òèïèçèðîâàííîãî (file of string), â) íåòèïèçèðîâàííîãî.
Äàí òåêñòîâûé ôàë, ñîäåðæàùèé ïðîãðàììó íà ÿçûêå Ïàñêàëü. Ïðîâåðèòü ýòó ïðîãðàììó íà ñîîòâåòñòâèå ÷èñëà îòêðûâàþùèõñÿ è çàêðûâàþùèõñÿ ñêîáîê (ëþáûõ).
Äàí íåòèïèçèðîâàííûé ôàéë. Çàïèñàòü ôàë "â îáðàòíîì ïîðÿäêå" (ñ èçìåíåíèåì ïîðÿäêà áàéòîâ).
Íàçàä
Íà ãëàâíóþ
Внимание! Е�ли у ва� не получило�ь найти нужную информацию, и�пользуйте
рубрикатор или во�пользуйте�ь
пои�ком .
книги по программированию и�ходники компоненты шаблоны �айтов C++ PHP Delphi �качать