Sunteți pe pagina 1din 10

TIPURI DE DATE

CE ESTE UN TIP DE DATE?


Există mai multe definiţii posibile pentru tipurile de date, din mai multe perspective. O privire globală
defineşte simultan atît tipurile de date cît şi operaţiile care se pot face cu ele, pentru că acestea sunt de
fapt cele două faţete ale unei aceleiaşi monezi: nu pot exista una fără cealaltă. Noi vom trata cele două
subiecte pe rînd şi în mod inegal, acordînd o oarecare prioritate tipurilor de date.
Astfel, în cea mai simplă accepţiune posibilă, un tip de date nu este altceva decît o mulţime de valori.
Ce este o valoare? Nu are nici o importanţă! Este un nume special dat elementelor care aparţin unui tip.
Termenul ``aparţin'' este justificat, pentru că, reţineţi, tipul este o mulţime, în cel mai precis sens
matematic.
Exemple? în Pascal tipul boolean este o mulţime cu două elemente. Aceste două elemente se notează în
Pascal cu false şi true. False şi true se numesc de aceea valori booleene. Tipul integer este tot o
mulţime care include, printre altele, nişte elemente (valori) care în Pascal se notează cu -2, -1, 0, 1, 2,
3 etc. Tipul integer este un tip interesant, pentru că îşi propune să mimeze mulţimea matematica Z a
numerelor întregi, dar nu reuşeşte prea bine, pentru că mulţimea integer este finită, iar Z nu! Care sunt
limitele mulţimii integer nu se specifică. În dialectul Turbo Pascal (cel mai răspîndit pe PC-
uri) integer are 65536 de elemente, de la cel notat -32768 la cel notat 32767. Elementele
tipului integer sunt numite valori întregi (sau mai precis integer values).
TIPURI FUNDAMENTALE

Limbajul Pascal (standard) conţine patru


tipuri gata construite. Pe acestea le
numim tipuri fundamentale. Ele sunt:
real, integer, char, boolean
INTEGER
• Întregii sunt numere ca: -80, -12, 0, 1 si 907. Matematic, întregii se extind la infinit (în ambele sensuri -
pozitiv sau negativ), dar în programarea calculatoarelor exista limite pentru reprezentarea întregilor
impuse de hardware. În implementarile uzuale ale limbajului PASCAL, o valoare tipica a limitei
superioare (pentru calculatoarele mici) este 32767, dar calculatoarele puternice permit valori mult mai
mari.

Indiferent de limita actuala, constanta maxint este predefinita sa contina pentru fiecare tip de
calculator valoarea maxima a întregului ce poate fi reprezentat în memoria calculatorului respectiv.
Apoi, în functie de modul de reprezentare (atât în program cât si în calculator) cel mai mic întreg
negativ permis este, de regula, - maxint-1.
Remarca:Nu exista o constanta predefinita minint. Exista doar daca o definiti dumneavoastra!
De exemplu, (Turbo) PASCAL 4.0, 5.0, 6.0 si (Borland) PASCAL 7.0 prevad tipurile de
date longint care pot manipula întregi pâna la 2147483647. În legatura cu aceasta, versiunile 4, 5, 6 si 7
ale limbajului PASCAL mai prevad tipuri întregi (byte, shortint) mai mici decât tipul de
date integer (valoarea maxima 32767). In figurile 3.1 si 3.2 se prezinta diagrama de sintaxa pentru
numere întregi si o lista completa a tipurilor de date pentru (Turbo) PASCAL, versiunile 4.0, 5.0 si 6.0
si (Borland) PASCAL 7.0.
BOOLEAN
• Variabilele de tip Boolean (Boolean vine de la numele matematicianului George Boole) pot avea una din valorile
predefinite: true (adevarat) si false (fals). Modul de reprezentare în calculator este (de regula) 0 pentru false si 1
pentru true(false < true). Expresiile booleene, precum z > y, intervin mult mai des în programele PASCAL decât
variabilele booleene declarate în cadrul acestor programe. Nu putine sunt cazurile când o valoare logica, rezultata
în urma evaluarii unor expresii booleene urmeaza sa fie folosita pentru diferite teste, ca în programul urmator.
Reguli:false < true;
• Operatorii logici, specifici tipului boolean sunt: AND, OR, NOT, XOR (ultimul apare în versiunile de (Borland)
PASCAL);
• Pentru a compara doua valori numerice se utilizeaza operatorii de relatie: < (mai mic); <= (mai mic sau
egal); > (mai mare); >= (mai mare sau egal); <> (diferit de);
• Pentru a separa expresiile de relatie de operatorii logici se utilizeaza parantezele (Exemplu: 5 £ a £ 8 se codifica
(a >= 5) AND (a <= 8));
• Nu este indicat sa se testeze egalitatea valorilor reale;
• Pentru valori de tip boolean putem considera o serie de functii specifice: ord, odd, eof, eoln etc.;
• Procedura readln nu accepta o variabila booleana.
CHAR
• Asa cum abilitatea de a manevra cifre este esentiala pentru ingineri, tehnicieni, oameni de stiinta, tot asa abilitatea
de a prelucra caractere, texte este esentiala pentru umanisti, oameni de afaceri etc. O variabila (Borland) PASCAL
careia putem sa-i atribuim un caracter (litera, cifra, caracter special etc.) trebuie sa fie declarata de tip char,
unde char este abrevierea de la character.

