Album de Crestaturi in Lemn (Dimitrie Comşa) - Sibiu 1979.pdf
Fisiere pascal
1.
2. Prin fișiere se înțelege o structură de date care
constă dintr-o secvență de componente. Fiecare
componentă din secvență are același tip, tip de
bază. Numărul componentelor din secvență nu
este fixat,însă sfârșitul secvenței este indicat de
un simbol special,notat EOF (End of File- sfîrșit de
fișier).
Un tip de date fișier se definește într-o declarație
de forma:
<Tip fișier>= file of <Tip>;
unde <Tip>este tipul de baza. Tipul de baza este un
tip arbitrar, exceptând tipul fișier(nu exista ”fișier
de fișiere”).
3. 1) type FisierNumere=file of integer;
Var FN : FisierNumere;
N : integer;
2) type FisierCaractere=file of char;
Var FC: FisierCaractere;
C : char;
3)type Elev=record
Nume : string;
Prenume : string;
NotaMedie : real;
End;
FisierElevi=file of Elev;
var FE : FisierElevi
E : Elev;
4. Înainte de a fi utilizată,o variabilă fișier trebuie
asociată cu un fișier extern.
În pascal asocierea se face prin includerea
variabilelor de tip fișier ca argument în
antetul programului cu ajutorul procedurii
assign (f, s)
s- expresie de tip șir de caractere care arată
calea către fișier.
Exemple
assign (FN, ‘C:r.dat’);
5. Citirea se realizează prin:
read(f,v)
unde v este o variabilă declarată cu tipul de bază al fișierului f.
Scierea unei componente :
write(f,e)
unde e este o expresie asociată cu tipul de bază al fișierului f.
Pentru a putea lucra cu fișierul el trebuie deschis, aceasta se
face cu ajutorul procedurilor:
reset(f) – pregătește un fișier existent pentru citire
rewrite(f) – creează un fișier vid și îl pregătește pentru scriere.
După prelucrarea componentelor fișierul trebuie închis cu
ajutorul procedurii close(f).
6. 1) assign(f,s) – asocierea fișierului pascal f
cu fișierul extern f.
2) reset (f)/rewrite(f) – deschiderea fișierului
pentru citire/scriere.
3) read(f,v)/write(f,e) – citirea/scrierea unei
componente în fișierul f.
4) close(f) – închiderea fișierului f.
7. Deschiderea
unui fişier secvenţial pentru
înscriere se face cu ajutorul procedurii
rewrite(f)
Înscrierea componentei cu ajutorul
procedurii write(f,e) sau write(f,e1,e2,e3…)
unde e este o expresie de tipul
componentei fișierului. După înscrierea
ultimei componente fișierul trebuie închis
cu ajutorul procedurii close(f).
8. Program P89;
type Elev=record
Nume : string;
Prenume : string;
NotaMedie : real
end;
FisierElevi=file of Elev;
var FE : FisierElevi;
E : Elev;
str : string;
i, n : integer;
begin
write('Dați numele fișierului de creat: ');
readln(str);
assign(FE, str); { asociază FE cu numele din
str }
rewrite(FE);
{ deschide FE pentru scriere }
write('Dați numтrul de elevi: '); readln(n);
for i:=1 to n do
begin
writeln('Dați datele elevului ', i);
{ citește cîmpurile variabilei E de la
tastatură }
write('Numele: '); readln(E.Nume);
write('Prenumele: '); readln(E.Prenume);
write('Note medie: '); readln(E.NotaMedie);
write(FE, E); { scrie E în FE }
end;
close(FE);
readln;
end.
{ închide FE }
9. Pentru a citi informația dintr-un fișier
secvențial se apelează procedura reset(f).
Componenta curentă se citește cu
procedura read(f,v)sau read(f,v1,v2,v3…).
Sfîrșitul fișierului este semnalată de funcția
eof(f) care întoarce true după citirea ultimei
componente.
10. Program P90;
type Elev=record
Nume : string;
Prenume : string;
NotaMedie : real
end;
FisierElevi=file of Elev;
var FE : FisierElevi;
E : Elev;
str : string;
begin
write('Daюi numele fișierului de
citit: ');
readln(str);
assign(FE, str); { asociază FE cu
numele din str }
reset(FE);
{ deschide FE
pentru citire }
while not eof(FE) do
begin
read(FE, E); { citește E din FE }
writeln(E.Nume, ' ', E.Prenume,
E.NotaMedie : 5:2);
{ afișează E la ecran }
end;
close(FE);
readln;
end.
{ închide FE }
11. 1. Se consideră următoarele tipuri de date:
type Data=record
ziua: 1..31;
luna: 1..12;
anul: integer;
end;
Persoana=record
Numeprenume: String;
datanasterii: Data;
end;
FisierPersoane =file of Persoana;
Elaborați un program care citește datele de la tastatură referitoare la n
persoane și înscriețile în fișiere.
Creați fișierele FILE.PRS, FILE2.PRS , FILE3.PRS care conțin datele
referitoare la 2,7 și 10 persoane.
2. Elaborați un program care citește fișierele create în problema 1 și
afișează pe ecran:
a) Toate persoanele din fișier.
b) Persoanele născute în anul a citit de la tastieră.
c) Persoanele născute pe data z.l.a.
12. 3. Elaborați un program care afișează pe
ecran media aritmetică a numerelor
înscrise într-un fișier de tipul file of real.
4. Într-un fișier de tip file of char sunt
înscrise caractere arbitrare. Elaborați
un program care afișează pe ecran
numărul vocalelor din fișier.