Object Oriented Programming

Documente similare
Microsoft Word - CarteC.doc

Limbaje de Programare Curs 5 – Siruri de caractere

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

L7

Slide 1

Microsoft Word - PCLP2_Curs_4_2019.doc

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

Slide 1

SUBPROGRAME

LUCRAREA NR

Declararea variabilelor

Paradigme de Programare

Slide 1

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Laborator 3

SIRURI DE CARACTERE in C++ O constanta de tip sir de caractere de declara intre doua caractere. In memoria interna, o constanta de acest tip este reti

-

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Top

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

1

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Programarea şi utilizarea calculatoarelor

Ingineria Sistemelor de Programare

Curs 6 Gestiunea memoriei in C++ Alocare dinamica. Destructor. RAII. Rule of three. Tratarea excepțiilor exception safe code Moștenire Curs 5 Template

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Tipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea

Curs 2 Programare modulară în C - Funcții Test driven development, Code Coverage - Module Programare modulara, TAD - Gestiunea memoriei in C/C++ Curs

Programarea şi utilizarea calculatoarelor

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

Tablouri (continuare)

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - 2 ES RO.doc

Microsoft PowerPoint - Curs_TPI_22_v01.ppt

Concepte fundamentale ale limbajelor de programare

Slide 1

LUMINIŢA SCRIPCARIU

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Limbaje de Programare Curs 8 – Fisiere

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

Lab6LCD

Slide 1

Microsoft Word - CarteC.doc

proiectarea bazelor de date

Microsoft Word - CarteC.doc

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Lucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou

PPSD

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Slide 1

C++ Probleme

Preprocesorul C Funcţii cu numǎr variabil de argumente 6 decembrie 2005 Programarea calculatoarelor 2. Curs 10 Marius Minea

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT ALECU RUSSO DIN BĂLŢI FACULTATEA DE ŞTIINŢE REALE, ECONOMICE

Microsoft Word - O problema cu bits.doc

Microsoft Word - lab4.doc

-

Paradigme de programare

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

PROGRAMARE ORIENTATA PE OBIECTE

E_d_Informatica_sp_MI_2015_bar_02_LRO

Carrier Pidgeon Protocol

Laborator 04: Apeluri de funcții

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Microsoft Word - Curs 7 - JavaScript.doc

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

PowerPoint Presentation

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Metode de programare Proiectarea algoritmilor

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Managementul Resurselor Umane

Diapositive 1

Subiectul 1

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

PRELEGERE XIII PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE Noţiunea de funcţie - continuare VI. Funcţii recursive O funcţie se poate activa n

Analiză statică Analiza fluxului de date 23 octombrie 2014

Laborator 2 - Încapsularea Programare Orientată pe Obiecte Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema

Cursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această ev

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Declaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea

Logică și structuri discrete Mulțimi Casandra Holotescu

7. Alinierea robustă a densităţilor de puncte 3D Măsurarea distanţei dintre diferite forme geometrice 3D Estimarea rotaţiei şi a translaţiei optime în

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

CURS

9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atâ

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de

4. Detectarea cantelor Calculul gradientului într-o imagine Detectorul de cante Canny Transformata Hough În această lucrare vor fi studiate metode de

Rezolvare model de subiect practic P2 Programarea Calculatoarelor sesiunea iunie 2017

Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat În secvenţa de i

Laborator Activities În sistemul Android activitățile reprezintă echivalentul ferestrelor din Windows, fiind clase care extind clasa Activity. Spre de

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Generarea semnalelor standard 1 Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate

Transcriere:

UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică Programare orientată obiect Curs 02 Laura Dioşan

2 POO Elemente de bază ale limbajului C++ Referinţe şi pointeri Vectori TAD-uri

3 Tipul referinţă Dacă T este un tip de date, atunci T& este o referinţă la acel tip Utilizare: Variabilă referinţă (alias pentru o variabilă) o variabilă referinţă trebuie iniţializată la declarare apelul prin referinţă a param. unei fc. operatorul referinţă avantaje: eficienţă în utilizarea memoriei apelul funcţiilor claritate codului

4 Dacă T este un tip de date T* este un pointer spre tipul T Utilizare pentru a reţine adresa unei variabile sau NULL (0) din: segmentul de date variabile globale şi statice stivă variabile locale/automatice segmentul de cod funcţii HEAP (memoria din timpul rulării) varibile cu memorie alocată dinamic

