Tipuri de date in PascalIn Pascal, tipurile de date sunt de 2 feluri:
simple si
structurate.
Tipuri de date simple sunt impartite in tipuri ordinale si reale.
Cele ordinale sunt:
� tipuri intregi:
� shortintpoate lua valori intre (-128, 127) sau ($80, $7F) in hexazecimal
stocat intern pe: 1 byte
� bytepoate lua valori intre (0, 255) sau ($00, $FF) in hexazecimal
stocat intern pe: 1 byte
� integerpoate lua valori intre (-32768, 32767) sau ($8000, $7FFF) in hexazecimal
stocat intern pe: 2 bytes
� wordpoate lua valori intre (0, 65535) sau ($0000, $FFFF) in hexazecimal
stocat intern pe: 2 bytes
� longintpoate lua valori intre (-2147483648, 2147483647) sau ($80000000, $7FFFFFFF) in hexazecimal
stocat intern pe: 4 bytes
� tipul logic:
booleanpoate lua ca valori doar TRUE sau FALSE
stocat intern pe: 1 byte
� tipul caracter
charpoate lua ca valoare orice caracter din ASCII (American Standard Code for Information Interchange)
stocat intern pe: 1 byte
� tipul enumerare
� tipul subdomeniu
Cele reale sunt
� singlepoate lua valori intre (1.5E-45, 3.4E38)
stocat intern pe: 4 bytes
� realpoate lua valori intre (2.9E-39, 1.7E38)
stocat intern pe: 6 bytes
� doublepoate lua valori intre (5.0E-324, 1.7E308)
stocat intern pe: 8 bytes
� extendedpoate lua valori intre (3.4E-4932, 1.1E4932)
stocat intern pe: 10 bytes
� comppoate lua valori intre (-2^63+1, 2^63-1)
stocat intern pe: 8 bytes
"E" din notatiile de mai sus inlocuieste exponentul si este citit "10 la puterea" numarului care urmeaza.
Ex. 1.5E-5 se citeste 1,5 ori 10 la puterea (-5) si este egal cu 0,000015.
"^" de mai sus este o conventie pentru a simboliza ridicarea la putere si este citit "la puterea" numarului care urmeaza.
Ex. 2^5 se citeste 2 la puterea a 5-a si este egal cu 32.
Tipurile de date structurate sunt:
� tipul tablou:
array (tablou)
folosit pentru a memora un sir de valori
� tipul sir de caractere:
stringeste o secventa dinamica (ca lungime) de caractere.
poate lua ca valori un sir de caractere din ASCII (maxim 255 de caractere)
stocat intern pe: maxim 256 de bytes (primul e pentru a stoca lungimea sirului (spre deosebire de C / C++, unde sirul se termina cu caracterul #0 - null terminated strings)
� tipul inregistrare:
record (inregistrare)
folosit pentru a memora valori de mai multe tipuri in acelasi loc
� tipul obiect:
objectfolosit in programarea pe obiecte (OOP)
� tipul multime:
setfolosit pentru a desemna o multime (ca in matematica) de elemente de acelasi tip
� tipul fisier:
text,
filefolosit la prelucrarea fisierelor
� tipul referinta:
pointerfolosit la prelucrarea dinamica a memoriei
� tipurile procedurale:
function,
procedureextensie a Pascalului standard, pentru a putea folosi subprogramele ca variabile
Tipuri ordinaleExista 3 functii standard care se pot folosi cu toate tipurile ordinale. Acestea sunt:
ORD = returneaza valoarea ordinala a unei expresii de tip ordinal
PRED = returneaza valoarea ordinala a predecesorului ordinal a unei expresii de tip ordinal
SUCC = returneaza valoarea ordinala a succesorului ordinal a unei expresii de tip ordinal
Ex. Ord('A') returneaza 65 (codul ASCII)
Pred(14) returneaza 13
Succ('A') returneaza B
Succ(FALSE) returneaza TRUE
Toate tipurile ordinale pot fi puse in relatie.
Ex. 6 > 4
'A' < 'B'
'Asta' <> 'asta'
ORD(A) >= 60
'pascal' <= 'pascal'
"<>" se citeste "diferit de"
Cum am aratat mai sus, tipurile ordinale de date sunt
shortint,
byte,
integer,
word ,
longint,
boolean,
char.
In operatii, toate tipurile intregi de date sunt compatibile intre ele. Operatorii aritmetici care se pot folosi sunt:
� +pentru adunare
� -pentru scadere
� *pentru inmultire
� DIVimpartire intreaga - se obtine catul
� MODimpartire intreaga - se obtine restul
� /impartire reala - se poate aplica asupra operanzilor intregi, dar rezultatul este real.
Expresie - forma lexicala asemanatoare expresiilor matematice ce se construieste folosind operanzi (constante, nume de variabile, apel de functii), operatori (operaþii) corespunzatoare tipului de expresie si eventual paranteze pentru definirea prioritatilor operatiilor.
Ex. 2 + 2 * 2, unde "2" este operand, iar "+" si "*" sunt operatori.
Tipul BooleanTipul
boolean este ordinal, enumerativ: (FALSE, TRUE).
Operatorii logici care i se pot aplica sunt:
� NOToperatia logica "nu"
� ANDoperatia logica "si"
� ORoperatia logica "sau"
� XORoperatia logica "sau exclusiv" - un "sau exclusiv" este adevarat daca un operand este adevarat, dar nu amandoi. A XOR B inseamna "A sau B, dar nu amandoua".
Tipul CharTipul
char este ordinal.
Valoarea unei variabile de acest tip se va scrie intre ghilimele.
Ex. 'A' sau 'a' (sunt distincte)
Operatorii si functiile care se pot aplica asupra acestui tip de data sunt:
� +concateneaza 2 sau mai multe caractere, dar rezultatul este de tip string
� CHReste o functie care se aplica datelor de tip intreg, dar rezultatul este de tip Char. Returneaza caracterul cu codul respectiv din codul ASCII
Tipuri realeTipurile reale de date sunt
single,
real,
double,
extended si
comp.
Datele sunt memorate intern in virgula mobila (
Tutorial virgula mobila - by suri)
Tipul
comp desemneaza o data reala particulara, avand numai valori intregi. In operatii, intra ca o data reala, cu partea zecimala egala cu zero.
Operatorii aritmetici care se pot folosi la tipurile reale sunt:
� +pentru adunare
� -pentru scadere
� *pentru inmultire
� /impartire reala (cu virgula)
Ok... still working on it... :lol:

... damn NAIL :cry: ...