Sunteți pe pagina 1din 9

Subiectul lecției:

Subiectul lecției:
Tipuri ordinale de date. Tipuri
identice și tipuri compatibile.
Tipuri anonime și tipuri definite
explicit.
Profesor: Bețișor Natalia
IPLT “Mihai Eminescu”
2020
2.8. Generalităţi 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 număr de ordine, definit după
cum urmează:
1. Numărul de ordine al unui număr de tip integer este însuşi numărul
considerat;
Exemplu:
Ord(1)= 1;

2. Valorile de adevăr false şi true ale tipului boolean au numerele de ordine,


resprectiv, 0 şi 1; adică false=0, true=1.
Exemplu:
Ord(false)= 0;

3. Numărul de ordine al unui caracter (tipul char) este dat de poziţia lui în
tabelul de codificare, obişnuit ASCII;
Exemplu:
Ord(‘B’)=64 ;

4. Numărul de ordine al unei valori de tip enumerare este dat ei în lista de


enumerare. De remarcat că valorile unei lista sînt numerotate prin 0, 1, 2,...
ş.a.m.d.
Exemplu:
Type Culoare=(Galben, Verde, Albastru, Violet);
5. Valorile unui tip subdomeniu moştenesc numerele de ordine de la tipul de bază.

Numărul de ordine al unei valori de tip ordinal poate fi aflat cu ajutorul funcţiei
predefinite ord.
Exemplul 1:

• Programul P22 afişează pe ecran numerele de ordine ale valorilor:


-32 - -32
true - 1
’A’ - 65
A -0
B -1
Asupra valorilor oricărui tip ordinal de date sînt permise operaţiile
relaţionale cunoscute:

Pentru tipurile ordinale de date există funcţiile predefinite pred (predecesor) şi


succ (succesor).
Predecesorul valorii ordinale cu numărul de ordine i este valoarea cu numărul
de ordine i – 1. Succesorul valorii ordinale în studiu este valoarea cu numărul
de ordine i+1.
Exemplul 2, pentru valorile tipului de date Culoare obţinem:
Type Culoare=(Galben, Verde, Albastru, Violet);

Exemplul 3, Programul P24 afișează pe ecran predecesorii și succesorii


valorilor ordinale ‘B’, 0 și ‘0’.
Două tipuri sînt identice şi atunci cînd sînt definite cu nume diferite, dar
aceste nume sînt echivalente prin tranzitivitate.

Două tipuri sînt compatibile atunci cînd este adevărată cel puţin una din
următoarele afirmaţii:
1. Cele două tipuri sînt identice
2. Un tip este un subdomeniu al celuilalt tip
3. Ambele tipuri sînd subdomenii ale aceluiaşi tip de bază

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


cuvîntului –cheie type, într-un program PASCAL pot fi definite şi tipuri
anonime (fără denumire). Un tip anonim se definește implicit într-o declarație de
variabile.
Sarcini necesare de realizat în caietul de informatică:

1. Ce va afișa programul ce urmează:


Type anotimp=(iarna, primavara, vara, toamna);
timp=(cald, rece);
Var a: anotimp;
t:timp,;
i:integer;
Begin
a:=primavara;
t:=cald;
i:=ord(a)+ord(vara)+ord(t);
Writeln(i);
End.

a) 6
b) 3
c) I
d) Nu va afișa nimic, programul are erori.
2. Fie următoarele definiții de tip:
Type zile=(lu, ma, mi, jo, vi, sa, du);
num_real=real;
numere=num_real;
zile_lucr=lu..jo;
zile_libere=vi..du;
Indicați care este afirmația falsă dintre cele ce urmează și argumentați:
a) Tipul de date zile_lucr este compatibil cu tipul zile_libere
b) Tipul de date numere este identic cu tipul num_real
c) Tipul de date numere este compatibil cu tipul num_real
d) Toate afirmațiile anterioare sunt false.

3. Indicați care sunt cele 2 afirmații adevărate dintre cele ce urmează și argumentați:

a) Un tip de date anonim se definește cu ajutorul cuvântului cheie type


b) Valorile constantelor nu se modifică pe parcursul programului
c) Toate tipurile de date simple sunt tipuri ordinale
d) Fiecare variabilă se asociază doar unui anumit tip de date.
3. De studiat tema din această prezentare și de realizat o poză din caiet la cele 3
sarcini rezolvate și de le atașat pe contul studii.md.

Succes!
O zi frumoasă!

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