5 Iniţializare cu adresa unei variabile Dereferenţiere accesarea conţinutului de la o adresă dată pointer generic (void*) pentru a reţine adresa oricărui tip de date conversii explicite

6 Iniţializare prin alocare dinamică a memoriei new pentru alocare în Heap delete pentru dealocare T* pt = new T; delete pt; pt = NULL; e.g. alocare de 1 spaţiu alocare de mai multe spaţii pi 5 t h i s s 0 1 2 3 4 5 6 7 8 9

7 operatorul new se poate utiliza: new type new type( initial_value_for_dynamic_variable ) new type[ numer_of_dynamic_variables_alocated ] dealocarea delete reference_variable; delete[] reference_variable; exemplu: int *p1=new int; //value from address p1 is not initialised int *p2=new int(5); //value from address p2 is 5; int *p3=new int[4]; //a vector of 4 integer elements is alocated delete []p3; delete p2; delete p1; observaţii: pentru fiecare new, trebuie realizat un delete dealocarea trebuie realizată în ordinea inversă alocării

8 Iniţializare prin alocare dinamică a memoriei malloc alocarea în Heap free dealocarea realloc, calloc <stdlib.h> e.g. alocare de 1 spaţiu alocare de mai multe spaţii T* pt = (T*)malloc(size of T); free(pt); pi 5 t h i s s 0 1 2 3 4 5 6 7 8 9

9 Operaţii relaţionale: <, <=, >, >=, ==,!= pentru adrese de memorie aritmetice: +, -, ++, --, +=, -= pentru vectori pt 0 1 2 3 4 T* pt = new T[5]; T* q = new T[9]; pt+1 int n; pt + n; pt + n * sizeof(t); pt++; pt + sizeof(t); pt - n; pt - n * sizeof(t); pt--; pt sizeof(t); pt q = mem. locations between pt and q

10 Variabile pointer ca şi parametri când adresa reţinută de pointer se modifică -> param. apelat prin referinţă void allocation(int nrlin, int nrcol, int** &mat){ mat = new int*[nrlin]; for(int i = 0; i < nrlin; i++) mat[i] = new int[nrcol]; } Când informaţia de la adresa referită de variabila pointer se modifică -> param. apelat prin valoare void init(int nrlin, int nrcol, int** mat, int val){ for(int i = 0; i < nrlin; i++) for(int j = 0; j < nrcol; j++) mat[i][j] = val; }

11 vectori ca variabile vector 0 1 2 3 4 v1 2 13 8 0 1 2 v2 1 5 0 0 0 0 1 2 3 4 ca param. a se consulta vectorsimple.cpp şi vectorpointer.cpp

12 Vectori de caractere similar vectorilor de numere funcţii speciale <cstring.h> or <string> headers strlen lungimea unui string size_t strlen(const char* s); t u l i p \0 flower1 0 1 2 3 4 5 strcmp compararea a 2 stringuri int strcmp (const char* s1, const char* s2); strncmp compararea a 2 stringuri int strncmp(const char* s1, const char* s2, size_t num); strcpy copierea unui string in alt string char* strcpy (char* destination, const char* source); strncpy copierea unui string in alt string char* strncpy(char* dest, const char* source, size_t n); strcat concatenarea a 2 stringuri char* strcat(char* destination, const char* source );

13 matrici ca variabile ca param. a se consulta matrixsimple.cpp, matrixpointer.cpp şi matrixpointer2.cpp

14 structuri

15 Pointeri constanţi const cel mai apropiat de const int* u; int const* v; u/v este un pointer care refră un întreg constant (conţinutul de la adresa u/v nu se poate modifica) int d = 1; int* const w = &d; w este un pointer constant care referă un întreg (adresa w nu poate fi modificată) int d = 1; const int* const x = &d; int const* const x2 = &d; x(x2) este un pointer constant care referă un întreg constant (adresa x/x2 şi conţinutul ei nu pot fi modifcate)

16 Pointer către funcţii o funcţie ocupă o zonă de memorie (care are o adresă) numele fc. = începutul adresei variabile de tip pointer la fc. int (*funcptr)(int, int) = o fc. care returnează un întreg şi are 2 param. întregi int *funcptr(int, int) = o fc. care returnează un pointer către un întreg şi are 2 param. Întregi tipul de date pointer la fc a se consulta sortvector.cpp

17 Cursul următor Elemente de bază ale limbajului C++ Fişiere de IO Clase Declarare Constructor/destructor Metode Utilizare (static şi dinamic) Clase ca şi date membre UML