Sunteți pe pagina 1din 28

Capitolul 2

Tipuri de date simple

Cuprins:
2.1. Conceptul de dat
2.2. Tipul de dat integer
2.3. Tipul de date real
2.4. Tipul de date boolean
2.5. Tipul de date char
2.6. Tipul de date enumerare
2.7. Tipul de date subdomeniu
2.8. Generaliti despre tipurile ordinale de date
2.9. Definirea tipurilor de date
2.10. Declaraii de variabile
2.11. Definiii de constante

2.1. Conceptul de dat


Informaia care va fi supus unei prelucrri este accesibil calculatorului n form
de date. Datele snt constituite din cifre, litere, semne, numere, iruri de caractere etc.
Tip de date se numete o mulime de valori i o mulime de operaii care pot fi
efectuate cu valorile respective.
Variabila este o mrime valorile creia pot fi modificate pe parcursul execuiei
programului. Fiecare variabil are nume, valoare i tip.
Mulimea de valori pe care le poate lua fiecare variabil i operaiile admise se
indic prin asocierea numelui de variabil cu un anumit tip de date. n acest
scop, numele de variabil i tipul de date se declar explicit cu ajutorul
cuvntului-cheie var.

Constanta este o mrime valoarea creia nu poate fi modificat pe parcusul


execuiei programului. Tipul unei constante se declar implicit prin forma ei
textual. De exmplu, 10 este o constant de tip integer, iar 10.0 este o constant
de tip real.

Conceptul de dat realizat n limbajul PASCAL presupune:


1) Fiecare mrime (variabil sau constant) ntr-un program n mod obligatoriu se
asociaz cu un anumit tip de date;
2) Tipul unei variabile definete mulimea de valori pe care le poate lua variabila i
operaiile care pot fi efectuate cu aceste valori;
3) Exist tipuri de date de interes general, definiia crora se consider cunoscut:
integer, real, char (caracter), boolean (logic), text .a.
4) Pe baza tipurilor cunoscute programatorului poate crea tipuri noi, adecvate
informaiilor de prelucrat.

Determin tipul variabilelor r, s, t, x, y din


declaraia ce urmeaz:

2.2. Tipul de date integer


Operaiile care se pot face cu valorile ntregi snt: +, -, *, .a. Rezultatele acestor
operaii pot fi vizualizate cu ajutorul programului P3:

Rezultatele operaiilor +, -, * cu valori ntregi trebuie s aparin mulimii de valori ale tipului de date integer.

2.3. Tipul de date real


Mulimea de valori ale tipului de date real este format din numerele reale care pot fi reprezentate pe calculatorul-gazd al limbajului.

De exemeplu, n versiunea Turbo PASCAL 7.0 domeniul de valori ale tipului real
este 1,7 1038 , , +1,7 1038 , numerele fiind reprezentate cu o precizie de

11-12 cifre zecimale.


Program P8
Variabilelor reale x, y i z li se atribuie valorile, respectiv, 1,1, 6,4 108 90,3 1029 .

Operaiile asupra valorilor reale snt n general aproximative din cauza erorilor de rotunjire. Rezultatele operaiilor n studiu trebuie s aparin domeniului de valori ale tipuli de date real. n caz contrar, apar erori de depire.

Proprietile operaiilor ,,+, ,, - , ,, * i ,,/ pot fi studiate cu ajutorul programului


ce urmeaz.

2.4. Tipul de date boolean


Tipul de date boolean (logic) include valorile de adevr false (fals) i true (adevrat). n
programul de mai jos variabilei x i se atribuie consecutiv valorile false i true, afiate
ulterior pe ecran.

Operaiile predefinite
ale tipului de date
boolean snt:

Not negaia
(inversia logic,
operaia logic NU)
And conjuncia
(produsul logic,
operaia logic I)
Or disjuncia
(suma logic,
operaia logoc
SAU)

Tabelele de adevr ale


