Documente Academic
Documente Profesional
Documente Cultură
Cuprins
1 Noiuni despre paradigme de programare 1.1 Programarea imperativ procedural 1.2 Programarea declarativ funcional 2 Programarea orientat obiect 2.1 Tipuri de date 2.1.1 Structura n C 2.1.2 Clasa i obiectul
10/6/13
Programarea procedural se folosete pe scar larg n programare la nivel foarte jos (kernel, sistem de operare, embedded), deoarece C-ul ofer control absolut asupra resurselor hardware, i se potrivete foarte bine cu modul n care procesorul execut programul. Pe de alt parte, n cazul aplicaiilor la nivel nalt, cum ar fi editoare de text, aplicaii client - server, simulatoare, programe de sintez, etc., acolo unde se scrie o cantitate enorm de algoritmi, faptul c programarea procedural nu ofer o structurare a datelor i o legtur ntre date i procedurile care le folosesc, o face foarte greu de folosit. n aceste cazuri apar probleme de securitate, probleme de memorie, probleme de mentenan i dezvoltare ulterioar, etc.
Tipuri de date
Structura n C Plecnd de la limbajul C, ne amintim c acesta pune la dispoziie o serie de tipuri de date primitive, incluse n standardul limbajului. Ca exemple, avem: int , long, char, double, etc. n plus, exist posibilitatea de a crea structuri compuse folosind cuvntul cheie struct (http://en.wikipedia.org/wiki/Struct_(C_programming_language)) . O structur n C este compus din una sau mai multe variabile care pot fi ori de tip primitiv, ori alte structuri. n continuare avem un exemplu de definiie a unor structuri n C. s t r u c ts t r i n g { c h a r *s t r ; u n s i g n e dl e n g t h ;
dcae.pub.ro/wikilabs/index.php/Paradigma_Obiect-Orientare;_Clase_i_obiecte 2/5
10/6/13
} ; s t r u c tp e r s o n { s t r u c ts t r i n g* f i r s t _ n a m e ; s t r u c ts t r i n g* l a s t _ n a m e ; u n s i g n e da g e ; f l o a th e i g h t ; f l o a tw e i g h t ; } ; Se vede c structura person conine pointeri la dou structuri de tip string. Relaia este descris de schema bloc urmtoare (cu exemple de valori pentru variabilele primitive):
n continuare, vom da un exemplu de utilizare a acestor structuri: # i n c l u d e < s t d i o . h > # i n c l u d e < s t d l i b . h > # i n c l u d e < s t r i n g . h > i n tm a i n ( ) { / / m a k ead e f a u l ts t r i n gw i t hn oc o n t e n ta n dl e n g t h=3 0 s t r u c ts t r i n g*s o m e _ s t r i n g=( s t r u c ts t r i n g * ) m a l l o c ( s i z e o f ( s t r u c t u n s i g n e dd e f a u l t _ l e n g t h=3 0 ; s o m e _ s t r i n g > l e n g t h=d e f a u l t _ l e n g t h ; s o m e _ s t r i n g > s t r=( c h a r * ) m a l l o c ( d e f a u l t _ l e n g t h*s i z e o f ( c h a r ) ) ; s t r c p y ( s o m e _ s t r i n g > s t r ," V a s i l e " ) ;
/ / m a k eap e r s o ns t r u c t u r ei nw h i c ha l ls t r i n g sr e f e rt ot h ed e f a u l te m s t r u c tp e r s o n *n e w _ p e r s o n=( s t r u c tp e r s o n * ) m a l l o c ( s i z e o f ( s t r u c tp e r s o n e w _ p e r s o n > f i r s t _ n a m e=s o m e _ s t r i n g ; n e w _ p e r s o n > l a s t _ n a m e=s o m e _ s t r i n g ; n e w _ p e r s o n > a g e=2 9 ; n e w _ p e r s o n > h e i g h t=( f l o a t ) 1 . 7 ;
dcae.pub.ro/wikilabs/index.php/Paradigma_Obiect-Orientare;_Clase_i_obiecte 3/5
10/6/13
n e w _ p e r s o n > w e i g h t=6 8 . 9 F ;
n acest exemplu, schema bloc este diferit dintr-un punct de vedere esenial: ambii pointeri de tip string sunt referin la aceeai adres, respectiv la acelai string. Astfel, dac se modific new_person->first_name, atunci implicit se modific i new_person->last_name (de fapt este aceeai structur):
Pentru a face un rezumat, structura, in C, este un tip de dat compus din tipuri primitive, sau alte structuri. Analog cu orice alt tip de dat, se pot defini variabile de tipul structurii, aa cum se pot defini variabile de tip primitiv. Limitarea fundamental a structurilor este c acestea nu pot conine dect date , nu i funcii. Astfel se introduce noiunea de clas. Clasa i obiectul Atenie: Clasa este o structur care poate conine variabile, numite cmpuri ale clasei, i funcii, numite metode are clasei. Cmpurile i metodele sunt membrii clasei.
Atenie: Clasa este un tip de dat. Datele de tipul clasei se numesc obiecte . Obiectele sunt instane ale clasei. Astfel, cnd se creeaz un obiect nou, se mai spune c se instaniaz un obiect de tipul clasei respective. Adus de la http://dcae.pub.ro/wikilabs/index.php/Paradigma_Obiect-Orientare;_Clase_%C8%99i_obiecte Ultima modificare efectuat la 07:08, 17 iulie 2012.
dcae.pub.ro/wikilabs/index.php/Paradigma_Obiect-Orientare;_Clase_i_obiecte 4/5
10/6/13
dcae.pub.ro/wikilabs/index.php/Paradigma_Obiect-Orientare;_Clase_i_obiecte
5/5