Documente Academic
Documente Profesional
Documente Cultură
Prin tip de date se înţelege o mulţime de valori, D, care formeazã domeniul tipului, împreunã cu o mulţime de operatori
pe acest domeniu. În cazul când elementele domeniului sunt valori compuse din mai multe componente atomice, tipul de date
obţinut se numeşte tip de date structurat, sau structurã de date.
Un programator poate sã-şi defineascã propriile tipuri de date de care are nevoie în programul sãu. Operaţiile existente în
aceste noi tipuri de date sunt în primul rând cele existente asupra componentelor. În structura definitã de programator, ca entitate
de sine stãtãtoare existã însã doar operatorul de atribuire. Adesea programatorul are nevoie de operaţii propriu-zise.
Tipul abstract de date (prescurtat TAD) este un astfel de tip, definit de om în urma unui proces de abstractizare. El este
precizat prin:
- domeniul TAD;
- operatorii definiţi în acest domeniu.
Nu intereseazã cum se reprezintã elementele domeniului în calculator şi nici cum se executã operatorii asupra diferiţilor operanzi
posibili.
Pentru a specifica un TAD este necesar sã precizãm cele douã elemente ale tipului: domeniul şi operaţiile.
Domeniul este precizat ca o mulţime matematicã, D.
Pentru a specifica o operaţie o este necesar sã definim matematic operaţia o. În general, spre deosebire de operaţia
matematicã, în programare operaţia o nu este o aplicaţie totalã; ea are sens numai pentru anumite elemente din D. Valorile pentru
care operaţia o are sens satisfac un predicat numit precondiţie pentru operaţia o. Rezultatul efectuãrii operaţiei o depinde de
operanzi, este legat de aceşti operanzi, legãturã precizatã cu ajutorul unei postcondiţii, datã printr-un predicat .
Reprezentarea elementelor domeniului D se poate face în mai multe feluri. De asemenea, în funcţie de reprezentarea aleasã,
operaţiile definite în domeniul D pot fi realizate în mai multe moduri (algoritmi). O datã aleasã o anumitã reprezentare rãmâne sã
descriem subprogramele pentru efectuarea operaţiilor.
Prin traducerea acestor elemente într-un limbaj de programare, în cazul nostru Pascal, se ajunge la ceea ce se cheamã tip
virtual de date (TVD).
Dãm ca exemplu un tip abstract de date "Rational" şi un tip virtual corespunzãtor: domeniul TAD "Rational", notat prin
Q, cât şi specificarea operaţiilor s-a fãcut în exemplul 3.1.1.
Vom transcrie în Pascal şi vom ajunge la urmãtoarea unitate de program, care constituie Tipul Virtual de Date "Rational".
Un tip abstract de data realizeaza o unificare (printr-o grupare de tip struct) intre date (date membru) si operatiile
(functii membru) lor caracteristice. Functiile membru sunt considerate de tip inline iar definirea lor in afara structurii se face
prin operatorul de rezolutie (::). In acest mod insa nu se realizeaza o protectie a datelor (accesul la date se poate face si prin
alte functii, nu numai prin cele membru), aceasta protectie putand fi realizata (asa cum vom vedea in cele ce urmeaza) cu
ajutorul claselor.