Cum folosim Fişierele în Pascal ?

12
ÎNVĂŢARE PRIN PROIECTE Cum folosim Fişierele în Pascal ? “Să învăţăm inteligent”

description

Cum folosim Fişierele în Pascal ?. învăţare prin p roiecte. “S ă învăţăm inteligent”. Să ne amintim. Care sunt componentele de memorie ale unui calculator ? Care sunt tipurile de memorie intern ă ? Care este principiul de func ţionare al memoriei interne ? - PowerPoint PPT Presentation

Transcript of Cum folosim Fişierele în Pascal ?

Page 1: Cum folosim Fişierele în Pascal  ?

ÎNVĂŢARE PRIN PROIECTE

Cum folosimFişierele în Pascal ?

“Să învăţăm inteligent”

Page 2: Cum folosim Fişierele în Pascal  ?

Să ne amintim

• Care sunt componentele de memorie ale unui calculator ?

• Care sunt tipurile de memorie internă ?

• Care este principiul de funcţionare al memoriei interne ?

• Care este unitatea de alocare a memoriei şi multipli ?

• Care sunt tipurile de memorie externă ?

Page 3: Cum folosim Fişierele în Pascal  ?

Ce este un fişier ?

Un fişier de date este o colecţie de date păstrate pe un suport extern, de exemplu HDD, CD, memorie flash etc. Fişierul reprezintă o structură de date externă, memorată în afara memoriei principale RAM a calculatorului. Un fişier poate să conţină un program executabil sau date (fişier document). În limbajul Pascal pot fi folosite:

- fişiere TEXT- fişiere cu TIP- fişiere generale, fără tip

  Fişiere text în Pascal  Cele mai folosite fişiere în Pascal sunt fişierele TEXT. Aceste fişiere sunt organizate ca şiruri de caractere, scrise pe mai multe linii. Fiecare linie de text are un marcaj de sfârşit de linie, iar la sfârşitul fişierului există un marcaj de sfârşit de fişier. La fel ca în cazul datelor din memoria internă, fişierele pot fi : fişiere de intrare, care conţin date de intrare pentru program şi fişiere de ieşire, care conţin rezultatele programului.Numele unui fişier este de forma Nume.tip, unde tip ne arata dacă fişierul este executabil Nume.exe sau aplicatia folosită pentru prelucrarea fişierului, de ex. Nume.doc, Nume.jpg

Page 4: Cum folosim Fişierele în Pascal  ?

Etapele folosirii unui fişier

Pentru a folosi un fişier text trebuie parcurse etapele:

1. declararea variabilei text f 2. asocierea variabilei f cu un fişier extern 3. deschiderea fişierului dat prin variabila f 4. folosirea fişierului f pentru citire/scriere 5. alte prelucrări asupra fişierului 6. închiderea fişierului f

Page 5: Cum folosim Fişierele în Pascal  ?

Operaţii cu fişiere

1. declararea variabilei fişier, folosind cuvântul rezervat TEXT:var f: TEXT;

2.  asocierea variabilei f unui fişier extern:ASSIGN(f,’nume.tip’);Ex: assign(f,’date.in’);

3.  deschiderea fişierului dat prin variabila f prin una din procedurile:

RESET(f); - deschidere numai pentru citire din fişier, de la începutul fişierului, este folosită pentru fişiere de intrare (READ sau READLN)

 REWRITE(f); deschidere numai pentru scriere în fişier, folosită pentru fişiere de ieşire; creează un fişier vid (WRITE sau WRITELN)

 APPEND(f); deschidere pentru adăugare la sfârşitul fişierului;

Page 6: Cum folosim Fişierele în Pascal  ?

Operaţii cu fişiere

4. Utilizarea fişierului prin:- prin operaţia de citire: READ(f, lista_var); sau READLN(f,lista_var);- prin operaţia de scriere: WRITE(f,lista_var); sau WRITELN(f,lista_var);

- funcţiile de informare:-testul de sfârşit de linie EOLN(f); funcţie booleană Returnează TRUE dacă s-a citit sfârşitul de linie din fişier- testul de sfârşit de fişier EOF(f); funcţie booleană Returnează TRUE dacă s-a citit caracterul sfârşit de fişier (CTRL/Z)

