You are on page 1of 12

Tipuri de date simple

Tema: Tipurile de
date enumerare și
subdomeniu

L.T. „George Meniuc”


23.11.2020
Obiectivele lecției
Elevii vor fi capabili:
O1 – să declare tipurile enumerare și
subdomeniu;
O2 – să explice modul referință la
componentele tipului de date
enumerare;
O3 – să recunoască tipul de bază
pentru tipuri subdomeniu;
O4 – să declare variabile de tipuri
enumerare și subdomeniu.
Să medităm:
Necesitatea tipului de date enumerare
Presupunem, că avem
necesitatea să compunem un
program cu componente diferite
de valorile: integer, real,
boolean, char. Spre exemplu
zodiile zodiacului, sau zilele
săptămânii, etc.
Cum am putea rezolva problema?
De ce ar fi necesar în Pascal?
TIPUL DE DATE ENUMERARE
Un tip de enumerare include o mulțime
ordonată de valori specificate prin
identificatori. Denumirea unui tip de date
enumerare și mulțimea lui de valori se
indică în partea declarativă a programului
după cuvântul – cheie type (tip).

Type LunileAnului=(ian, feb, mar, april, mai, iun, iul,


aug, sep, oct, noi, dec);
Municipii=(Chișinău, Bălți, Orhei, Ungheni, Cahul);
Var A : LunileAnului;
M : Municipii;
Enumerare este tip ordinal
Type LunileAnului=(ian,
Primul feb,lista
identificator din mar, de
april, mai, iun, iul,
enumerare
desemnează cea mai mică aug, sep,cu
valoare, oct,numărul
noi, dec);
de Municipii=(Chișinău, Bălți, Orhei,
ordine zero. Identificatorul Ungheni,
al doilea Cahul);
va avea
Var A : LunileAnului;
numărul de ordine unu, al treilea – numărul doi
etc.MNumărul
: Municipii;
de ordine al unei valori poate fi
aflat cu ajutorul funcției precedente ord.

1) Ord(ian)=0; 2) Ord(feb)=1;
3) Ord(dec)=11 4) Ord(Chișinău)=0;
5) Ord(Bălți)=1; 6) Ord(Orhei)=2
Exemplu de program Enumerare
Program P1;
Type LunileAnului=(ian, feb, mar, april, mai, iun, iul,
aug, sep, oct, noi, dec);
Municipii=(Chișinău, Bălți, Orhei, Ungheni, Cahul);
Răspuns=(Nu, Da);
Var A : LunileAnului; M : Municipii; x:=Răspuns;
i : integer;
Begin
A:=april; i:=ord(A); writeln(i);
M:=Cahul; i:=ord(M); writeln(i);
x:=Nu; i:=ord(x); writeln(i);
i:=ord(Da); writeln(i);
End.
Restricții ale tipului Enumerare
Program eroare;
{Valorile tipului enumerare nu pot fi citite de la tastatură}
{Valorile tipului enumerare nu pot fi tipărite pe ecran}
Type LunileAnului=(ian, feb, mar, april, mai, iun, iul,
aug, sep, oct, noi, dec);
Municipii=(Chișinău, Bălți, Orhei, Ungheni, Cahul);
Răspuns=(Nu, Da);
Var A : LunileAnului; M : Municipii; x:=Răspuns;
i : integer;
Begin
A:=mai; writeln(A);
Readln(M); i:=ord(M); writeln(i);
writeln(Chișinău);
End.
TIPUL DE DATE SUBDOMENIU
Un tip de date subdomeniu include o submulțime
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
numărului de ordine) se indică în partea declarativă
a programului după cuvântul – cheie type.
Definirea tipurilor de date subdomeniu
Type Note = 1..10;
Litera = ’A’..’Z’;
Cifra = ’0’..’9’;

Tipul Note este un subdomeniu al tipului predefinit


integer. Tipurile Litera și Cifra sânt subdomenii
ale tipului predefinit char.
Definirea tipurilor de date subdomeniu
Type Zi = (L, Ma, Mie, J, V, S, D);
ZiDeLucru = L ..V;
ZiDeOdihna = S .. D;
Type NoteZiDeLucru
Tipurile = 1..10; şi ZiDeOdihna sânt subdomenii
ale tipului
Litera enumerare
= ’A’..’Z’; Zi, definit de utilizator.
Cifra = ’0’..’9’;
Tip subdomeniu Tip de bază
Note Integer
Litera Char
Cifra Char
ZiDeLucru Zi
ZiDeOdihna Zi
Operații admisibile în tipuri subdomeniu
• Variabilele unui tip de date subdomeniu se
declară cu ajutorul cuvîntului – cheie var.
Program eroare;
Type Indice = 1..10;
Litera = ’A’..’E’;
Cifra = ’0’..’9’;
Var I : Indice;
L : Litera;
C : Cifra;
Begin
I:=7; I:=11; {eroare}
L:=’B’; L:=’F’ {eroare}
C:=’5’; C:=’10’;{eroare} C:=5; {eroare}
End.
Extindere
Temele: 2.6, 2.7 pag. 40-45
Ex. 5 pag.42
2,3 pag.45
Opțional: ex.4-5 pag.46

L.T. „George Meniuc”


23.11.2020

You might also like