Universitatea "Babeş-Bolyai" din Cluj-Napoca

Facultatea de Matematică şi Informatică
FISA DISCIPLINEI

Metode evoluate de programare Advanced programming methods
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Sectia
MI036
4
2+0+2
5
obligatorie
Matematică-Informatică
(Mathematics-Computer Science)
MI036
3
2+1+2
7
obligatorie
Tehnologie Informatică
(College of Computer Technology)
MI036
4
2+0+2
5
obligatorie
Matematica Economica
(Mathematics Economics)
MI036
3
2+1+2
8
obligatorie
Informatică
(Computer Science)
Cadre didactice indrumatoare Teaching Staff in Charge
Lect. DARVAY Zsolt, darvay@cs.ubbcluj.ro
Lect. LUPEA Mihaiela, lupea@cs.ubbcluj.ro
Obiective Aims
Insusirea metodelor de abstractizare a datelor si ale programarii orientate obiect.
Acquisition of the methods of data abstractisation and object oriented programming.
Continut
Curs 1: Introducere in limbajul C++
- Tipuri de date simple
- Constante, variabile
- Operatori: operatorul de atribuire, operatori aritmetici +,-,/,*,%, operatori de incrementare si decrementare ++,--, operatori logici si relationali, operatorul virgula, operatorul ternar ?, operatori la nivel de bit, operatori de atribuire combinati, operatorul sizeof si operatorul cast
- Expresii: ordinea de evaluare a expresiilor, conversii de tip in expresii, clase de precedenta
Curs 2:
- Tipul de date tablou: operatorul de indexare, tablouri unidimensionale/multidimensionale, initializarea tablourilor
- Instructiuni
- instructiunea vida
- instructiunea expresie
- instructiunea compusa
- instructiunea de decizie: if
- instructiunea de selectie: switch
- instructiunea de ciclare: while
- instructiunea de ciclare: do while
- instructiunea de ciclare: for
- instructiunea break
- instructiunea de continuare a unui ciclu : continue
- instructiunea de salt neconditionat : go to
Curs3:
- Variabile de tip pointer
- Variabile referinta
- Operatii cu pointeri
- Tablouri si pointeri
- Alocarea dinamica a memoriei: operatorii new si delete
- Exemplu de alocare dinamica a unei matrice
Curs 4:
- Tipurile de date structura si uniune
- operatorul de selectie directa "."
- operatorul de selectie indirecta ->
- initializarea structurilor/uniunilor
- Tipul de date enumerare
- Definirea unui nou tip de date cu typedef
Functii_I
- definirea si declararea functiilor
- transferul parametrilor
- transferul prin valoare
- transferul prin referinta
- folosirea pointerilor ca parametri
- parametri tablouri
- instructiunea return
- argumentele functiei main, valoarea returnata de functia main
Curs 5: Functii_II
- Functii inline/macrodefinitii
- Functii cu numar variabil de parametri
- Parametri cu valori implicite ai unei functii
- Pointeri la functii
- Supradefinirea functiilor
- Functii recursive
Curs 6:
- Atributele datelor: tipul, clase de memorie, durata de viata, accesibiliatea, scopul
- Directive de preprocesare
Curs 7: Elemente fundamentale de POO
- Abstractizarea datelor, nivele de abstractizare
- Proiectarea operatiilor unui tip abstract de data
- Clase si obiecte
- Clase abstracte si clase parametrizate
- Mostenire simpla si multipla
- Polimorfism
- Etapele de realizare a unui program orientat obiect
Curs 8: POO in limbajul C++
- Clase si obiecte
- Constructori: impliciti, de copiere, de conversie
- Destructori
- Tablouri de obiecte, initializarea tablourilor
- Pointeri la obiecte, alocare dinamica de obiecte
- Pointeri la functiile membre ale unei clase
- Cuvantul cheie this
- Membrii statici ai unei clase
- Functii membre constante si obiecte constante
Curs 9: Supradefinirea operatorilor
- Functia operator
- Functii prietene, clase prietene
- Supradefinirea operatorilor folosind functii prietene
- Supradefinirea operatorilor folosind functii membre
- Supradefinirea operatorilor: =,[],(),<<,>>
Curs 10: Conversii de tip
- Conversii implicite de tip
- Tipuri de conversii utilizator asupra obiectelor
- conversie tip predefinit --> tip abstract
- conversie tip abstract --> tip predefinit
- conversie tip abstract --> tip abstract
- Mecanismul template: clase si functii parametrizate
Curs 11: Mostenire in limbajul C++
- Clase derivate
- Drepturi de acces ale membrilor mosteniti
- Constructori si destructori pentru clasa derivata
- Compatibilitatea dintre o clasa derivata si una de baza
- Mostenire multipla
Curs 12: Polimorfism
- Clase virtuale
- Legare statica si legare dinamica
- Functii virtuale
- Interactiunea functiilor virtuale si nevirtuale
- Destructori virtuali
- Metode pure, clase abstracte
Curs 13: Sistemul "stream" de I/E din C++
- operatii de I/E cu format
- operatii de I/E fara format
- utilizarea functiilor width(), precision(), fill()
- utilizarea functiilor de I/E de tip "manipulator"
- crearea propriilor functii de tip insertie
- crearea propriilor functii de tip extractie
Curs 14: Operatii de I/E cu fisiere
- functiile de I/E de tip binar
- accesul de tip aleator la fisiere
- verificarea starii sistemului de I/E
- utilizarea operatorilor de tip insertie si extractie la operatiile de I/E cu fisiere
Bibliografie
1. Andonie R., Garbacea I.: Algoritmi fundamentali. O perspectiva C++, Editura Libris, Cluj_Napoca, 1995.
2. Bulac C.: Initiere in Turbo C++ si Borland C, Ed.Teora, 1995.
3. Catrina O., Cojocaru I.: Turbo C++, Editura Teora, Bucuresti,1993.
4. Frentiu M., Parv B.: Elaborarea programelor, Ed. Promedia, Cluj-Napoca, 1994.
5. Gurewich O., Gurewich N.: Borland C++ Multimedia Programming, SYBEX Inc., 1994. (Bibl Britanica 005.133 GUR)
6. Holzner S.: Borland C++ for Windows Programming, ver 4.0, Brady Publishing, 1994 (Biblioteca Britanica 005.133 HOL)
7. Jurca I.: Programarea orientata pe obiecte in limbajul C++, ED. EUROBIT, Timisoara, 1992.
8. Lupea I., Lupea M.: Limbajul C. Teorie si aplicatii, Ed. Cartea Cartii de Stiinta, Cluj-Napoca, 1998.
9. Moldovan G., Cioban V., Lupea M.: Probleme pentru programare in limbajul C, Univ. Babes-Bolyai, Cluj-Napoca, 1995.
10. Muslea I.: Initiere in C++. Programare orientata pe obiecte C++, Editura Microinformatica, Cluj-Napoca, 1992.
11. Negrescu L.:Limbajul C++, Ed. Albastra,Cluj-Napoca 1996.
12. Shammas N.C: Curs rapid de Borland C++. (traducere Adrian Corbuleanu), Ed. Teora, 1996.
12. Somnea D., Turturea D.: Initiere in C++. Programarea orientata pe obiecte, Ed. Tehnica, Bucuresti, 1993.
13. Spircu C., Lopatan I.: POO Analiza, proiectarea si programarea orientate spre obiecte, Ed. Teora, 1995.
14. Stroustup B., The C++ Programming Language, Addison Wesley, 1986.
15. Tackett J., Mitchell E.: Object-oriented programming with Visual C++ 1.5, Que Corporation, 1994. (Biblioteca Britanica 005.133 TAC)
Evaluare Assessment
Lucrare scrisa 40%, proba practica 40%, lucrari de laborator 20%
Written examination 40%, practical examination 40%, laboratory exercises 20%.