5. Redenumirea unui fişier RENAME(f,’nume_nou.tip’); Ştergerea fizică a fişierului de pe disc ERASE(var f); Trunchierea conţinutului unui fişier TRUNCATE(var f);

6. Închiderea fişierului: CLOSE(f); ATENŢIE: după operaţia de închidere a fişierului nu mai pot fi

apelate operaţiile pentru utilizare în afară de RENAME şi ERASE. 

Page 7: Cum folosim Fişierele în Pascal  ?

Structura fişierelor text

Prelucrarea fişierelor text se poate face, la fel ca în cazul şirurilor de caractere, global – pe linii de text sau caracter cu caracter.

Fişierele text sunt împărţite în linii de text (de tip string), care au un marcaj de sfârşit de linie <EOLN>. La sfârşitul fişierului se afla marcajul <EOF>

La deschiderea fişierului se poziţionează indicatorul de fişier (IF) corespunzător procedurii de deschidere: la început (REWRITE/RESET) sau la sfârşit (APPEND)

Date.txt Prima linie de text <EOLN> A doua linie <EOLN> <CTRL+Z><EOF>

Page 8: Cum folosim Fişierele în Pascal  ?

Exemplu: crearea unui fişier text

program txt1;var   f:text; { declararea variabilei fişier text}      a:string; { linia de text}begin   assign(f,‘date.txt'); { asocierea cu fisierul extern}   rewrite(f); { crearea fisierului - iniţializare fişier vid }   while not eof (input) do { cat timp nu am citit marcajul EOF }    begin      readln(a); { citesc linia de la tastatura }      writeln(f,a) { scriu linia de text în fişier }   end;   close(f) { închid fişierul – ultima operaţie cu fişierul f !}end.

Page 9: Cum folosim Fişierele în Pascal  ?

Exemplu: afişarea unui fişier text

program txt2;var   f:text; { declararea variabilei fişier text}      a:string; { linia de text}begin   assign(f,‘date.txt'); { asocierea cu fisierul extern}   reset(f); { deschidere pentru citire }   while not eof (f) do { cat timp nu am citit marcajul EOF }    begin      readln(f, a); { citesc linia din fisier}      writeln(a) { scriu linia de text pe ecran }   end;   close(f) { închid fişierul – ultima operaţie cu fişierul f !}end.

Page 10: Cum folosim Fişierele în Pascal  ?

Suma a două numere

Calculaţi suma a două numere naturale, citite de pe prima linie din fişierul de intrare date.in iar rezultatul se va scrie în fişierul date.out.program nr_text;var   f,g:text; { declararea variabilelor fişier text}      a,b,S:integer; { a,b – date de intrare, S - rezultat}begin   assign(f,‘date.in');   reset(f); { fişierul de intrare, deschis pt citire }   assign(g,‘date.out');  rewrite(f); { fişierul de ieşire, deschis pt scriere }   readln(f, a,b); { citesc numerele din fisier} S:=a+b; { calculez suma }  writeln(g, ‘S=‘,S); {scriu rezultatul în fişierul g }   close(f) ; { închid fişierul f ! }   close(g) ; { închid fişierul g ! }end.

Page 11: Cum folosim Fişierele în Pascal  ?

Probleme propuse

1. Se dă fişierul de intrare date.txt. a) afişaţi pe ecran liniile fişieruluib) după fiecare linie afişaţi lungimea liniei (nr. de caractere)c) iar la sfârşit numărul total de linii şi nr total de caractered) cea mai lungă linie de text din fişier

2. Se citesc trei numere a, b, c de pe prima linie a fişierului date3.in. Să se scrie în fişierul date3.out suma numerelor, media aritmetică şi media armonică fiecare rezultat pe câte o linie.

3. Citiţi elementele unui vector din fisierul de intrare vector.in în cazurile:

a) elementele sunt scrise toate pe prima linieb) elementele sunt scrise câte unul pe o liniec) pe prima linie este scris nr de elemente, iar pe a doua linie

toate elementele vectoruluid) pe prima linie este nr de elemente, iar pe următoarele n linii

câte un element

Page 12: Cum folosim Fişierele în Pascal  ?