Remarca: Doua sau mai multe caractere pot fi combinate într-un sir... de caractere, dar astfel de siruri nu sunt
tipuri de date simple, ele reprezinta tipuri de date structurate, ale caror caracteristici le vom prezenta în
continuare.Reprezentarea unei constante de tip char se realizeaza încadrând caracterul respectiv între apostrofuri.
Folosim apostroful pentru a distinge un caracter, cum ar fi "c" de un identificator c. În interiorul calculatorului,
fiecare caracter trebuie sa fie codificat în mod distinct. Forma uzuala de codificare este un numar binar de opt biti
care ocupa un byte (octet) de memorie.
Multimea caracterelor ce pot fi procesate de un calculator se numeste set de caractere;
• Utilizarea a 8 biti permite reprezentarea în principiu a 28 sau 256 de coduri diferite, neacordându-se coduri pentru
toate caracterele;
• Limbajul (Borland) PASCAL foloseste setul de caractere ASCII (extins).
• De exemplu, un set de 8 biti numit EBCDIC (Extended Binary Coded Decimal Interchange Code) este definit
numai prin 163 de caractere. Foarte multe calculatoare folosesc un cod de 7 biti numit ASCII (American Standard
Code for Information Interchange) în care toate cele 27 (128) de combinatii de cod posibile au o semnificatie
precisa.
STRING
• Daca programele noastre au de a face cu texte sau documente de orice fel, atunci prelucrarea la nivel de
caracter se dovedeste a fi incomoda si insuficienta. (Borland) PASCAL prevede, pentru astfel de situatii,
un tip "superior" lui char, si anume STRING (sau sir de caractere).

Sirul de caractere, dupa cum îi spune si numele, reuneste mai multe caractere sub "un nume comun".
Putem întelege sirul de caractere ca fiind un cuvânt, o propozitie sau o fraza, adica orice formulare scrisa
ce contine semne (litere, cifre, semne de punctuatie, semne speciale etc).
Deoarece tipul char, conform tabelei ASCII, poate contine si caractere deosebite, o variabila string poate
fi mai mult decât am exemplificat anterior.
Desi tipul STRING prezinta o structura interna comparabila cu cea a masivelor (ARRAY), limbajul
(Borland) PASCAL permite programatorului sa-l utilizeze, în multe cazuri, ca pe un tip simplu (vezi
Conversatia 4 - operatii de I/E).

