Sunteți pe pagina 1din 4

Tematica şedinţei de laborator nr.

14
PROGRAME TURBO PASCAL

1. Crearea unui fişier cu date de descriere parcelară


În accepţiunea limbajului Turbo Pascal, pot fi definite trei structuri de tip fişier:
 fişier cu tip;
 fişier text;
 fişier fără tip.

Prin fişier se înţelege o structură de date alcătuită dintr-o secvenţă de componente, fiecare
componentă din secvenţa având acelaşi tip.
Spre deosebire de tipul tablou (array), numărul componentelor unui fişier nu este fix. Datele
dintr-un fişier sunt păstrate pe un suport magnetic şi sunt accesibile prin subprograme de citire
sau scriere. La un moment dat este accesibilă direct numai o singură componentă a fişierului, iar
celelalte devin accesibile progresând secvenţial în fişier.
Programul ce urmează exemplifică modul de creare a unui fişier cu tip, fiecare înregistrare
(componentă) din fişier fiind de tip articol (record). O componentă de tip articol a fişierului
cuprinde un număr de şase câmpuri de tipuri diferite, în care se vor reţine pentru fiecare unitate
amenajistică (subparcelă) numărul unităţii amenajistice, suprafaţa, volumul, vârsta, urgenţa de
regenerare şi specia.
Variabila de tip fişier se asociază fişierului C:\TP\descr.dat prin procedura Assign, după care
fişierul este deschis pentru scriere prin procedura Rewrite. Programul exemplifică un caz
particular de scriere a numai cinci componente în fişier, dar se poate modifica pentru a crea
fişiere cu număr variabil, nefixat anticipat, de componente.
Pentru deschiderea fişierului existent pe disc şi adăugarea în continuare de înregistrări în fişier
se foloseşte procedura Reset. Fiecare componentă a fişierului are asociat un număr, începând cu
0 (zero) pentru prima înregistrare. Poziţionarea pe o componentă anume se face prin procedura
Seek precizând ca argumente numele fişierului şi numărul componentei. La finalul programului
fişierul trebuie închis prin procedura Close.
Pentru executia programului s-au folosit datele din tabelul 3.8.
Date de descriere parcelară
Tabelul 3.8
Nr. Ua Supr.(ha) Volum Vârsta Urgenta Specia
(m3)
1 1A 10.2 2785 90 2 fag
2 1B 9.2 1626 45 3 fag
3 2 6.9 1757 55 3 molid
4 3A 14.5 5690 90 1 molid
5 3B 5.5 919 65 3 fag

Programul prezentat în continuare serveşte pentru crearea fişierului C:\TP\descr.dat:

Program descriere_parcelara_fisier:
type
date=record
ua: string[4];
supr: real;
vol: integer;
varsta: integer;
urgenta:integer;
specia: string[20];
end;
type
fis= file of date;
var
d:date;
fisam:fis;
a:string[4];
z:string[20];
x:real;
i,y,u,v:integer;
begin
assign(fisam,'C:\TP\descr.dat');
rewrite(fisam);
for i:=0 to 4 do
begin
assign(fisam,'C:\TP\descr.dat');
reset(fisam);
seek(fisam,i);
with d do
begin
writeln('Unitatea amenajistica nr. ',i+1);
write('ua='); readln(a); ua:=a;
write('suprafata='); readln(x); supr:=x;
write('vol='); readln(y); vol:=y;
write('varsta='); readln(v); varsta:=v;
write('urgenta='); readln(u); urgenta:=u;
write('specia='); readln(z); specia:=z;
write(fisam,d);
end;
close(fisam);
end;
end.

Unitatea amenajistica nr. 1


ua=1A
suprafata=10.2
vol=2785
varsta=90
urgenta=2
specia=Fag
Unitatea amenajistica nr. 2
ua=1B
suprafata=9.2
vol=1626
varsta=45
urgenta=3
specia=Fag
Unitatea amenajistica nr. 3
ua=2
suprafata=6.9
vol=1757
varsta=55
urgenta=3
specia=Molid
Unitatea amenajistica nr. 4
ua=3A
suprafata=14.5
vol=5690
varsta=90
urgenta=1
specia=Molid
Unitatea amenajistica nr. 5
ua=3B
suprafata=5.5
vol=919
varsta=65
urgenta=3
specia=Fag

2. Citirea unui fişier cu date de descriere parcelară


Pentru citirea si eventual prelucrarea datelor înregistrate în fişierul creat prin execuţia
programului anterior se poate redacta un program care să folosească subprograme de citire a
componentelor fişierului C:\TP\descr.dat. Programul de mai jos afişeaza o parte din datele
cuprinse în cele cinci componente de tip articol ale fişierului menţionat. Subprogramele de citire
parcurg integral fişierul, de la prima până la ultima înregistrare, fără a fi necesar ca numărul
componentelor să fie cunoscut anticipat. Citirea articolelor din fişier se face secvenţial prin
procedura Read.

Program utilizare_fisier_descriere_parcelara;
type
date=record
ua:string[4];
supr:real;
vol,varsta,urgenta:integer;
specia:string[20];
end;
var
fisam:file of date;
i,j:integer;
d:date;
begin
assign(fisam,'C:\TP\descr.dat');
reset(fisam);
i:=0;
writeln('arboretul u.a. suprafata varsta compozitia');
writeln('************************************');
while not eof(fisam) do
begin
i:=i+1;
read(fisam,d);
with d do
begin
writeln(i:4,' ',ua,' ',supr:4:1,' ',varsta,' ',specia);
readln;
end;
end;
close(fisam);
writeln('************************************');
end.

arboretul u.a. suprafata varsta compozitia


************************************
1 1A 10.2 90 Fag
2 1B 9.2 45 Fag
3 2 6.9 55 Molid
4 3A 14.5 90 Molid
5 3B 5.5 65 Fag
************************************

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