Sunteți pe pagina 1din 5

Algoritmi !i programe de prelucrare a fi!

ierelor
1. CARACTERISTICI GENERALE ALE ALGORITMILOR DE PRELUCRARE A
FI!IERELOR
Organizarea datelor n fi!iere memorate pe medii magnetice externe presupune proiectarea
unor algoritmi specifici opera"iilor de gestiune a acestora, denumi"i generic algoritmi de prelucrare a
fi!ierelor de date. Datorit# complexit#"ii aplica"iilor care prelucreaz# fi!iere este recomandat#
aplicarea metodei modulariz#rii algoritmilor !i programelor. Modularizarea presupune ca, pe baza
analizei problemei, s# se descompun# rezolvarea ei n p#r"i distincte, numite module, astfel nct
fiecare dintre acestea s# ndeplinieasc# anumite func"ii. Descompunerea se poate realiza n mai
multe faze (pe mai multe niveluri), prin metoda top-down. Criteriile de descompunere n module
depind, n mare m#sur#, de experien"a programatorilor. Ele se refer#, n principal, la: omogenizarea
func"iilor; utilizarea diverselor structuri de date; separarea func"iilor de intrare/ie!ire de func"iile de
prelucrare; utilizarea unor module deja existente; utilizarea eficient# a resurselor calculatorului
(timp UC, memorie intern#, periferie) etc. Modulele se implementeaz# n program prin proceduri
interne sau externe.
De cele mai multe, ori o aplica"ie necesit# existen"a mai multor fi!iere active simultan, cu rol
diferit (de intrare, de ie!ire, de intrare/ie!ire). Indiferent de num#rul fi!ierelor utilizate, n marea
majoritate a algoritmilor, logica prelucr#rii este coordonat#, la un moment dat, de un singur fi!ier,
obligatoriu de intrare, parcurs secven"ial, numit fi!ier conduc"tor (sau director). Fi!ierul conduc#tor
are proprietatea c# articolele lui pot fi citite logic independent de prelucrarea altor fi!iere. Altfel
spus, un fi!ier nu este conduc#tor dac# prelucrarea articolelor sale este dependent# de existen"a (de
citirea) articolului altui fi!ier. Accesul la datele memorate n fi!ierul conduc#tor se realizeaz# la
nivel de articol. De aceea, algoritmii de prelucrare, indiferent de opera"ia de gestiune, necesit#
utilizarea unei structuri repetitive pentru parcurgerea (par"ial# sau integral#) a fi!ierului respectiv.
Algoritmii de prelucrare cu fi!ier conduc#tor pot fi reprezenta"i prin schema logic#
generalizat#, conceput# modularizat, redat# n figura $.$.
START
STOP
NCEPUT
SFR%IT
PRELUCRARE
NOT
(sfr!it_de
_ prelu-
crare)
Nu
Da
Fig. 1.1. Schema logic# general# a unui algoritm
de prelucrare cu fi!ier conduc#tor
Modulul NCEPUT se realizeaz# o singur# dat#, naintea prelucr#rii primului articol al
fi!ierului conduc#tor !i cuprinde urm#toarele grupe de opera"ii:
Opera#ii ini#iale standard, obligatorii oric#rui algoritm !i care includ: asignarea fi!ierelor
logice la fi!iere fizice, deschiderea fi!ierelor, !i, pentru anumite variante, ini"ializarea unei variabile
boolene pentru sfr!it de fi!ier (SF) !i citirea primului articol.
Opera#ii ini#iale specifice, facultative, existen"a lor depinznd de particularit#"ile problemei
abordate !i care includ, n principal: ini"ializ#ri de variabile de total, afi!#ri ale antetului, titlului
!i/sau a capului de tabel pentru situa"ii de ie!ire etc.
Algoritmi !i programe de prelucrare a fi!ierelor
Modulul PRELUCRARE se execut# repetitiv !i cuprinde, pe de o parte, totalitatea
opera"iilor de prelucrare a articolului curent al fi!ierului conduc#tor - opera"ii specifice fiec#rei
probleme - !i, pe de alt# parte, citirea unui articol din fi!ierul conduc#tor. Ordinea celor dou#
opera"ii (citire !i prelucrare) depinde de varianta de algoritm aleas#.
Modulul SFR!IT se execut# o singur# dat#, dup# prelucrarea ultimului articol al
fi!ierului conduc#tor !i include urm#toarele grupe de opera"ii: opera#ii finale standard,
corespunznd nchiderii fi!ierelor implicate n prelucrare; opera#ii finale specifice, care depind de
natura problemei !i includ, de regul#: afi!area variabilelor de total, a statisticilor privind opera"iile
de gestiune executate, nchiderea situa"iilor de ie!ire etc.
Modalitatea de detectare/tratare a sfr!itului de fi!ier conduce la existen"a mai multor
variante ale schemei generale de prelucrare cu fi!ier conduc#tor, prin forme particulare ale condi"iei
sfr!it_de_prelucrare. n func"ie de variantele alese, se pot construi scheme logice valabile pentru
toate tipurile de fi!iere sau numai pentru fi!ierele binare.
Scheme valabile pentru toate tipurile de fi"iere
Detectarea sfr!itului de fi!ier independent de opera#ia de citire, cu func"ia standard Eof,
caz n care testarea sfr!itului de fi!ier trebuie s# precead# citirea unui articol. Dac# condi"ia de
sfr!it de prelucrare este testul asupra variabilei boolene SF, algoritmul va prevedea o citire ini"ial#
n modulul NCEPUT !i o citire curent# la sfr!itul modulului PRELUCRARE - varianta $ (figura
$.2).
START
Opera"ii
ini"iale
STOP
Opera"ii
finale
Nu
Prelucrare
articol
Da
Fig. 1.2. Schema logic# - varianta $
SF=0
SF=$
Da
EOF(f)
Nu
Cite!te
articol
SF=$
Da
EOF(f)
Nu
Cite!te
articol
Varianta se poate aplica fi!ierelor vide sau nevide. Cnd condi"ia de sfr!it de prelucrare
este chiar expresia (func"ia) Eof(f), algoritmul va include doar citirea curent# n debutul modului
Algoritmi !i programe de prelucrare a fi!ierelor
PRELUCRARE - variantele 2 !i 3 (figura $.3). Varianta 3 necesit# existen"a cel pu"in a unui articol
(fi!ier conduc#tor nevid).
Scheme logice valabile numai pentru fi"iere binare
Detectarea sfr!itului de fi!ier prin opera#ia de citire, caz n care se genereaz# eroare !i se
ntrerupe execu"ia programului.
ntreruperea programului se poate inhiba cu directive de compilare {$I-}, iar eroarea de
intrare/ie!ire se poate detecta cu func"ia standard IOResult.
STOP
Opera"ii
finale
Nu
Prelucrare
articol
Da
Fig. 1.3. Schema logic# - variantele 2 !i 3
START
Opera"ii
ini"iale
Cite!te
articol
START
Opera"ii
ini"iale
EOF(f)
Prelucrare
articol
Da
Cite!te
articol
STOP
Opera"ii
finale
Nu
a)
EOF(f)
b)
Algoritmul de prelucrare prevede o citire ini"ial# n modulul NCEPUT !i citirea curent# n
finalul modulului PRELUCRARE. Testul de sfr!it al prelucr#rii poate fi constituit de ns#!i func"ia
IOResult - varianta 4 (figura $.4), sau de variabila boolean# SF, pozi"ionat# la citirea marcatorului
de sfr!it de fi!ier - varianta 5 (figura $.5).
n ambele variante fi!ierul conduc#tor este binar, vid sau nevid. n cazul n care fi!ierul este
nevid (are cel pu"in un articol), citirea ini"ial# poate s# nu fie ncadrat# de directivele de compilare
{$I-} !i {$I+}.
Algoritmi !i programe de prelucrare a fi!ierelor
START
Opera"ii
ini"iale
IOResult=0
STOP
Opera"ii
finale
Nu
Prelucrare
articol
Da
Fig. 1.4. Schema logic# - varianta 4
Cite!te
articol
Cite!te
articol
{$I+}
{$I+} {$I-}
{$I-}
Prelucrarea unui num"r cunoscut de articole, prin determinarea n modulul NCEPUT a
num#rului de articole din fi!ierul conduc#tor, cu func"ia FileSize. Structura repetitiv# de prelucrare
devine o structur# DO-FOR (varianta 6 - figura $.6).
Fi!ierele utilizate ntr-o aplica"ie informatic# au rol diferit n procesul prelucr#rii, n func"ie
de scopul lor: de intrare, de ie!ire, de intrare/ie!ire, temporare, de tip list# etc. Aceste caracteristici
conduc la algoritmi specifici fiec#rei opera"ii de gestiune n parte (creare, populare, consultare !i
actualizare), fiind ns# variante derivate din schema general# a unui algoritm de prelucrare cu fi!ier
conduc#tor.
Deoarece aplica"iile informatice din domeniul economic, social, administrativ etc. utilizeaz#,
cu predilec"ie, fi!iere cu articole de aceea!i structur# (sau un num#r mic de structuri diferite),
alegnd limbajul Pascal, se poate aprecia c# cele mai performante sunt fi!ierele binare (cu tip sau
f#r# tip), ale c#ror articole sunt date declarate de tip RECORD.
START
Opera"ii
ini"iale
Cite!te
articol
IOResult 0
'Fi!ier vid'
IOResult0
STOP
Opera"ii
finale
Nu
Prelucrare
articol
Da
Fig. 1.5. Schema logic# - varianta 5
Cite!te
articol
{$I+} {$I-}
SF=0
SF=$
Da Nu
SF=$
Da Nu
{$I+} {$I-}
Algoritmi !i programe de prelucrare a fi!ierelor
S T A R T
O p e r a " i i
i n i " i a l e
F i g . 1 . 6 . S c h e m a l o g i c # - v a r i a n t a 6
n = F i l e S i z e ( f )
i = $
i n
P r e l u c r a r e
a r t i c o l
D a
C i t e ! t e
a r t i c o l
S T O P
O p e r a " i i
f i n a l e
N u
i = i + $
Aceast# alegere este motivat# din urm#toarele puncte de vedere:
descrierea articolelor este apropiat# att descrierii naturale a structurii unei entit#"i din
lumea real# (format# din cmpuri cu nume, lungime, reprezentare intern# proprie, semnifica"ie !i
factor de repetabilitate diferite), ct !i descrierii din alte limbaje;
exist# posibilitatea de a descrie explicit mai multe structuri pentru articolele aceluia!i fi!ier
(articole cu structur# variabil#);
opera"iile de acces la nregistr#ri se realizeaz# cu vitez# mare, datorit# lipsei conversiilor la
transferul ntre memoria principal# !i memoria extern#.
Fi!ierele de tip TEXT sunt recomandate a fi utilizate ca fi!iere de ie!ire, pentru realizarea de
liste, situa"ii finale, rapoarte etc., fiind rezidente pe disc, n general, pn# la listarea lor la
imprimant#
Fi!ierele de tip TEXT pot constitui !i sursa de creare a fi!ierelor binare, dac# acestea au fost
populate cu date, fie prin editoare de texte, fie prin alte limbaje (COBOL, FORTRAN, C, BASIC),
sisteme de gestiune a bazelor de date (DBASE, FOXPRO etc.), constituind unicul mijloc de
compatibilitate direct#.

S-ar putea să vă placă și