Sunteți pe pagina 1din 2

Tipuri de date subdomeniu

Un tip de date subdomeniu include o submulţime de valori ale unui tip deja defi nit, denumit
tip de bază. Tipul de bază trebuie să fi e integer, boolean, char sau enumerare.
Denumirea unui tip de date subdomeniu, valoarea cea mai mică și valoarea cea mai mare (în
sensul numărului de ordine) se indică în partea declarativă a programului după cuvîntul-cheie type.
Exemple:
type Indice = 1..10; 1)
Litera = ’A’..’Z’;
Cifra = ’0’..’9’;

Tipul Indice este un subdomeniu al tipului predefi nit integer. Tipurile Litera și Cifra sînt
subdomenii ale tipului predefi nit char.
type Zi = (L, Ma, Mi, J, V, S, D); 2)
ZiDeLucru = L..V;
ZiDeOdihna = S..D;

Tipurile ZiDeLucru și ZiDeOdihna sînt subdomenii ale tipului enumerare Zi, defi nit de
utilizator.
type T1 = (A, B, C, D, E, F, G, H); 3)
T2 = A..F;
T3 = C..H;

Tipurile T2 și T3 sînt subdomenii ale tipului enumerare T1. Tipurile de bază ale tipurilor de
date subdomeniu din exemplele în studiu sînt:
Tip subdomeniu Tipul de bază
Indice integer 1)

Litera char 2)
3)
Cifra char
4)
ZiDeLucru Zi
5)
ZiDeOdihna Zi 6)
T2 T1 7)
T3 T1
Variabilele unui tip de date subdomeniu se declară cu ajutorul cuvîntului-cheie var. O
variabilă de tip subdomeniu moștenește toate proprietăţile variabilelor tipului de bază, dar valorile
ei trebuie să fi e numai din intervalul specifi cat. În caz contrar, este semnalată o eroare și
programul se oprește.
Exemplu:

Program P19;
{ Valorile variabilelor de tip subdomeniu } type Indice = 1..10;
Zi = (L, Ma, Mi, J, V, S, D);
ZiDeLucru = L..V;
ZiDeOdihna = S..D;
var i : Indice; { valori posibile: 1, 2, ..., 10 } z : Zi; {
valori posibile: L, Ma, ..., D } zl : ZiDeLucru; { valori posibile: L,
Ma, ..., V } zo : ZiDeOdihna; { valori posibile: S, D } begin
i:=5; i:=11; { Eroare, i>10 } z:=L; zl:=J; zl:=S; { Eroare, zl>V }
zo:=S; zo:=V; { Eroare, zo<S }
writeln(’Sfi rsit’); end.
Programul P20 demonstrează cum tipul Pozitiv moștenește proprietăţile tipului de bază
integer.

Program P20;
{ Tipul Pozitiv mosteneste proprietatile tipului integer } type
Pozitiv = 1..32767; var x, y, z : Pozitiv; begin
writeln(’Introduceti numerele pozitive x, y:’); readln(x,y);
writeln(’x=’, x); writeln(’y=’, y); z:=x+y; writeln(’x+y=’, z); z:=x-y;
writeln(’x-y=’, z); z:=x*y; writeln(’x*y=’, z); z:=x mod y; writeln(’x mod
y=’, z); z:=x div y; writeln(’x div y=’, z); end.

Se observă că operaţiile +, -, *, mod și div ale tipului de bază integer sînt moștenite 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 intuitive și simplifi că verifi
carea lor. Subliniem faptul că în limbajul PASCAL nu este permisă defi nirea unui subdomeniu al
tipului real, deoarece valorile acestuia nu au numere de ordine.

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