limbaje de programare i - cap 7

12
1 1/4/2013 3:34 PM 1 1 Limba je de pr og r ama r e I

Upload: bogdan-tosa

Post on 16-Oct-2015

17 views

Category:

Documents


0 download

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