Sa analizam putin modul de declarare al variabilelor de tip sir de caractere; ca si în cazul celorlalte
declaratii, vom scrie numele identificatorului, caracterul ':' si apoi tipul necesar. În cazul nostru, vom
utiliza cuvântul rezervat STRING, urmat (sau nu) de un specificator de format.
Spre deosebire de integer, char, real, care sunt identificatori predefiniti, STRING este cuvânt rezervat!
REAL
• Doua sunt limitele evidente ale întregilor utilizati în programarea calculatoarelor (în PASCAL):
foarte multe valori sunt fractionare, cum ar fi: 0,85 si 3,14159265;
• foarte multe valori sunt mai mici decât 1 si mai mari decât maxint.
• Asemenea numere sunt scrise în mod obisnuit utilizând notatia stiintifica. De exemplu, un
fizician exprima constanta lui Planck (foarte mica) sub forma 6,626176 x 10-27 erg/sec, iar un
chimist exprima numarul lui Avogadro (foarte mare) sub forma 6,022045 x 1023 molecule/mol.

Datorita acestei limitari, PASCAL-ul prevede alt tip de date, tipul real. Utilizat în PASCAL si în
multe alte limbaje de programare, un numar real este numarul caruia îi este permis sa aiba o
parte fractionara, chiar daca aceasta fractie se întâmpla sa fie zero. Numarul real 3.0 are o
reprezentare interna (în memoria calculatorului) diferita de cea a reprezentarii întregului 3.
Numerele reale sunt exprimate în virgula mobila (floating point format). Aceasta nu reprezinta
preocuparea dumneavoastra. De notat ca, o data apelate procedurile read/write, au loc conversii
zecimal-binar, si invers, a numerelor reale.
TABLOURI UNIDIMENSIONALE
• Structura de date este o colecţie de date înzestrată cu informaţii structurale care permit identificarea şi
selecţia componentelor.
Componentele unei structuri de date pot fi identificate si selectate fie prin numele, fie prin intermediul
relaţiilor structurale. Cea mai simpla relaţie structurala este poziţia fiecărei componente in cadrul structurii.
Asupra unei structuri de date se pot aplica mai multe tipuri de operaţii :vizualizarea elementelor structurii
sub diferite forme, actualizarea(adăugarea, modificarea sau ştergerea unei componente), îmbogăţirea
structurală(prin adăugarea unor informaţii de legătura) sortare(aranjarea componentelor intr-o anumita
ordine stabilita de un anumit criteriu de ordonare.
Din punct de vedere al conţinutului, structurile pot fi:
-omogene(toate componentele structurii sunt de acelaşi tip)
-neomogene(componentele structurii sunt de tipuri diferite)
in funcţie de modul in care sunt memorate structurile de date se împart in doua mari categorii:
-Structuri interne, sunt create in memoria interna RAM a sistemului, şi au un caracter temporar, datorită
faptului ca memoria interna este volatila.
-Structuri externe, sunt depozitate pe un suport de memorie externa (hard-disk.floppy-disk), având astfel
un caracter permanent.
program ordonare alfabetica;
RECORD
Alaturi de ARRAY, (Borland) PASCAL accepta alte trei tipuri de date structurate: RECORD, Set si
File. Desi nu sunt unice în (Borland) PASCAL, RECORD-urile sunt elemente nepretuite ale
limbajului, deoarece ele faciliteaza prelucrarea datelor structurate în fisiere, dar în plus ele ne
permit sa cream ARRAY-uri de date agregate de tipuri mixte - un instrument foarte puternic de
organizare a datelor.
In cadrul acestei conversatii, la capitolul Array multidimensional(exemplul precedent) am
folosit ARRAY-ul bidimensional scoala pentru a retine numarul de fete din cele 7 grupe pe o linie si
numarul de baieti pe alta linie.

Structura ARRAY-ului a fost potrivita întrucât toate datele de intrare sunt de acelasi tip: întreg. In
continuare, dorim sa extindem facilitatile programului masiv incluzând numele profesorului de
informatica din cele 7 grupe. In acest caz, nu am putea extinde structura originala pentru a forma
un ARRAY 3*7 întrucât legile PASCAL-ului cer, dupa cum va amintiti, ca ARRAY-urile sa fie
omogene; nu putem combina un nume (sir de caractere) cu componente întregi pentru a forma
unARRAY. Totusi (Borland) PASCAL-ul ofera o alternativa si anume tipul structurat
numit RECORD, care ne permite sa realizam asociatii neomogene. Iata o declaratie
corespunzatoare pentru descrierea unei grupe.

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