operaiilor n studiu.
Proprietile operaiilor
logice not, and i or pot fi
cercetate cu ajutorul
programului P11.

Spre deosebire de
variabilele de tip ntreg
sau real, valorile curente
ale variabilelor de tip
boolean nu pot fi citite
de la tastatur cu
ajutorul procedurii
standard readln.
Din acest motiv, n
programul P11 valorile
curente ale variabilelor
x i y snt date prin
atribuire.

2.5. Tipul de date char


Mulimea valori a tipul de date char este o mulime finit i ordonat de caractere.
Valorile n studiu se desemneaz prin includerea fiecrui caracter ntre dou semne
(apostrof), de exemplu, A, B, C etc. nsui apostroful se dubleaz reprezentndu-se
prin .

n programul P12 variabilei x de tip char i se atribuie consecutiv valorile A, + i ,


afiate ulterior pe ecran.

Valorile curente ale unei variabile de tip char pot fi citite de la tastatur cu
ajutorul procedurii standard readln. Pentru exemplificare, este programul P13, care
citete de la tastatur i afieaz pe ecran valori de tipul char.

Caracterele respective se introduc de la tastatur i se afieaz pe ecran fr


apostrofurile care le ncadreaz n textul unui program PASCAL.
Caracterele unei versiuni concrete a limbajului PASCAL snt ordonate conform
tabelului de cod ASCII.
Numrul de ordine al oricrui caracter din mulimea de valori ale tipului char
poate fi aflat cu ajutorul funciei predefinite ord.

Programul P14 afieaz pe ecarn numrul de ordine a patru caractere citite de la


tastatur.

Funcia predefinit chr returneaz caracterul care


corespunde numrului de ordine indicat:

2.6. Tipul de date enumerare


Un tip de enumerare include o mulime ordonat de valori specificate prin
indentificatori. Denumirea unui tip de date enumerare i multimea lui de valori se
indic n partea declarativ a prgramului dup cuvntul cheie type (tip).

Primul identificator din lista de enumerare desemneaz cea mai mic valoare, cu
numrul de ordine zero. Identificatorul al doilea va avea numrul de ordine unu, al
treilea numrul doi etc. Numrul de ordine al unei valori poate fi aflat cu ajutorul
funciei precedente ord.

Variabilele de tip enumerare se declar cu ajutprul cuvntului cheie var. Ele pot
lua numai valori din lista de enumerare a tipului de date cu care snt asociate.
n programul P17 variabila x ia valoarea Albastru; variabila y ia valoarea Nu.
Numerele de ordine ale acestor valori se afieaz pe ecran.

n cazurile n care ntr-un program PASCAL se definesc mai multe tipuri de date,
listele de enumerare nu trebuie s conin identificatori comuni.

2.7. Tipul de date subdomeniu


Un tip de date subdomeniu include o submulime de valori ale unui tip deja definit,
denumit tip de baz. Tipul de baz trebuie s fie integer, boolean, char sau
enumerare.
Denumirea unui tip de date subdomeniu, valoarea cea mai mic i valoarea cea mai
mare (n sensul numrului de ordine) se indic n partea declarativ a programului
dup cuvntull cheie type.

Tipul Indice este un subdomeniu al tipului predefinit integer. Tipurile Litera i Cifra
snt subdomenii ale tipului predefinit char.

Tipurile ZiDeLucru i ZiDeOdihna snt subdomenii ale tipului enumerare Zi, definit
de utilizator.

Tipurile T2 i T3 snt subdomenii ale tipului enumerare T1. Tipurile de baz ale
tipurilor de date subdomeniu dein exemplele n studiu sunt:

Variabilele unui tip de date subdomeniu se declar cu ajutorul cuvntului cheie


var.
O variabil de tip subdomeniu motenete toate proprietile variabilelor tipului de
baz, dar valorile ei trebuie s fie numai din intervalul specificat.
n caz contrar, este semnalat o eroare i programul se oprete.

