limbaje de programare i - cap 7
TRANSCRIPT
-
11/4/2013 3:34 PM 1
1
Limbaje de programare I
-
11/4/2013 3:34 PM 2
2
Tipuri de date
definite de
utilizator
-
3
Enumerri
Tipul enumerare permite asocierea de nume
sugestive unor constante numerice
Valorile elementelor sunt opionale; dac lipsesc,
atunci elementelor fr valoare explicit li se vor atribui valori conform urmtoarelor dou reguli:
valoarea implicit pentru primul element este 0;
valoarea implicit a celorlalte elemente este valoarea elementului precedent, incrementat cu 1
3
enum [] {
elem1[=val1], ...., elemn[=valn]
};
-
4
Structuri
Sunt tipuri de date definite de utilizator ce
reprezint colecii eterogene de date (date de tipuri diferite), stocate ntr-o zon continu de memorie.
Declararea structurilor:
Numele structurii i lista de variabile pot lipsi, dar nu simultan.
4
struct {
} ;
-
5
Structuri
Declararea variabilelor de tipul structurii:
Accesarea cmpurilor structurii se face: cu
operatorul . pentru variabilele simple, cu
operatorul -> n cazul pointerilor
ncrcarea structurilor:
ncrcare individual a cmpurilor
prin iniializare la declaraie
prin atribuire (cmpurile structurii vor fi copiate bit cu bit)
prin citire de la terminal sau din fiier
5
-
6
Uniuni
Uniunile reprezint, ca i structurile, colecii de date de tipuri diferite, ns, spre deosebire de acestea, permit memorarea la un moment dat
numai a unuia dintre cmpurile sale.
In cazul unei uniuni nu se aloc memorie pentru fiecare cmp, ci numai pentru cmpul care
ocup cel mai mult, iar zona rezervat lui este utilizat, n diferite momente ale execuiei, pentru stocarea oricruia (dar unul singur) dintre cmpurile uniunii.
6
-
7
Uniuni
Definirea unei uniuni:
Pentru memorarea unei uniuni, compilatorul
rezerv spaiu pentru un singur cmp - cel mai mare:
Programatorul trebuie s gestioneze foarte atent care este cmpul reinut n zona rezervat uniunii pe parcursul execuiei programului.
7
union {
} ;
sizeof()=campmax {sizeof(camp)}
-
8
Cmpuri de bii
Limbajul C/C++ permite prelucrarea datelor la
nivel de bit. Cmpurilor structurilor i uniunilor li se pot aloca bii individuali n cadrul unui octet, bii ce pot fi accesai independent de restul octetului.
O structur cu cmpuri de bii are sintaxa:
Declaraia unui cmp al structurii pe bii este de
forma:
8
struct {
} ;
:;
-
9
Cmpuri de bii
Operaiile pe cmpurile de bii acestora nu li se poate extrage adresa (pentru citire cu scanf, spre
exemplu), deoarece adresa unui cmp de bii nu este un ntreg; astfel, cmpurile de bii nu pot fi organizate n masive.
ncrcarea structurilor pe bii
prin ncrcarea individual a cmpurilor
citire de la terminal sau din fiier; n aceast situaie se va utiliza o variabil auxiliar
iniializare la declaraie
9
-
10
Tipuri sinonime de date
Tipurile sinonime de date au rolul de a asocia un
nume unui tip de date. Ele se utilizeaz, de regul, pentru a nlocui declaraii mai complicate.
Tipul de date poate fi un tip primitiv (cu eventuali
modificatori) sau un tip de date definit de utilizator,
deja declarat.
Definirea unui tip sinonim:
Definirea unui tip sinonim de date nu se poate
face n interiorul unei funcii.
10
typedef ;
-
11
Bibliografie
Crian D.A., Limbajul C/C++. Fundamente. Vol I, Ed. ProUniversitaria, Editie Revizuita, Bucureti, 2010;
Stnic J.L.,Crian D.A., Limbajul C/C++. Aplicaii i teste gril, vol. III, Ed. ProUniversitaria, Bucureti, 2010;
Smeureanu I., D. A. Crian, J. L. Stnic, Limbajul C/C++. Teorie i aplicaii, Ed. Universul Juridic, Bucureti, 2005
Jamsa K., Totul despre C si C++ - Manualul fundamental
de programare in C si C++, Ed. Teora, Bucureti, 2005
Schildt H., C/C++ Programmer's Reference, Second
Edition, Ed. Osborne McGraw-Hill, 2000
Oualline S., Practical C++ Programming, Second Edition,
Ed. O'Reilly Media, Inc, 2003
11
-
12 12
END