Fisiere Pascal
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).
În informatică și programare, un tip de date sau pur și simplu tip este o clasificare ce identifică diferitele tipuri de date, cum ar fi:
- numere reale
- numere întregi
- valori logice(adevărate sau false)
- valori posibile pentru acest tip
- operațiunile care pot fi efectuate pentru valorile de acest tip
- sensul datelor
- modul în care valorile de acest tip pot fi stocate.
La utilizarea datelor se folosesc niste siruiri de operatii: ASSIGN, RESET, REWRITE...
Tipuri de date Array(tablou)
Multimea de valori ale unui tip de date array e constituita din tablouri. Tablourile sint formate
dintr-un numar fixat de componente de acelasi tip, denumit tip de baza. Referirea la tablou se face cu ajutorul unui indice. Acesta este reprezentat sub forma:
type<Nume tip> = array [T1] of T2
Exemplu de problema:
Program P77;
{Suma componentelor variabilei x de tip Vector}
type Vector = array [1..5] of real;
var x:Vector;
i : integer;
s :real;
begin
writeln('Dati 5 numere:');
for i:=1 to 5 do readln (x [i]);
writeln('Ati introdus:');
for i:=1 to 5 do writeln (x[i]);
s:=0;
for i:=1 to 5 do s:=s+x [i];
writeln('Suma=', s);
readln;
end.
Tipuri de date Record
Mulţimea de valori ale unui tip de date record este constituită din articole( înregistrări ). Articolele
sînt formate din componente, denumite câmpuri. Fiecare câmp are un nume ( identificator de câmp). Spre deosebire de componentele unui tablou, câmpurile pot fi de tipuri diferite. Un tip de date articol se defineşte printr-o structură de forma:
type <nume tip> = record
<nume câmp 1> : T1;
<nume câmp 2> : T2;
. . .
<nume câmp n> : Tn;
end;
Exemplu de probleme:
Uses CRT;
Type Produs:Record;
D, T:String;
C:Integer; P:Real end;
Var F,T:Text; X,Max:Produs; L:Char; N:Integer; S:Real;
Begin
ClrScr; N:=0; S:=0; Max.P:=0;
Assign(F,'date.in'); Reset(F);
Assign(T,'date.out'); Rewrite(T);
Repeat
X.D:''; Read(F,L);
While L<>' ' Do Begin
X.D:=X.D+L; Read(F,L) end;
Readln(F,X.P,X.C,L,X.T);
if X.T='lactate' Then inc(N);
if (Max.P=0) or (X.P>Max.P) Then Max:=X;
S:=S+X.P+X.C
if X.C>0 Then Writeln (T,X.D,' ',X.C,' ',X.P:0:2,' ',X.T) Until Eof(F);
Close(F); Close(T); Writeln('Nr prod=',N);
Writeln('Prod cu pret max=',Max.P:0:2, 'else:'.Max.D);
Writeln('suma=',S:0:2);
ReadKey end.
Tipuri de date Multime (set)
Un tip de date multime(set) se defineste in raport cu un tip de baza care trebuie sa fie ordinal:
<Tip multime> ::= [packed] set of <Tip>
Valorile unui tip de date set sunt multimi formate din valorile tipului de baza.. In PASCAL o multime poate fi specificata enumerindu-i-se elementele intre parantezele patrate ,,[''si,,]'' care tin locul acoladelor din matematica. Notatia [] reprezinta multimea vida.
Exemple de problema:
Uses CRT;
const n = 50;
type MultimeDeNumere = set of 1..n;
var Sita, NumerePrime : MultimeDeNumere;
i, m : integer;
begin
Sita:= [2..n];
NumerePrime;=[];
i :=2;
repeat
while not (i in Sita) do i:=succ(i);
NumerePrime:=NumerePrime+[i];
write (i : 4);
m:=i;
while m<=n do
begin Sita:=Sita-[m]; m:=m+i; end;
until Sita=[];
writeln;
readln;
end.