{
{
{

Se observ c operaiile +, , *, mod i div ale tipului de baz integer snt


motenite de tipul enumerare Pozitiv. Dar, spre deosebire de variabilele de tip
integer variabilele de tip Pozitiv nu pot lua valori negative.

Utilizarea tipurilor de date subdomeniu face programele mai intuituve i simplific


verificarea lor. Subliniem faptul c n limbajul PASCAL nu este permis definirea
unui subdomeniu al tipului real, deoarece valorile acestuia nu au numere de
ordine.

2.8. Generaliti despre tipurile ordinale de date

Tipurile de date integer, boolean, char, enumerare i subdomeniu se numesc tipuri


ordinale. Fiecare valoare a unui tip ordinal are un numr de ordine, definit dup
cum urmeaz:
1. Numrul de ordine al unui numr de tip integer este nsui numrul considerat;
2. Valorile de adevr false i true ale tipului boolean au numerele de ordine,
resprectiv, 0 i 1;
3. Numrul de ordine al unui caracter (tipul char) este dat de poziia lui n tabelul
de codificare, obinuit ASCII;
4. Numrul de ordine al unei valori de tip enumerare este dat ei n lista de
enumerare. De remarcat c valorile unei lista snt numerotate prin 0, 1, 2,... .a.m.d.
5. Valorile unui tip subdomeniu motenesc numerele de ordine de la tipul de baz.
Numrul de ordine al unei valori de tip ordinal poate fi aflat cu ajutorul funciei
predefinite ord.

Programul P22 afieaz pe ecran numerele de ordine ale valorilor -32, true, A, A i B

Asupra valorilor oricrui tip ordinal de date snt permise operaiile relaionale
cunoscute:

Pentru tipurile ordinale de date exist funciile predefinite pred (predecesor) i succ
(succesor).
Predecesorul valorii ordinale cu numrul de ordine i este valoarea cu numrul de ordine
i 1. Succesorul valorii ordinale n studiu este valoarea cu numrul de ordine i+1.
De exemplu, pentru valorile tipului de date Culoare obinem:

2.9. Definirea tipurilor de date


Limbajul PASCAL ofer utilizatorului tipurile predefinite de date integer, real,
boolean, char .a. Dac este necesar, programatorul poate defini tipuri proprii de
date, de ex. enumerare i subdomeniu.

Diagramele sintactice pentru definirea


tipurilor de date

Clasificare tipurilor de date

Dou tipuri snt identice i atunci cnd snt definite cu nume diferite, dar aceste nume
snt echivalente prin tranzitivitate.

Dou tipuri snt compatibile atunci cnd este adevrat cel puin una din urmtoarele
afirmaii:
1. Cele dou tipuri snt identice
2. Un tip este un subdomeniu al celuilalt tip
3. Ambele tipuri snd subdomenii ale aceluiai tip de baz

n completare la tipurile de date definite de utilizator explicit cu ajutorul cuvntului


cheie type, ntr-un program PASCAL pot fi definite i tipuri anonime (fr denumire).

2.10. Declaraii de variabile

Cunoatem deja c fiecare variabil care apare ntr-un program PASCAL n moc
obligatoriu se asociaz cu un anumit tip de date. Pentru aceasta se utilizeaz
urmtoarele construcii gramaticale.

Declaraiile de variabile pot fi utiliza tipuri predefinite de date (integer, real, char,
bolean .a.) i tipuri definite de utilizator (enumerare, subdomniu etc.)

Menionm c n ultimul exemplu tipul


variabilelor y1, m i n este definit direct n
declaraiile de variabile. Prin urmare
variabilele n studiu aparin unor tipuri
anonime de date.

2.11. Definiii de constante


Identificatorul care reprezint o constant se numete nume de constant sau, pur i
simplu, constant. Peste tot n program, unde apare un astfel de nume, el va fi
nlocuit cu valoarea corespunztoare.