Capitolul IC.01. Aspecte generale
|
|
- Traian Dochioiu
- 2 ani în urmă
- Vzualizari:
Transcriere
1 Capitolul Cuvinte-cheie Tipuri de date, structuri, pointeri, complexitatea algoritmilor IC.0. Tipuri și structuri de date Un program dezvoltat pentru un calculator operează cu și asupra unor entități numite variabile. Acestea sunt caracterizate printr-un nume simbolic, un tip de dată și o valoare. În mod uzual, variabilele pot fi scalare (variabile care rețin un singur element) și agregate (sau structurate variabile prin intermediul cărora se rețin mai multe entități de același tip sau de tipuri de dată diferite) [U0][S03]. IC.0.. Tipuri de date fundamentale pentru limbajele C și C++ Nume Descriere Dimensiune Valori minime/maxime char Reprezentarea unui caracter octet cu semn: -8/7 fără semn: 0/55 int Valoare întreagă 4 octeți cu semn: / fără semn: 0/ short int Valoare întreagă trunchiată octeți cu semn: -3768/3767 fără semn: 0/65535 long int Valoarea întreagă extinsă 8 octeți cu semn: / fără semn: 0/ float cu semn: +/- 3.4e +/- 38 Valoarea reală în simplă 4 octeți (precizie de aproximativ precizie 7 zecimale) double long double Valoare reală în dublă precizie Valoare reală în dublă precizie 8 octeți 8/6 octeți Tabel : Tipuri fundamentale de date pentru limbajele C/C++ cu semn: +/-.7e +/- 308 (precizie de aproximativ 5 zecimale) cu semn: +/-.7e +/- 308 (precizie de aproximativ 5 zecimale) Observație: Valorile prezentate în coloanele Dimensiune și Valori minime/maxime sunt dependente de arhitectura calculatorului gazdă (procesor pe 3 sau pe 64 de biți) și de compilatorul C/C++ utilizat. IC.0.. Tipuri complexe de date structuri O structură reprezintă un tip de date agregat, definit utilizator. În esență, o structură este o colecție de una sau mai multe variabile grupate sub același nume simbolic. Variabilele incluse într-o structură pot fi de același tip sau de tipuri de date diferite și poartă numele de membrii structurii. Tipul de date utilizat în declararea unui membru al structurii poate fi tip de --
2 date fundamental sau tip complex de date (definit anterior declarării structurii curente). Membrii unei structuri pot fi variabile scalare, variabile agregate sau pointeri [U0][S03]. Declarea unui structuri: În exemplul următor se definește tipul complex de date student, care va conține două câmpuri: nume și nota [U0]. Student nume nota 0 > 'R' 'a' 'd' 'u' '\0' Figura : Exemplu de structură Limbajul C struct student char* nume; int nota; struct student char* nume; int nota; Limbajul C++ Declarea unei variabile de tipul structurii definite anterior: Limbajul C //x variabila de tip student struct student x; sau typedef struct student Student; Student x; Limbajul C++ //x variabila de tip student student x; IC.0. Organizarea structurilor de date Pentru fiecare variabilă utilizată în cadrul unui program se va aloca un spațiu de memorie corespunzător, în funcție de dimensiunea în octeți a tipului variabilei respective. Pentru tipurile primare de date (prezentate în cadrul subcapitolului..) dimensiunea zonei de memorie rezervată pentru un element este în mod uzual cea prezentată în tabelul. În cazul tipurilor complexe de date definite prin intermediul structurilor, zona de memorie ocupată de o eventuală variabilă nu poate fi determinată numai pe baza dimensiunii membrilor componenței. Indiferent de compilatorul utilizat, pentru o variabilă de tip structură se va rezerva spațiu de memorie pentru fiecare membru inclus în definirea tipului de date, în ordinea în care au fost declarați membrii respectivi. Exemplu (C++): struct doubleint int y; double x; --
3 La declararea unei variabile de tipul doubleint, în cadrul zonei de memorie rezervate pentru acea variabilă se vor regăsi, în ordine, un câmp alocat pentru membrul de tip int și un câmp alocat pentru membrul de tip double. Pentru a determina dimensiunea în octeți a unei variabile de tipul definit anterior se poate utiliza următorul exemplu de cod: Exemplu (C++): #include <cstdio> struct doubleint int y; double x; int main( void ) doubleint b; printf("dimensiune doubleint: %d\n", sizeof(b)); printf( "offset b.x: %d\n", (char*)(&b.x) - (char*)(&b) ); printf( "offset b.y: %d\n", (char*)(&b.y) - (char*)(&b) ); return 0; Rezultat: dimensiune doubleint: 6 offset b.y: 0 offset b.x: 8 Structura definită conține doi membri primul de tip int și al doilea de tip double. Considerând strict dimensiunile tipurilor primare de date utilizate (conform tabelului ), ar fi fost de așteptat ca dimensiunea variabilei b să fie de octeți. Totuși, după cum poate fi observat și din rulare programului, dimensiunea variabilei b este de 6 octeți. Zona de memorie alocată variabilei menționate anterior este organizată după cum urmează: i i i i r r r r d d d d d d d d Figura : Organizarea spațiului de memorie pentru Exemplul Legendă: - i octet rezervat pentru reprezentarea valorii de tip întreg; - d octet rezervat pentru reprezentarea valorii de tip real (în dublă precizie); - r octet rezervat pentru demarcarea unui bloc. Acest comportament este explicat prin faptul că, în funcție de procesorul sistemului pe care rulează o aplicație, rezervarea unei zone de memorie pentru un anumit tip de dată se realizează în blocuri de dimensiune egală cu dimensiunea în octeți a bancurilor de memorie disponibile. Exemplu 3 (C++): #include <cstdio> struct doubleint int y; char c; double x; int main( void ) doubleint b; printf("dimensiune doubleint: %d\n", sizeof(b)); printf("offset b.y: %d\n", (char*)(&b.y)-(char*)(&b)); printf("offset b.c: %d\n", (char*)(&b.c)-(char*)(&b)); printf("offset b.x: %d\n", (char*)(&b.x)-(char*)(&b)); return 0; -3-
4 Rezultat: dimensiune doubleint: 6 offset b.y: 0 offset b.c: 4 offset b.x: 8 i i i i c r r r d d d d d d d d Figura 3: Organizarea spațiului de memorie pentru Exemplul 3 Legendă: - i octet rezervat pentru reprezentarea valorii de tip întreg; - c octet rezervat pentru reprezentarea valorii de tip caracter; - d octet rezervat pentru reprezentarea valorii de tip real (în dublă precizie); - r octet rezervat pentru demarcarea unui bloc. IC.0.. Pointeri Obsevație: Conținutul acestui subcapitol este preluat din [U0].. Definire Pentru un tip de date T, o variabilă pointer la T se definește astfel: T* ptrt; // ptrt este un pointer la T O variabilă pointer la T poate reține adresa unui obiect de tip T. Exemple: int* pi; char* tab; Nod *nou, *cap; // pi este un pointer la int // tab este un pointer la char // nou și cap sunt pointeri la tipul Nod. Iniţializare Prima operaţie care se face cu un pointer este iniţializarea. Un pointer la T poate fi iniţializat cu: a) adresa unui T (care exista) pi = &i; pi i > *pi b) valoarea 0 (sau NULL) care semnifică adresă invalidă cap = 0; -4-
5 cap 0 c) valoarea altui pointer la T. De exemplu: dacă p și q sunt de tip T* și p conţine adresa unei variabile de tip T (a fost iniţializat în prealabil), atribuirea q = p va face ca ambii pointeri sa indice aceeaşi variabilă. p > > q d) adresa unui spaţiu de memorie alocat în zona de alocare dinamică. Spaţiul alocat poate să conţină un singur obiect de tip T, acesta se exprimă: in C: p = (T*) malloc( sizeof(t) ); in C++: p = new T; p *p > sau poate să conţină mai multe ( obiecte de tip T: in C: p = (T*) malloc( n*sizeof(t) ); in C++: p = new T[n]; p *p p[0] p[] p[] p[3] p[4] > Exprimările din C++ sunt în mod evident mult mai simple și le vom folosi pe acestea în continuare. Iată un exemplu: typedef Student* PStudent; PStudent* ptps; ptps = new PStudent[nr]; // pointer la tablou de pointeri la studenţi 3. Dereferenţierea -5-
6 Este operaţia prin care având un pointer la T (care conţine adresa unui T) obţinem o valoare stânga care se refera la obiectul indicat (obiectul pointat). Pentru a obţine obiectul pointat folosim operatorul * astfel: *pi = 5; // obiectul pointat ia valoarea 5!!! Atenție!!! Aceasta operaţie poate fi aplicată numai pointerilor care conţin într-adevăr adresa unui obiect. De exemplu, nu se poate face dereferențierea unui pointer nul (cu valoare 0) sau a unui pointer neiniţializat. Este valabil și pentru operatorul -> care conţine și el o dereferențiere care se observă în scrierea echivalentă: ps->nota este echivalent cu (*ps).nota. 4. Pointeri si tablouri Numele unui tablou de T este convertit automat la tipul pointer la T", deci poate fi folosit pentru a iniţializa un pointer la T". Valoarea acestui pointer este adresa primului element al tabloului: T tab[0]; T* ptrt = tab; // ptrt conţine adresa primului element Un pointer la T este deseori folosit pentru a se referi pe rând la elementele unui tablou. Următoarele operaţii semnifica: ptrt++ ptrt-- // pointează la următorul element din tablou // creează o valoare stânga! // pointează la elementul precedent din tablou // creează o valoare stânga! 5. Eliberarea spaţiului alocat dinamic Dacă un pointer a fost iniţializat cu adresa unui spaţiu din zona de alocare dinamică, atunci când nu mai avem nevoie de spaţiul respectiv (adică nu mai avem nevoie de obiectul din spaţiul respectiv) vom elibera spaţiul. El va putea fi astfel utilizat pentru alocări ulterioare. Dacă p este un pointer care a fost iniţializat printr-o alocare de memorie, eliberarea memoriei alocate se exprimă: în C: free(p); în C++: delete p;!!!atentie!!! Nici free(), nici delete nu modifică valoarea pointerului p, dar obiectul a cărui adresa este conţinută de p nu trebuie sa fie referit după eliberare. -6-
7 IC.0.3 Noțiuni fundamentale de analiza și complexitatea algoritmilor Evaluarea complexității algoritmilor secvențiali are drept scop evaluarea consumului de timp și de spațiu de memorie [C0][U0]. Studierea consumului de memorie se referă în acest caz la estimarea consumului de memorie suplimentară (sau auxiliară/temporară) utilizată în rezolvarea unei probleme. Există 3 cazuri implicate în analiza complexității unui algoritm [C0]: a. analiza configurației de date celei mai nefavorabile (sau analiza cazurilor degenerate); b. analiza configurației de date celei mai favorabile; c. analiza comportamentului pe cazuri de medie presupune probabilitatea de apariție a diferitelor configurații a datelor de intrare. Exemplu 4: Se dorește sortarea crescătoare a valorilor numerice stocate într-un vector. Configurațiile amintite mai sus sunt următoarele: a. cazul cel mai nefavorabil vectorul este sortat descrescător (relația de ordine a elementelor din vector este inversă față de ceea ce se dorește); b. cazul cel mai favorabil vectorul este deja sortat crescător; c. cazuri medii elementele din vector nu respectă nici un criteriu de sortare. În mod uzual, complexitatea timp și spațiu a algoritmilor se analizează pentru cazurile cele mai nefavorabile [C0][U0]. Rezultatele obținute în urma acestui tip de analiză sunt utilizate pentru a compara performanțelor algoritmilor și pentru a estima comportamentul acestora în funcție de variația dimensiunii datelor de intrare. Complexitatea unui algoritm secvenţial se exprima de regulă in limbajul ordinului O. Definiție: [U0] Fie două funcţii f : N N şi g : N N. Spunem ca f aparţine O(g) (are ordinul de complexitate O(g)) şi se notează f = O(g) dacă şi numai dacă există o constantă reală c si un număr natural n 0 astfel încât pentru n > n f ( < c g( ) 0 n Observatie: f : N N este o funcție f(, cu n dimensiunea datelor de intrare. f( reprezintă timpul de lucru al algoritmului exprimat în pași. Lema: [C0] Dacă f este o funcție polinomială de grad k, de forma: k k f ( = ak n + ak n an + a Atunci f = O( n k ). 0, Demonstrație: Efectuând majorări în membru drept al funcției f se obține: k f < n ( a + a a + a ), n Notând cu ( k k 0 > ( ak + ak a + a0 ) = c, c R, obținem: f ( n ) < c n k, n > n = 0 Concluzie f = O( n k ), și ordinul O exprimă viteza de variație a funcției, funcție de argument. -7-
8 Proprietăți ale ordinului de complexitate [C0][U0] ) Fie f, g : N N. Dacă f = O(g) atunci k f = O(g), f = O( k g), k R constant. ) Fie f, g, h : N N și: f = O(g) g = O(h). Atunci f = O(h) 3) Fie f, f, g, g : N N și: f = O ), f = O ). Atunci: f + f = O g + ) și f f = O g ) ( g ( g ( g ( g Aceasta ultimă proprietate permite ca, atunci când avem două bucle imbricate (de complexităţi diferite), complexitatea totală să se obţină înmulţindu-se cele doua complexităţi. Cele două complexităţi se adună, dacă buclele sunt succesive [U0]. IC.0.4 Evaluarea complexității și clase de complexitate După cum a fost menționat în subcapitolul.3, evaluarea complexității unui algoritm implică determinarea unei relații de variație a timpului și/sau a spațiului de memorie consumat relativ la dimensiunea datelor de intrare ale problemei. În ceea ce privește timpu consumat, intuitiv, se poate afirma că ordinul de complexitate timp indică numărul de pași efectuat de algoritm pentru a identifica soluția dorită. Rezultatul evaluării complexității unui algoritm înseamnă practic încadrarea algoritmului studiat într-una din clasele de complexitate de mai jos [C0][U0]: O() clasa algoritmilor constanti; O(log clasa algoritmilor logaritmici; O( clasa algoritmilor liniari; O(nlog clasa algoritmilor polilogaritmici; O(n ) clasa algoritmilor patratici; O(n k log clasa algoritmilor polilogaritmici; O(n k+ ) clasa algoritmilor polinomiali; O( n ) clasa algoritmilor exponenţiali. Între clasele de complexitate anterioare au loc următoarele incluziuni: k k+ n O() O(log O( O( nlog O( n ) O( n log O( n ) O( ) IC.0.5 Exemple de analiză. O buclă for for (i=0;i<n;i++) S; //secvenţă de ordin O(). Două bucle for for (i=0;i<n;i++) for (j=0;j<n;j++) S; //secvență de ordin O() n O( ) = O( n n O() = O( n ) -8-
9 3. Două bucle for for (j=0;j<n;j++) for (i=0;i<j;i++) S; //secvență de ordin O() 4. Buclă while h=; while (h<= s; //secvenţă de ordin O() h=*h; 5. Buclă while ce conţine buclă for h=n; while (h>0-6 ) for (i=0;i<n;i++) S; //secvenţă de ordin O() h=h/; n(n + ) i = O ( n ) pas h k k k n n k log n O(log f f = O( g = O( g ( ) f ( ) f = O( g while O(log O( n log for O( ( g ( ) Bibliografie [C0] Craus M., Bârsan C., Structuri de date și algoritmi, Editura Gh. Asachi, Iași, 00 [U0] Ungureanu F., Structuri de date și algoritmi Note de curs, Universitatea Tehnică Gheorghe Asachi din Iași, Facultatea de Automatică și Calculatoare [S03] Șerban E., Programarea calculatoarelor Note de curs, Universitatea Tehnică Gheorghe Asachi din Iași, Facultatea de Automatică și Calculatoare -9-
Microsoft Word - CarteC.doc
Transmiterea parametrilor unei funcții Parametrii se transmit de la funcţia apelantă la funcţia apelată prin intermediul stivei. La apelul unei funcţii, pe stivă se crează o înregistrare de activare, care
Mai multSUBPROGRAME
SUBPROGRAME Un subprogram este un ansamblu ce poate conţine tipuri de date, variabile şi instrucţiuni destinate unei anumite prelucrări (calcule, citiri, scrieri). Subprogramul poate fi executat doar dacă
Mai multLimbaje de Programare Curs 6 – Functii de intrare-iesire
Limbaje de Programare Curs 6 Funcţii de intrare-ieşire Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Citire formatată 2 Citirea şirurilor de caractere 3 Citirea unor linii
Mai multMicrosoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx
SDA (PC2) Curs 10 Arbori Iulian Năstac Definiția 1: Arbori Recapitulare Arborele este un graf orientat, aciclic și simplu conex. Definiția 2: Un arbore este un ansamblu de structuri de date de natură recursivă
Mai multL7
Lucrarea de laborator nr. 7 POINTERI 1. Conţinutul lucrării În lucrare se prezintă tipul pointer, operaţiile permise asupra pointerilor, modul de alocare şi eliberare dinamică a memoriei. 2. Consideraţii
Mai multMicrosoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]
Detalii de implementare. Declararea variabilelor, transmiterea parametrilor catre subprograme. Declararea variabilelor variabile globale -declarate in afara oricarei functii variabile locale -declarate
Mai multMicrosoft Word - CarteC.doc
Introducere în limbajul de programare C - C este un limbaj de programare ale cărui caracteristici sunt economia de expresie, structuri moderne de control al fluxului şi de date, precum şi un set bogat
Mai multProgramarea şi utilizarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect.dr. Adrian Runceanu Curs 3 Elemente introductive ale
Mai multLaborator 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
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 a două funcţii care au acelaşi nume În C++ acest lucru
Mai multSlide 1
STRUCTURI DE DATE Fundamente C/C++ EVALUARE SEMESTRU: 4 puncte Testare cunostinte: 1. Calculator (2 puncte) 2. Scris/Oral (2 puncte) 2 EVALUARE EXAMEN: 6 puncte Test cunostinte (pe calculator): 1 punct.
Mai multSlide 1
1 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs Alocarea dinamică de memorie în C++ Conţinutul cursului 1. Tipuri de date. Conceptul de pointer 3. Operatori specifici pointerilor 4. Aritmetica
Mai multMicrosoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx
Curs SDA (PC2) Curs 4 Structuri de date (continuare) Iulian Năstac 10. Funcţii pentru alocarea dinamică a memoriei (Recapitulare) Alocarea dinamică este caracteristica prin care un program poate obţine
Mai multObject Oriented Programming
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
Mai multLimbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012
Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012 EROARE: lipsa iniţializării E o EROARE să folosim o variabilă neiniţializată int sum; for (i=0; i++ < 10; ) sum += a[i];
Mai multproiectarea bazelor de date
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Proiectarea bazelor de date Lect.dr. Adrian
Mai multMicrosoft Word - PCLP2_Curs_4_2019.doc
12. Tipuri de date derivate direct - Tipul pointer Tipurile de date derivate direct sunt tipuri de date create pe baza unor tipuri de date existente. In limbajul C, un astfel de tip, nestructurat (simplu),
Mai multE_d_Informatica_sp_MI_2015_bar_02_LRO
Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Varianta 2 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Toate subiectele
Mai multMicrosoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx
SDA (PC2) Curs 9 Liste / Grafuri / Arbori Iulian Năstac Lista dublu înlănțuită Recapitulare Într-o astfel de listă fiecare nod conţine doi pointeri: unul spre nodul următor şi unul spre nodul precedent.
Mai multE_d_Informatica_sp_SN_2014_bar_10_LRO
Examenul de bacalaureat naţional 2014 Proba E. d) Informatică Varianta 10 Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. Timpul de lucru efectiv este de 3 ore. În rezolvările cerute,
Mai multALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru
ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine numărul de operaţii efectuate de către un algoritm care determină
Mai multSlide 1
STRUCTURI DE DATE Lista simpla Lista dubla LISTA LINIARA Lista liniara: Colectie de elemente denumite noduri; Relatie de ordine rezultata din pozitia nodurilor; Elemente de acelasi tip structura omogena;
Mai multParadigme de Programare
Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 9 : 1 / 38 Cursul 9 Concluzie Paradigma Funcțională 9 : 2 / 38 Cursul 9:
Mai multDiapositive 1
Tablouri Operatii pe tablouri bidimensionale Lectii de pregatire pentru Admitere 09 / 03 / 2019 1 Cuprins Operatii pe tablouri bidimensionale 0. Tablouri unidimensionale scurta recapitulare 1.Tablouri
Mai multAdresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace
174 12 Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este aceasta văzută de programatorul în limbaj de nivel înalt.
Mai multLimbaje de Programare Curs 5 – Siruri de caractere
Limbaje de Programare Curs 5 Şiruri de caractere Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Şiruri de caractere 2 Tipul pointer 3 Funcţii cu şiruri de caractere Şiruri
Mai multPowerPoint-Präsentation
Universitatea Transilvania din Braşov Laboratorul de Vedere Artificială Robustă şi Control Metode Numerice Curs 01 Introducere Gigel Măceșanu 1 Cuprins Obiectivele cursului Organizare: Structura cursului
Mai multLecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe
Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe bogdan.alexe@fmi.unibuc.ro Cuprinsul lecției de azi Enunțuri și rezolvări pentru
Mai multParadigme de programare
Curs 4 Transparență referențială. Legare statică / dinamică. Modelul contextual de evaluare. Transparență referențială Cuprins Efecte laterale Transparență referențială 2 Efecte laterale Efecte laterale
Mai multALGORITMII Ş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
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 far Mohammed ibn Musâ al- Khowârizmî în cartea sa intitulată
Mai multSlide 1
CURS 4 Structura generală a unui program C Program - ansamblu de instrucţiuni incluse în una sau mai multe funcţii, care specifică operaţiile ce trebuie efectuate asupra unor date pentru a fi prelucrate
Mai multInterfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de
Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de dezvoltare bazată pe un microcontroller ATmega 328P pe 8 biți cu 32kB memorie flash. Placa de dezvoltare conține:
Mai multProcesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S
Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere Scopul acestei lucrări de laborator este de a familiariza
Mai multLaborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011
Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011 I. NOŢIUNI TEORETICE A. Suprascrierea metodelor O clasă derivată
Mai multtehnologii web
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Tehnologii Web Lector univ. dr. Adrian Runceanu 1 Curs 7 Limbajul PHP (partea II) 2
Mai multMicrosoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc
Software pentru ordonarea multirang a componentelor unei colectivităţi S e prezintă un algoritm pentru dispunerea elementelor unei colectivităţi în raport cu mai multe criterii şi un software aferent,
Mai multPROGRAMARE ORIENTATA PE OBIECTE
Curs 2 Principiile Programării Orientate pe Obiecte Programare Orientată pe Obiecte Tehnici de programare Programarea procedurală Modul în care este abordată programarea, din punct de vedere al descompunerii
Mai multCurs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1
Curs : Tehnica divizării (I) 1 In cursul anterior am văzut cum se analizează eficiența algoritmilor recursivi Se scrie relația de recurență corespunzătoare timpului de execuție Se rezolvă relația de recurență
Mai multLaborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011
Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011 I. NOŢIUNI TEORETICE A. Ce este un fir de execuţie? Înainte de a defini conceptul de fir
Mai multTop
PROGRAMARE ORIENTATĂ PE OBIECTE Tratarea excepțiilor O excepție este o eroare care poate să apară la rularea unui program. Exemple: încercarea de deschidere a unui fișier ce nu există depășirea limitelor
Mai multCapitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu
Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursul precedent am prezentat modelul de spaţiu vectorial
Mai multOperatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O
Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici Operatii pe biti Operatorul conditional Operatori Logici
Mai multProgramarea şi utilizarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect.dr. Adrian Runceanu Curs 6 Instrucţiunile limbajului
Mai multMatrici ș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
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ă stocați douăzeci de nume de angajați în variabile
Mai multModelarea si Simularea Sistemelor de Calcul
Modelarea şi Simularea Sistemelor de Calcul Generarea de numere aleatoare ( lab. 5) Numim variabilă aleatoare acea funcţie X : (Ω, δ, P) R, care în cazul mai multor experimente efectuate în condiţii identice
Mai multMicrosoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx
Curs SDA (PC2) Curs 3 Pointeri (continuare) Structuri de date Iulian Năstac Pointeri (Recapitulare) Un pointer este o variabilă care conţine o adresă din memorie, unde se află valoarea altei variabile.
Mai mult-
Cursul 6 Expresii în C/C++ (I) https://docs.microsoft.com/en-us/cpp/cpp/expressions-cpp După cum am văzut, într-un program de calcul scris în limbajul C/C++ prelucrarea datelor se realizează printr-o serie
Mai multLUCRAREA NR
LUCRAREA NR. 5 TIPURI DE DATE STRUCTURATE În C există două categorii de tipuri de date structurate: tablourile şi structurile. Un tablou este o colecţie omogenă de valori de acelaşi tip identificate printr-un
Mai multTablouri (continuare)
Vector Dinamic DYNAMIC ARRAY Observații 1. Un tablou este static: nu pot fi inserate sau şterse celule. 2. Vector - tablou unidimensional 3. Reprezentarea vectorilor este secvenţială, adică elementele
Mai multLogică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014
Logică și structuri discrete Limbaje regulate și automate Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 24 noiembrie 2014 Un exemplu: automatul de cafea acțiuni (utilizator): introdu
Mai multTablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s
Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n=1723237 Cifre = {1,2,3,7 Se cere să se utilizeze subprograme care să comunice între ele şi
Mai multMetode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1
Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1 Cuprins Problema sortării Algoritmul de sortare prin interschimbare (Bubble sort)
Mai multLUMINIŢA SCRIPCARIU
ANEXA A PROGRAMAREA SERVICIILOR INTERNET Programarea serviciilor de reţea implică o cunoaştere amănunţită a modului în care circulă datele prin Internet şi, mai precis, a protocoalelor din suita TCP/IP
Mai multLaborator 3
Laborator 3 Programare III săptămâna 8-12.10.2018 OBIECTIVE: - Folosirea modificatorilor unei clase (public, abstract, final) - Folosirea modificatorilor de acces în declaraţiile membrilor unei clase Noţiuni:
Mai multMicrosoft Word - O problema cu bits.doc
O problemă cu bits 1 Tiberiu Socaciu Enunţul Pe pagina Proful de Mate de pe Facebook 2 am primit de la un elev de clasa a IX-a următoarea provocare 3 : Vom oferi două soluţii, una folosind manipulări de
Mai multElemente de aritmetica
Elemente de aritmetică Anul II Februarie 2017 Divizibilitate în Z Definiţie Fie a, b Z. Spunem că a divide b (scriem a b) dacă există c Z astfel încât b = ac. In acest caz spunem că a este un divizor al
Mai multGHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G
CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G MAGDA COLEGIUL NAŢIONAL ROMAN-VODĂ ROMAN PROIECTUL UNITĂŢII DE ÎNVĂŢARE
Mai multLimbaje de Programare Curs 8 – Fisiere
Limbaje de Programare Curs 8 Fişiere Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Lucrul cu fişiere 2 Fişiere de tip text 3 Funcţii pentru cazuri de eroare 4 Fişiere
Mai multCuantizare Vectoriala.doc
4. Metoda de quadro în compresie fractala optimizata rata-distorsiune În cele ce urmeaza descriem o metoda de quadro bazata pe optimizarea criteriului ratadistorsiune în compresia fractala a imaginilor.
Mai multPAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C
PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi Calculatoare Universitatea Politehnica Bucureşti PAS
Mai multTipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea
Tipuri de date abstracte 30 noiembrie 2005 Tipuri de date abstracte 2 Programe compuse din mai multe fişiere Implicit, obiectele declarate la nivel de fişier sunt unice într-un program (douǎ declaraţii
Mai multLucrarea 10
Lucrarea 10. Studierea facilitatilor senzoriale, de calcul si de comunicatie ale unei placi de tip Arduino 1. Obiectivul lucrarii Lucrarea isi propune sa prezinte facilitatile de calcul, senzoriale si
Mai multMicrosoft Word - CarteC.doc
INSTRUCŢIUNILE LIMBAJULUI C (2) Instrucţiuni repetitive Instrucţiunea while Instrucţiunea while are formatul: while(expresie) Expresie DA Instrucţiune NU Instrucţiunea while produce în primul rând evaluarea
Mai multDeclaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea
Declaraţii. Instrucţiuni 19 octombrie 2005 Declaraţii. Instrucţiuni 2 Domeniul de vizibilitate al identificatorilor Pt. orice identificator, compilatorul trebuie sǎ-i decidǎ semnificaţia Identificatorii
Mai multI
METODA VECTORIALĂ ÎN GEOMETRIE prof. Andrei - Octavian Dobre Această metodă poate fi descrisă după cum urmează: Fiind dată o problemă de geometrie, după explicitarea şi reprezentarea grafică a configuraţiei
Mai multCaraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai
Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai specializați dintre noi în domeniul calculatoarelor
Mai multSSC-Impartire
Adunarea Înmulțirea Numere și operații în virgulă mobilă 1 Împărțirea cu refacerea restului parțial Împărțirea fără refacerea restului parțial 2 Primul operand: deîmpărțit (X) Al doilea operand: împărțitor
Mai multPHP (II)
PHP şi MySQL Bazele de date sunt colecţii de date, aranjate într-o anumită formă Operaţii : - Crearea bazei de date; - Conectarea la baza de date; - Inserarea datelor in baza de date; - Ștergerea datelor
Mai multMicrosoft Word - Curs1.docx
1. REPREZENTAREA INFORMAȚIILOR ÎN CALCULATOR 1.1. CONCEPTUL DE DATĂ ȘI INFORMAȚIE Datele desemnează elementele primare, provenind din diverse surse, fără o formă organizată care să permită luarea unor
Mai mult1
Laborator 3 Supraîncărcarea operatorilor (părțile II și III) 1. Supraîncărcarea operatorilor (părțile II și III) Exemplu 1: Consideram clasa sir, in care fiecare obiect retine adresa unui sir de caractere.
Mai multȘcoala: Clasa a V-a Nr. ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ Nr. crt. Unitatea de
Școala: Clasa a V-a ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ de SEMESTRUL I. Recapitulare, iniţială. Numere - reprezentare comparare, estimare
Mai multPCLPII-C16(9)
Programarea Calculatoarelor și Limbaje de Programare - Curs 16 Despre proiect ce s-a studiat? ce se va studia? proiectul tema date de intrare conţinut date de ieşire C9(16)-1 Ce s-a studiat? Instrucţiuni
Mai mult1 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
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 o anumită valoare a unei chei. Pentru operaţiile asupra
Mai multAnaliză statică Analiza fluxului de date 23 octombrie 2014
Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică: definiție O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăți ale programului sursă. (in
Mai mult2
C5: Metoda matricilor de transfer BIBLIOGRAFIE E. Tulcan Paulescu, M. Paulescu Algorithms for electronic states in artificial semiconductors of use in intermediate band solar cells engineering. In Physics
Mai multPowerPoint Presentation
Circuite Integrate Digitale Conf. Monica Dascălu Curs Seminar Laborator notă separată Notare: 40% seminar 20% teme // + TEMA SUPLIMENTARA 40% examen 2014 CID - curs 1 2 Bibliografie Note de curs Cursul
Mai multgaussx.dvi
Algebră liniarăi 1 Recapitulare cunoştiinţe de algebră din clasa XI-a În clasa a XI s-a studiat la algebră problema existenţei soluţiei 1 şi calculării soluţiei sistemelor liniare 2 (adică sisteme care
Mai multPropunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp
Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia completă a subprogramului calcul, care primeşte prin intermediul
Mai multAnaliză de flux de date 29 octombrie 2012
Analiză de flux de date 29 octombrie 2012 Analiză statică: definiţie O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăţi ale programului sursă. (in principal corectitudinea,
Mai multMicrosoft Word - cap1p4.doc
Algebră liniară, geometrie analitică şi diferenţială.6 Subspaţii vectoriale Fie V un spaţiu vectorial peste corpul K. În cele ce urmează vom introduce două definiţii echivalente pentru noţiunea de subspaţiu
Mai multCursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această ev
Cursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această evoluţie, exprimată succint prin şirul de incluziuni
Mai multSlide 1
SCTR -SZOKE ENIKO - Curs 4 continuare curs 3 3. Componentele hard ale unui sistem de calcul in timp real 3.1 Unitatea centrala de calcul 3.1.1 Moduri de adresare 3.1.2 Clase de arhitecturi ale unitatii
Mai multŞcoala ………
Şcoala... Clasa a X-a Disciplina: Matematică TC + CD Anul şcolar: 07-08 TC = trunchi comun 35 săptămâni: 8 săptămâni semestrul I CD = curriculum diferenţiat Nr. ore: 3 ore / săptămână 7 săptămâni semestrul
Mai multLaborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P
Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 Prezentare generală Matlab 1.1 Help on-line 1. Limbajul
Mai multMicrosoft Word - 2 Filtre neliniare.doc
20 Capitolul 2 - Filtre neliniare 21 CAPITOLUL 2 FILTRE NELINIARE 2-1. PRELIMINARII Răspunsul la impuls determină capacitatea filtrului de a elimina zgomotul de impulsuri. Un filtru cu răspunsul la impuls
Mai multPlatformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor
Platformăde e-learning și curriculăe-content pentru Sisteme de operare 13. Planificarea proceselor Suport curs OSC MOS Capitolul 5 CPU Scheduling Capitolul 2 Processes and Threads Secțiunea 5 Scheduling
Mai multGheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-
Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard 3 Algebră Capitolul I. MULŢIMEA NUMERELOR RAŢIONALE Identificarea caracteristicilor numerelor raţionale
Mai multScrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 1. În declararea alăturată, câmpurile x şi y ale înregistrării pot memora coordonatele carteziene ale unui punct din planul
Mai multGenerarea semnalelor standard 1 Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate
Generarea semnalelor standard Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate standard în ingineria sistemelor automate. Însuşirea
Mai multOPERATII DE PRELUCRAREA IMAGINILOR 1
OPERATII DE PRELUCRAREA IMAGINILOR Prelucrarea imaginilor 2 Tipuri de operatii de prelucrare Clasificare dupa numarul de pixeli din imaginea initiala folositi pentru calculul valorii unui pixel din imaginea
Mai multCASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL
CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL NATIONAL VASILE ALECSANDRI, BACAU TIMOFTI AFRODITA
Mai multLab6LCD
LABORATOR 6 - Interfaţă pentru afişor cu cristale lichide (LCD), partea II-a Scopul lucrării În laboratorul anterior s-au implementat funcţiile rd_lcdreg(char vrs), wr_lcdreg(char vrs, char data), void
Mai multLaborator 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
Laborator 2 - Încapsularea Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema 2.2 Să se modifice funcţiile referitoare la cerc astfel încât parametrul CERC să fie
Mai multProgramarea şi utilizarea calculatoarelor
Programare orientată pe obiecte # 10 JAVA Limbajul JAVA. Clasa String 2018 Adrian Runceanu www.runceanu.ro/adrian copyright@www.adrian.runceanu.ro Curs 10 Clasa String in Java 03.12.2018 Curs - Programare
Mai multSlide 1
Arhitectura Sistemelor de Calcul Curs 8 Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare cs.pub.ro curs.cs.pub.ro Structura SIMD Cuprins Probleme de Comunicatii intre Procesoarele
Mai multCURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),
CURE ÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t), y(t), z(t)) cu x, y, z polinoame de grad n. Maximul
Mai multrrs_12_2012.indd
Corelaţia dintre Produsul Intern Brut/locuitor şi Rata de ocupare a populaţiei model econometric de analiză Drd. Ligia PRODAN Academia de Studii Economice, Bucureşti Abstract Se prezintă evoluţia Ratei
Mai multLaborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011
Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011 I. NOŢIUNI TEORETICE A. Instrucţiuni condiţionale 1. Intrucţiunea
Mai multLaborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve
Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (vezi Program C) - BUILD: operație complexă prin care
Mai multMicrosoft Word _POO_Lab_1_Modificari_v01.htm
Laborator POO - 00 (draft) 00-00 / 0//00 00_POO_Lab Modificari_v0.htm POO Laborator Modificarea programelor Java. Studiu de caz: programul Salut.java. Varianta care utilizeaza un argument al programului
Mai mult