Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: [1]
  Imprimă  
[Curs Pascal][Lectia 3]Tipuri de date  (Vizualizari 990)
DarkByte
*

Deconectat Deconectat

Mesaje: 2441

WWW
[Curs Pascal][Lectia 3]Tipuri de date, Oct 06, 2006, 07:10

Tipuri de date in Pascal

In 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:
� shortint
poate lua valori intre (-128, 127) sau ($80, $7F) in hexazecimal
stocat intern pe: 1 byte
� byte
poate lua valori intre (0, 255) sau ($00, $FF) in hexazecimal
stocat intern pe: 1 byte
� integer
poate lua valori intre (-32768, 32767) sau ($8000, $7FFF) in hexazecimal
stocat intern pe: 2 bytes
� word
poate lua valori intre (0, 65535) sau ($0000, $FFFF) in hexazecimal
stocat intern pe: 2 bytes
� longint
poate lua valori intre (-2147483648, 2147483647) sau ($80000000, $7FFFFFFF) in hexazecimal
stocat intern pe: 4 bytes
� tipul logic: boolean
poate lua ca valori doar TRUE sau FALSE
stocat intern pe: 1 byte
� tipul caracter char
poate 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
� single
poate lua valori intre (1.5E-45, 3.4E38)
stocat intern pe: 4 bytes
� real
poate lua valori intre (2.9E-39, 1.7E38)
stocat intern pe: 6 bytes
� double
poate lua valori intre (5.0E-324, 1.7E308)
stocat intern pe: 8 bytes
� extended
poate lua valori intre (3.4E-4932, 1.1E4932)
stocat intern pe: 10 bytes
� comp
poate lua valori intre (-2^63+1, 2^63-1)
stocat intern pe: 8 bytes
Citat
"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: string
este 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: object
folosit in programarea pe obiecte (OOP)
� tipul multime: set
folosit pentru a desemna o multime (ca in matematica) de elemente de acelasi tip
� tipul fisier: text, file
folosit la prelucrarea fisierelor
� tipul referinta: pointer
folosit la prelucrarea dinamica a memoriei
� tipurile procedurale: function, procedure
extensie a Pascalului standard, pentru a putea folosi subprogramele ca variabile


Tipuri ordinale

Citat
Exista 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

Citat
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
� DIV
impartire intreaga - se obtine catul
� MOD
impartire intreaga - se obtine restul
� /
impartire reala - se poate aplica asupra operanzilor intregi, dar rezultatul este real.

Citat
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 Boolean

Tipul boolean este ordinal, enumerativ: (FALSE, TRUE).
Operatorii logici care i se pot aplica sunt:
� NOT
operatia logica "nu"
� AND
operatia logica "si"
� OR
operatia logica "sau"
� XOR
operatia 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 Char

Tipul 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
� CHR
este o functie care se aplica datelor de tip intreg, dar rezultatul este de tip Char. Returneaza caracterul cu codul respectiv din codul ASCII

Tipuri reale

Tipurile 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: ...
Memorat

Light travels faster than sound. This is why some people appear intelligent until they speak.

Quidquid latinum dictum sit, altum viditur.

SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro