Tipuri abstracte de date.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Tipuri abstracte de date."

Transcript

1 Tipuri abstracte de date. Limbajele de programare furnizează tipuri de date standard (sau tipuri primitive). De exemplu în C acestea sunt: char, int, float, double. Un tip de date precizează o mulţime D, finită şi ordonată de valori (constantele tipului) şi o mulţime de operaţii aplicate valorilor, de forma F : D x D D pentru operaţii binare sau D D pentru operaţii unare Astfel pentru tipul standard int avem: D submulţimea întregilor cuprinsă între şi 32767, F = {+,, *, /, %} Un Tip Abstract de Date (TAD) este o specificare a unui set de date de un anumit tip, împreună cu un set de operaţii care pot fi executate cu aceste date. Acesta este o entitate matematică abstractă, cu existenţă independentă. Abstractizarea reprezintă concentrarea asupra esenţialului, ignorând detaliile (contează ce nu cum ). De ce sunt necesare TAD? Limbajele de programare, deşi nu pot oferi toată varietatea de tipuri necesară utilizatorului pentru a şi dezvolta aplicaţiile, posedă un mecanism de creere a unor noi tipuri de date. Implementările acestor tipuri de nivel înalt, dispersate în program, cresc complexitatea şi influienţează negativ asupra clarităţii. Dacă operaţiile asupra acestor tipuri de nivel înalt nu se folosesc în mod consistent, atunci pot apare erori în program. Specificarea Tipurilor Abstracte de Date. Un TAD (Tip Abstract de Date) este specificat printr un triplet (D, F, A), cu:: D o mulţime de domenii (sau tipuri). F o mulţime de funcţii A o mulţime de axiome, care precizează proprietăţile funcţiilor, şi care trebuiesc respectate la implementare Exemple: 1. Mulţimea numerelor naturale domenii: {0,1,2, } {true,false} operaţii: zero, iszero, succ, add axiome: iszero(0) = true iszero(succ(x)) = false add(0,x) = x add(succ(x),y)=succ(add(x,y)) 2. O coadă de întregi.:. domenii: int {true,false} Q = mulţimea cozilor de întregi funcţii: new crează o coadă de întregi vidă enq inserează un întreg ca ultimă poziţie în coadă deq şterge primul element din coadă front furnizează întregul din vârful cozii size furnizează numărul de întregi din coadă isempty testează dacă lungimea cozii este 0 sau nu axiome: new() întoarce o coadă de întregi front(enq(x, new()) = x deq(enq(x, new()) = new() front(enq(x, enq(y, Q))) = front(enq(y, Q)) deq(enq(x,enq(y,q))) = enq(x, deq(enq(y, Q))) 1

2 Alte exemple de structuri matematice care pot reprezenta TAD sunt mulţimile, grafurile, arborii, matricele, polinoamele, etc. Pentru starea coadă vidă operaţiile front şi deq nu sunt definite. Trebuiesc stabilite precondiţii pentru fiecare operaţie, indicând exact când se pot aplica aceste operaţii. O precondiţie a unei operaţii este o aserţiune logică care specifică restricţiile impuse asupra argumentelor operaţiei. O precondiţie falsă a unei operaţii, conduce la o operaţie nesigură, la un program incorect. Astfel o precondiţie atât pentru front cât şi pentru deq este: coadă nevidă front(q) şi deq(q) precondiţie:!isempty(q) Pentru ca un TAD să fie util, trebuie să fie îndeplinite precondiţiile pentru fiecare operaţie. Un TAD bine definit indică clar precondiţiile pentru fiecare operaţie. TAD documentează şi postcondiţiile condiţii care devin adevărate după executarea unei operaţii. De exemplu, după executarea operaţiei enq apare postcondiţia coadă nevidă : enq(x, Q) postcondiţie:!isempty(q) Operaţiile TAD pot fi gândite ca funcţii în sens matematic. Precondiţiile şi postcondiţiile definesc domeniul şi codomeniul funcţiei. TAD este complet specificat numai în momentul în care toate operaţiile au fost definite, cu toate precondiţiile şi postcondiţiile implicate. Un TAD este specificat sintactic prin: nume tipurile (domeniile) cu care este construit semnăturile operaţiilor (nume, intrări tipuri, număr şi ordine parametri, ieşiri tipul valorii întoarse) Semantic, TAD este precizat axiomatic printr o serie de reguli logice (axiome) care leagă operaţiile între ele, sau descriind explicit semnificaţia operaţiilor în funcţie de operaţiile asupra altor TAD. De exemplu, o stivă poate fi specificată astfel: Nume: Stiva(de TipElem). Domenii: Stiva mulţimea instanţelor tuturor stivelor Elem mulţimea tuturor elementelor ce pot apare într o instanţă Stiva int tipul primitiv întreg Funcţii constructor: new: > Stiva modificatori: push: Stiva x Elem > Stiva pop: Stiva / > Stiva accesori: top: Stiva / > Elem isempty: Stiva > boolean destructor: delete: Stiva > Semantici (axiome): top(push(s,x))=x isempty(new())=true Precondiţii: pop(s): not Empty(S) top(s): not Empty(S) pop(push(s,x))=s isempty(push(s,x))=false 2

3 Operaţiile top(new()) şi pop(new()) sunt incorecte. Dacă argumentul este o stivă vidă, operaţiile top şi pop sunt nedefinite. Un invariant al unei instanţe a unui TAD este o proprietate care se păstrează între operaţiile instanţei Implementarea Tipurilor Abstracte de Date. Există o distincţie între TAD matematic şi implementarea sa într un limbaj de programare. Un singur TAD poate avea mai multe implementări diferite. Stăpânirea aplicaţiilor complexe se obţine prin descompunerea în module. Un modul trebuie să fie simplu, cu complexitatea ascunsă în interiorul lui. Modulele au o interfaţă simplă care permite folosirea, fără a cunoaşte implementarea Un TAD folosit într un program, este implementat printr un modul. Un modul este o parte a programului izolată de restul programului printr o interfaţă bine definită, care lămureşte modul în care este folosit modulul.. Modulele asigură servicii (funcţii, tipuri de date) Clienţilor. Un client poate fi orice (program, persoană, alt modul) care foloseşte servicile modulului. Spunem că servicile se exportă clientului, sau sunt importate din modul. Modul Interfaţă Utilizator Utilizarea tipurilor abstracte de date asigură ascunderea şi încapsularea informaţiei. Conceptul de modul implementează ideea ascunderii informaţiei, clienţii nu au acces la detaliile implementării modulului. Clientul are acces la serviciile exportate prin interfaţă. În general, există un modul separat pentru fiecare TAD. Implementarea este ascunsă în spatele interfeţei, care rămâne neschimbată, chiar dacă implementarea se schimbă. Datele şi operaţiile care le manipulează sunt toate combinate într un singur loc, adică sunt încapsulate în interiorul modulului. În C fiecare TAD constă dintr o structură, ascunsă utilizatorului. Utilizatorul TAD (clientul) primeşte numai o referinţă (un pointer opac ) la această structură. Pentru fiecare operaţie a TAD se defineşte o funcţie, care conţine ca argument pointerul la TAD. Clientul nu poate folosi acest pointer pentru a accesa direct câmpurile structurii, asigurându se în acest mod ascunderea informaţiei. struct coada struct nod Coada Q fata data spate lung next Implementarea trebuie să conţină: 3

4 o funcţie care crează un nou obiect (constructor) o funcţie care eliberează memoria asociată cu obiectul TAD când acesta nu se mai foloseşte (destructor). In C, se separă: Exemplu implementarea modulului TAD într un fişier.c care conţine structura concretă şi definiţiile funcţilor, interfaţa modulului, într un fişier.h care conţine definiri de tipuri şi prototipurile funcţiilor exportate. /* Fisier: Coada.h */ struct coada; //anunta structura typedef struct coada* Coada; //furnizeaza un pointer opac la ea Coada Q_New (); // constructor void Q_Delete(Coada* pq); // destructor // Functii de acces void* Front(Coada Q); int Q_Size(Coada Q); int Q_Empty(Coada Q); /* Functii de manipulare */ void Enq (Coada Q, void *el); void Deq (Coada Q); În interfaţa Coada.h se defineşte un pointer opac Coada la o structură struct coada, care este numai declarată, fiind definită în altă parte (în fişierul de implementare Coada.c). Clientul va include fişierul de interfaţă prin #include Coada.h, deci apelurile funcţiilor exportate vor fi recunoscute de către compilator. Clientul îsi poate declara obiecte de tip Coada şi şi poate defini funcţii cu argumente sau valori întoarse de tip Coada. Clientul nu se poate referi direct la câmpurile structurii prin intermediul pointerului Coada deoarece nu dispune de definiţia structurii struct Coada. Fişierul de implementare va conţine: /* Fisier: Coada.c */ #include<stdio.h> #include<stdlib.h> #include "Coada.h" typedef struct nod{ /* structura, neexportata */ void* data; struct nod* next; } Nod; typedef Nod* RefNod; typedef struct coada{ RefNod fata; 4

5 RefNod spate; int lung; } Coada; /* Constructor-Destructor */ Coada Q_New(){ Coada Q; Q = malloc(sizeof((*coada)); Q->fata = Q->spate = NULL; Q->lung = 0; return(q); } void Q_Delete(Coada* pq) {...} /* Functii de access */ void* Front(Coada Q) {...} int Q_Size(Coada Q) {...} int Q_Empty(Coada Q) {...} /* Functii de manipulare */ void Enq (Coada Q, void* data) {...} void Deq (Coada Q) {...} Constructorul şi destructorul pentru structura internă Nod sunt folosite de funcţiile Enq şi Deq. Aceste funcţii nu trebuie exportate, deoarece ele lucrează direct cu structura internă Nod. Clientul trebuie să şi scrie numai aplicaţia (de exemplu fişierul TestCoada.c, care testează modulul Coada. Coada de întregi nu este o coadă generală motiv pentru care vom scrie o coadă de orice. Există două soluţii posibile. Se defineşte tipul TipElement în fişierul.h prin: typedef int TipElement; Putem schimba astfel tipul elementului editând o singură linie de cod. Dacă dorim să lucrăm în acelaşi program cu două cozi, una de int şi cealaltă de double atunci am avea nevoie de două module coadă diferite. Se defineşte TipElement ca un pointer generic: typedef void* TipElement Soluţia este mai periculoasă, fiind mai greu de depanat. Un TAD este caracterizat prin următoarele proprietăţi: exportă un tip exportă o mulţime de operaţii ce alcătuiesc interfaţa operaţiile interfeţei sunt singurul mijloc de acces la structura de date a TAD axiomele şi precondiţiile definesc domeniul de aplicaţie al TAD O instanţă a TAD (o variabilă) este introdusă printr o referinţă la structura de date a TAD) numită pointer opac. 5

6 Interfaţa este definită într un fişier antet separat şi nu conţine reprezentarea structurii de date, care nu poate fi modificată direct. Contractul utilizator implementator. Între proiectantul TAD şi utilizatorul acestora (clientul) se stabileşte un contract prin care: proiectantul asigură: structuri de date şi algoritmi eficienţi şi siguri implementare convenabilă întreţinere simplă clientul pretinde: îndeplinirea obiectivelor urmărite folosirea TAD fără efortul înţelegerii detaliilor interne să dispună de un set suficient de operaţii Descrierea interfeţei formează un contract client furnizor care: dă responsabilităţile clientului. care trebuie să respecte precondiţiile dă responsabilităţile furnizorului care trebuie să asigure respectarea postcondiţiilor, asigurând funcţionarea corectă a operaţiilor Criteriile de proiectare ale interfeţelor Tipurilor Abstracte de Date coeziune: toate operaţiile trebuie să servească unei singure destinaţii (să descrie o singură abstractizare) simplitate: se evită facilităţile care nu sunt necesare (o interfaţă mai mică este mai uşor de folosit) lipsa redundanţei: se oferă un serviciu o singură dată atomicitate: nu se combină operaţiile necesare în mod individual. Operaţiile trebuie să fie primitive, neputând fi descompuse în alte operaţii ale interfeţei. completitudine: toate operaţiile primitive trebuie să asigure total abstractizarea consistenţă: operaţiile trebuie să fie consistente privind convenţiile de nume, folosirea argumentelor şi valorilor întoarse refolosire: TAD suficient de generale pentru a fi refolosite în contexte diferite robusteţe la modificare: interfaţa să rămână stabilă chiar dacă implementarea TAD se modifică comoditate: se prevăd operaţii suplimentare faţă de setul complet care să asigure o funcţionare comodă 6

7 Colecţii de date. Exemple de colecţii. Colecţiile (sau containerele) sunt structuri de date care păstrează obiecte asemănătoare, în număr finit. Exemple de colecţii sunt: vectorul este grup de elemente de acelaşi tip accesate direct, printr un indice întreg.(indexate cu chei întregi.). Un tablou static conţine un număr fixat de elemente, alocate la compilare. Un tablou dinamic se alocă la execuţie şi poate fi redimensionat. Faţă de tipul predefinit tablou, colecţia vector permite verificarea încadrării indicilor în limite, alocarea dinamică de memorie, etc. Adăugarea unui element are complexitate O(1), pe când ştergerea şi căutarea O(n). şirul de caractere (string) este un vector de caractere, cu operaţii specifice: determinarea lungimii şirului, compararea a două şiruri, copierea unui şir, concatenarea unui şir la altul, căutarea unui subşir, etc. lista este o colecţie omogenă, cu număr de elemente variabil în limite foarte largi. Elementele listei sunt accesibile secvenţial cu complexitate O(n). Adăugarea şi ştergerea de elemente se fac eficient cu complexitate O(1). stiva (stack) este o listă cu acces restrâns la unul din capete (vârful stivei). Operaţiile specifice: punerea (push) şi scoaterea unui element din stivă (pop) se fac eficient cu complexitate O(1). coada (queue) este o listă la care inserările se fac pe la un capăt (spatele cozii), iar ştergerile se fac pe la celălalt capăt (faţa cozii). Cozile păstrează elementele în ordinea sosirii. mulţimea (set) este o colecţie de valori unice. Permite operaţii eficiente (cu complexitate O(log n)) de inserare, ştergere, test incluziune şi operaţii specifice mulţimilor ca intersecţia, reuniunea, diferenţa, etc. coada prioritară (priority queue) este o colecţie coadă în care elementele au asociate priorităţi şi la care ştergerea elementului cu prioritate maximă se face în O(1), iar inserarea unui element se face corespunzător priorităţii în O(log n). Inserarea elementelor în coada prioritară se face în ordinea priorităţii, astfel încât să fie extras întotdeauna elementul cel mai prioritar. Un spital de urgenţă foloseşte ca model coada prioritară. Cozile prioritare sunt folosite la planificarea joburilor într un sistem de operare (jobul cel mai prioritar va fi primul executat). dicţionarul (dictionary, map) reprezintă o colecţie indexată de elemente, la care indexul poate fi orice valoare ordonabilă Operaţii specifice colecţiilor. Colecţiile avute în vedere au următoarele particularităţi: sunt dinamice, deci o colecţie nou creată va fi vidă sunt colecţii referinţă, deci conţin pointeri la elementele colecţiei şi nu valorile elementelor, pentru a putea avea orice tipuri de elemente în colecţie. Alocarea dinamică de memorie pentru o colecţie se face: 7

8 secvenţial, printr o zonă de memorie contiguă (tablou), alocată la crearea colecţiei. Această zonă poate fi realocată, dar operaţia este costisitoare şi se foloseşte rar. înlănţuit, cu alocare dinamică pentru fiecare element nou adăugat colecţiei. Posibilitatea de a nu specifica tipul elementelor, adică de a avea colecţii generice (colecţii de elemente de orice tip) se realizează în C utilizând pointeri la void (void *). Aceasta impune cunoaşterea dimensiunii fiecărui element, pentru alocarea corespunzătoare de memorie. Proprietăţi ale colecţiilor: pot fi copiate. Capacitatea colecţiei este numărul maxim de elemente pe care îl poate conţine colecţia. Cardinalul colecţiei este numărul actual de elemente conţinute în colecţie. colecţiile nemodificabile nu suportă operaţii de modificare (ca add, remove sau clear). colecţiile imutabile nu permit modificarea elementelor colecţiei. colecţie cu acces aleatoriu asigură acelaşi timp de acces pentru toate elementele. O colecţie (sau un container) implementează următoarele operaţii: crearea unei colecţii noi vide (constructorul): Col new(); ştergerea tuturor obiectlor colecţiei (destructorul): void delete(col *pc); raportarea numărului de obiecte al colecţiei: int size(col C); inserarea unui nou obiect în colecţie: void add(col C, Iter p, void *el); scoaterea unui obiect din colecţie: void *remove(col C, Iter p) accesul la un obiect din colecţie: void *get(col C, Iter p ); Mai pot fi definite operaţii precum: test colecţie vidă: int isempty(col C); modificarea unui element din colecţie: void modif(col C, Iter p, void *el); copierea unei colecţii: Col copy(col C); Parcurgerea colecţiilor. Traversarea sau parcurgerea colecţiei presupune enumerarea sistematică a tuturor elementelor colecţiei, folosind în acest scop un iterator sau enumerator. El poate fi văzut ca un pointer la oricare element din colecţie Un iterator se implementează prin trei funcţii care asigură: poziţionarea iteratorului pe primul element poziţionarea iteratorului pe următorul (precedentul) element din colecţie detectarea sfârşitului colecţiei (după ultimul element) Pentru a descrie un domeniu de valori vom folosi doi iteratori care vor indica limitele domeniului. poziţionare pe primul element al colecţiei Iter begin(col C);.. poziţionare la sfârşitul colecţiei, după ultimul element Iter end(col C); poziţionare pe următorul element din colecţie Iter next(col C, Iter p); Traversarea unei colecţii poate fi abstractizată prin: Col C; 8

9 Iter p; for(p= begin(c); p!=end(c); p=next(c, p)) vizitare_element(get(c, p)); 9

10 Criterii de clasificarea a colecţiilor. a) Numărul de succesori al unui element: Colecţii liniare având ca reprezentanţi: secvenţa, mulţimea, dicţionarul, grupul, etc Colecţii neliniare (arborescente, recursive) de tipul arborilor. 1. Colecţii liniare. O colecţie liniară conţine elemente ordonate prin poziţie.astfel există primul element al colecţiei, al doilea element,..., ultimul element. Într o colecţie neliniară elementele sunt identificate fără o relaţie poziţională. Metoda de acces la elemente separă colecţiile liniare în: Colecţii cu acces direct orice element poate fi selectat fără a accesa în prealabil elementele care îl preced. Colecţii cu acces secvenţial accesul la un element se face pornind de la primul element al colecţiei prin deplasare către elementul căutat. Listele liniare sunt exemple de colecţii cu acces secvenţial. Într o listă liniară numărul de elemente variază în limite foarte largi şi operaţiile de inserare şi ştergere sunt foarte frecvente. Un fişier este o colecţie plasată pe un suport de memorie externă căreia i se asociază o structură de date numită flux (stream). Fişierele disc permit acces direct, celelalte numai acces secvenţial. Operaţia de citire şterge (extrage) un element din fluxul de intrare, iar cea de scriere adaugă (inserează) un element în fluxul de ieşire. Colecţii cu indexare generalizată Tabloul este o colecţie care permite accesul direct la orice element folosind un indice întreg. În general, fiecărui element i se poate asocia o cheie (care nu mai este neapărat un întreg, ca indexul), care să fie folosită pentru a accesa elementul. Un tabel de dispersie păstrează date şi chei asociate acestora. Cheia este transformată într un index întreg, folosit pentru a localiza data. Dicţionarele (tablourile asociative) constau din asocieri perechi cheie valoare. Valoarea din asociere este accesată direct, folosind cheia, ca un index generalizat. 2. Colecţiile neliniare se clasifică în: Colecţii ierarhice în care elementele sunt partiţionate pe niveluri. Fiecare element de pe un nivel are mai mulţi succesori pe nivelul următor. Arborele este o colecţie ierarhică în care toate elementele emană dintr o singură sursă numită rădăcina arborelui. Elementele arborelui se numesc noduri şi fiecare nod îşi indică descendenţii (copiii). Fiecare nod are un predecesor unic (exceptând rădăcina). Arborele este structura ideală care descrie sistemul de fişiere cu directoare şi subdirectoare, ca şi diagramele de organizare ale firmelor. O formă specială de arbore arborele binar impune fiecărui nod să aibă cel mult doi descendenţi. Impunerea unei relaţii de ordine între cheile unui arbore binar defineşte arborele binar de căutare, o structură de date eficientă pentru păstrarea volumelor mari de date. Heapul este un arbore special (arbore parţial ordonat) în care cel mai mic (sau cel mai mare) element se află întotdeauna în rădăcină. Folosirea unui heap permite sortarea unei liste printr o metodă foarte eficientă (heapsort). 10

11 Colecţii grupuri sunt colecţii neliniare în care elementele nu sunt ordonate în nici un fel. De exemplu mulţimea reprezintă un grup. Operaţiile specifice sunt: reuniunea, intersecţia, diferenţa, testul de apartenenţă, relaţia de incluziune. Un graf este o structură de date care modelează relaţiile între obiecte prin două mulţimi: o mulţime de vârfuri şi o mulţime de muchii care conectează aceste vârfuri. Grafurile au aplicaţii în planificarea lucrărilor, probleme de transport, etc. Operaţii specifice sunt: adaugă / şterge vârf, găsirea vârfurilor accesibile, pornind dintr un anumit vârf şi efectuând o parcurgere specifică: în adâncime, în lăţime, etc. O reţea este o formă specială de graf, care asociază fiecărei muchii un cost. Colecţiile uzuale sunt : tabelele de dispersie, cozile, stivele, dicţionarele, şi listele. b) Unicitatea elemetelor din colecţie: Colecţii cu elemente distincte : mulţimea Colecţii cu elemente multiple : lista c) Prezenţa sau absenţa unei "chei": Colecţii cu cheie dacă o parte din element (cheia) este relevantă pentru accesul la un element din colecţie. Cheile se compară folosind operatori relaţionali. Colecţii fără cheie d) Posibilitatea definirii unei relaţii de egalitate între valorile elementelor sau între valorile cheilor, deci a unei operaţii de căutare în colecţie: Pentru colecţiile care au definită cheie, pentru tipul cheie trebuie să fie definită relaţia de egalitate, colecţia fiind cunoscută ca o colecţie cu egalitate de chei. Colecţii cu operaţie de egalitate două elemente din colecţie sunt egale dacă toate componentele lor sunt egale Colecţii fără operaţii de egalitate (secvenţe de elemente) Colecţiile pentru care nu este definită nici egalitatea de chei, nici de elemente (ca de exemplu secvenţa sau heap-ul) nu permit localizarea elementelor prin valoare sau prin testarea conţinutului. e) Exisţenţa unei relaţii de ordine între elemente: Colecţii ordonate (sortate) cu elementele sortate printr-o relaţie de ordine. De exemplu elemente şiruri de caractere sortate lexicografic (alfabetic). Un element dintr-o colecţie sortată poate fi accesat rapid, folosind relaţia de ordine pentru a-i determina poziţia. Colecţiile neordonate pot fi şi ele implementate astfel încât să permită acces rapid la elemente (de exemplu tabela de dispersie). Colecţii neordonate între elementele cărora nu există nici o relaţie de ordine De observat că nu orice tip de elemente este ordonabil; de aceea una din proprietăţile unui container poate fi sortabilitatea lui. (De exemplu, o listă de figuri geometrice nu este sortabilă). O colecţie sortată trebuie să aibă definită fie egalitatea cheilor, fie a elementelor. In unele colecţii liniare ca: mulţimea, mulţimea cu chei, dicţionarul, etc nu pot exista două elemente egale sau două elemente cu chei egale. Asemenea colecţii se numesc colecţii unice. Alte colecţii precum: grupul, grupul cu chei, relaţia, heapul pot avea două elemente egale sau două elemente cu chei egale. Acestea reprezintă colecţii multiple. 11

12 Nu există o colecţie unică, fără egalitate de chei şi egalitate de elemente, deoarece pentru o asemenea colecţie nu ar putea fi definită o funcţie de apartenenţă. Dintre colecţiile liniare cu acces restrictiv: stiva, coada şi coada cu două capete se bazează pe secvenţă coada prioritară se bazează pe grupul cu chei sortate f) Posibilităţi de acces la elementele colecţiei: cu acces la orice element din colecţie, pe baza poziţiei în colecţie cu acces la orice element din colecţie, pe baza valorii elementului cu acces limitat la primul şi/sau la ultimul element din colecţie g) Limitarea numărului de elemente din colecţie: Colecţii cu dimensiune limitată Colecţii cu dimensiune nelimitată h) Utilizarea colecţiei: Colecţii pentru memorarea temporară a unor date (de tip buffer), care au un conţinut foarte volatil: stive, cozi, multimi, s.a. Colecţii de căutare, cu un conţinut mai stabil şi cu operaţii frecvente de căutare: liste, dicţionare, arbori, s.a.uneori se consideră că o SD generală este o colecţie de înregistrări (structuri). Pentru SD abstracte folosite în căutare se evidenţiază un câmp discriminant, folosit la identificarea unică a fiecărei înregistrări şi numit cheie (Key) sau cheie de căutare (Search Key). Cheia poate fi şi o combinaţie a două câmpuri din înregistrare (de ex. concatenarea a două şiruri, cum ar fi numele şi prenumele). i) Natura elementelor componente: O colecţie directă conţine chiar datele aplicaţiei, toate componentele sunt de un acelaşi tip, deci este o colecţie omogenă. Un colecţie indirectă conţine pointeri (adrese) la date alocate dinamic, date care pot fi de tipuri diferite, deci o colecţie eterogenă de date. Utilizarea colecţilori indirecte se justifică prin: a) economia de memorie în cazul că elementele sunt şiruri de caractere de lungime foarte variabilă; b) economia de timp dacă obiectele memorate ocupă multă memorie (structuri mari), se evită operaţiile de copiere a datelor care se înlocuiesc prin copierea pointerilor c) reunirea de date diferite, cum ar fi o colecţie de figuri geometrice ce formează împreună un desen. d) Pentru a avea un container general, cu pointeri la un tip neprecizat, înlocuiţi ulterior cu pointeri la tipuri precise, necesare aplicaţiei. Aceasta este soluţie de a avea o bibliotecă de subprograme generale pentru operaţii cu structuri de date uzuale, înainte de apariţia claselor derivate şi de introducerea tipurilor parametrizate (sau generice) în C++ (template). Criterii de alegere a colecţiei. La alegerea tipului colecţiei celei mai adecvate pentru rezolvarea unei probleme se consideră următoarele criterii: Cum sunt accesate valorile? Dacă este important accesul direct, atunci se folosesc colecţiile vector sau coadă cu două capete. Dacă valorile sunt accesate conform unei relaţii de ordonare, atunci se foloseşte mulţimea ordonată. 12

13 In caz că este suficient accesul secvenţial atunci sunt potrivite:lista şi variantele cu acces restrâns: stiva şi coada. Este importantă ordinea în care se păstrează valorile în colecţie? Dacă ordonarea este importantă, atunci se foloseşte mulţimea ordonată. De asemenea pot fi folosite lista sau vectorul, la care sortarea să se faca după un număr de inserari. In caz că prezintă importanţă ordinea în care se fac inserările se va folosi o stivă sau o coadă. Dimensiunea colecţiei se modifică în limite largi în timpul execuţiei? In caz afirmativ, cea mai bună selecţie o reprezintă lista. In caz că dimensiunea colecţiei este relativ stabila se foloseşte vectorul sau coada cu două capete. Este posibilă estimarea dimensiunii colecţiei? Colecţia vector ne permite, în acest caz să alocăm un bloc de memorie de dimensiune data. Reprezintă testul de apartenenţă o operaţie frecventă? In caz afirmativ se folosesc mulţimea sau dicţionarul. Este colecţia indexată (poate fi văzută ca o serie de perechi cheie valoare)? Dacă cheile sunt întregi se folosesc vectorul sau coada cu două capete. Dacă cheile reprezintă numai valori ordonate, atunci dicţionarul reprezintă selecţia potrivită. Pot fi comparate valorile din colecţie între ele? Dacă valorile nu pot fi comparate folosind operatorul relaţional <= atunci nu se poate folosi mulţimea, nici dicţionarul. Reprezintă găsirea şi ştergerea elementului maxim o operaţie frecventă? In caz afirmativ se foloseşte coada prioritară. In ce poziţie se inserează sau se şterg elementele din colecţie? Dacă inserarea şi ştergerea se face în orice poziţie, atunci lista reprezintă cea mai bună alegere. Dacă aceste operaţii se fac numai la început, lista sau coada cu două capete reprezintă structuri potrivute. Dacă valorile se insereaza şi se şterg la un singur capăt, atunci se foloseşte stiva. Este interclasarea o operaţie frecventă? In caz afirmativ se utilizează mulţimea sau lista. In situaţiile în care pot fi folosite mai multe colecţii diferite, se iau în considerare timpii de execuţie ai algoritmilor corespunzatori structurilor alese. În alegerea celor mai potrivitestructuri de date, în funcţie de specificul aplicaţiei se fac următoarele recomandări: Dacă numărul de componente poate fi estimat destul de exact şi nu se mai modifică atunci se vor alege tablouri cu alocare constantă (vectori, matrice), care permit accesul direct la orice componentă şi scrierea unor programe simple şi usor de înţeles; de exemplu pentru anumite probleme cu stive, cu cozi, cu grafuri; Dacă numărul de componente este foarte variabil dar poate fi cunoscut înaintea valorilor componentelor şi nu se mai modifică pe parcursul programului, atunci se pot folosi vectori alocati dinamic; Dacă numărul de componente este foarte variabil sau dacă se modifică mult în cursul programului, atunci se vor folosi structuri de date dinamice, cu pointeri de legătură între componente: liste înlănţuite sau arbori cu legături; în funcţie de aplicaţie poate fi necesarã menţinerea unei ordonări a componentelor structurii de date; Dacă sunt necesare căutări frecvente după conţinut (după chei) şi sunt multe modificări (adăugări şi ştergeri), atunci soluţia optimă poate fi un arbore binar (dinamic) sau un tabel de dispersie (hash); un arbore binar ordonat poate însă menţine şi o relaţie de ordine între componente. Eficienţa utilizării structurilor de date 13

14 In mod ideal proiectul unei aplicaţii este gândit în structuri de date abstracte şi în module program (funcţii) care traduc un anumit algoritm. O structură de date abstractă poate fi materializată prin diferite structuri de date concrete. Alegerea unei implementãri dintre cele posibile se face, teoretic, după performanţele relative ale fiecărei SD concrete (funcţie de dimensiunea colecţiei de date). Multe lucrări prezintă asemenea formule de calcul pentru timpul mediu (sau timpul maxim) de căutare într o structură sau alta. De exemplu, timpul mediu de căutare într un vector neordonat sau într o listă (ordonată sau neordonată) este de ordinul N/2, iar timpul maxim este de ordinul N, unde N este dimensiunea vectorului (listei). Timpul mediu de căutare într un arbore binar ordonat echilibrat sau într un vector ordonat după cheile de căutare este de ordinul log 2 (N). Pentru alte structuri de date (de ex. tabel de dispersie) timpul de căutare este mai greu de estimat, pentru că depinde şi de alţi factori. Trebuie spus totuşi că dimensiunea relativ mică a colecţiilor de date din memoria internă combinată cu viteza mare de calcul a procesoarelor actuale şi cu durata mică a operaţiilor elementare (de obicei comparaţii şi incrementări) fac ca diferenţa absolută de timp între utilizarea unor SD diferite să fie de multe ori nesemnificativă, relativ şi la alţi timpi (calcule cu numere reale, operaţii cu fişiere disc, s.a.). De aceea, în practică poate fi mai importantă simplitatea şi lungimea subprogramelor care realizează operaţiile cu SD respectivă, sau posibilitatea de reutilizare a unor subprograme existente. Pe de altă parte, în cazul colecţiilor de date memorate pe disc (fişiere, baze de date), timpul mare de acces la disc şi dimensiunea mai mare a colecţiilor de date fac ca aceste estimări de performanţe să fie importante, iar diferenţa dintre diferite soluţii de organizare (structurare) a colecţiei de date să fie mai importantă pentru performanţele de ansamblu ale aplicaţiei. Eficienţa alegerii unei SD nu se reduce la durata operaţiilor de prelucrare ci şi la memoria ocupată (cu adrese de legătură, informaţii asociate blocurilor alocate dinamic sau alte informaţii auxiliare). Alegerea între o structură cu pointeri şi o structură vector depinde de: Lungimea variabilelor pointer şi dimensiunea datelor aplicaţiei. Numărul de colecţii de dimensiune variabilă şi posibilitatea de estimarea dimensiunii maxime pentru aceste colecţii. De exemplu, o stivă vector este preferabilă atunci când numărul de elemente puse în stivă poate fi estimat destul de corect sau nu poate fi foarte mare, ca în cazul generării sau interpretării expresiilor postfixate. 14

15 Complexitatea algoritmilor. Calitatea unui program depinde de corectitudine, comoditatea interfeţei cu utilizatorul, uşurinţa întreţinerii, robusteţea şi nu în ultimul rând eficienţa. Eficienţa unui algoritm caracterizează resursele consumate de algoritm la execuţie (timp de execuţie eficienţa timpului şi memorie consumată eficienţa spaţiului). Exprimarea timpului de execuţie în unităţi de timp nu este semnificativă, deoarece s ar referi mai mult la performanţele calculatorului decât la cele ale algoritmului. Chiar dacă se are în vedere un singur calculator, se pot obţine performanţe diferite folosind compilatoare diferite pentru acelaşi limbaj de programare. Notaţii asimptotice. Analiza algoritmică (numită şi analiză asimptotică) caracterizează comportarea la execuţie a algoritmului independent de platformă, compilator sau limbaj de programare. Din acest punct de vedere, exprimarea numărului de operaţii elementare funcţie de dimensiunea problemei (volumul datelor de intrare) caracterizează cel mai bine complexitatea algoritmului. n op = T(N) Funcţia T poate fi: constantă: T(N) = c 0 liniară T(N) = c 0 N+ c 1 pătratică: T(N) = c 0 N 2 + c 1 N + c 2 polinomială: T(N) = c 0 N p + + c p, p > 2 exponenţială: T(N) = c 0 a n, a > 1 Vom spune că funcţia de cost T(N) este dominată de funcţia f(n), dacă există o constantă pozitivă c astfel încât: T(N) c.f(n) Dominanţa asimptotică presupune existenţa constantelor pozitive c şi N 0 a.î.: T(N) c.f(n) pentru N N 0 Pentru două funcţii nenegative T şi f, spunem că T este de ordinul lui f, dacă şi numai dacă f domină asimptotic pe T şi vom nota aceasta prin: T = O(f) Pentru dimensiuni mari ale problemei (N mare), în forma polinomială termenul c 0 N p este predominant în raport cu ceilalţi, care pot fi neglijaţi. Pentru exprimarea complexităţii unui algoritm se utilizează notaţia O. Prin definiţie: T(N) = O(f(N)) dacă N 0 N *, c > 0, a.î. N N 0,: T(N) < c*f(n) T(N) = Ω (f(n)) dacă N 0 N *, c > 0, a.î. N N 0, : T(N) > c*f(n) T(N) = Θ (f(n)) dacă N 0 N *, c 1,c 2 > 0 a.î. N N 0, : c 1 f(n)< T(N) < c 2 f(n) 15

16 Constanta c 0 influienţează mai puţin creşterea timpului de execuţie decât gradul polinomului p, motiv pentru care nu mai apare în expresia complexităţii algoritmului. Notaţia O dă o estimare a limitei superioare a complexităţii algoritmului T(N), iar Ω o estimare a limitei inferioare. Pentru estimarea complexităţii folosind notaţia O vom folosi proprietăţile: O(c * f) = O(f) O(f * g) = O(f) * O(g) O(f / g) = O(f) / O(g) O(f+g) = Max[ O(g), O(g)] O(f) O(g) dacă şi numai dacă f domină pe g Pentru a aprecia influienţa complexităţii asupra timpului de execuţie vom considera că o operaţie elementară durează 10 6 sec; în acest caz complexitatea în timp va fi pentru N=100: log 2 N N N log 2 N N 2 N / 10 6 = 6.5*10 6 sec 10 2 / 10 6 = 10 4 sec 6.5*10 2 / 10 6 =6.5*10 4 sec 10 4 / 10 6 = 10 2 sec 10 6 / 10 6 = 1 sec 2 N /10 6 sec sec secole Creşterera performanţelor calculatorului nu se reflectă în aceeaşi măsură asupra algoritmului rezolvat, ci este dependentă de complexitatea algoritmului: Astfel dacă creşterea vitezei calculatorului este de 10 3 Complexitatea algoritmului N N log 2 N N 2 N 3 Creşterea performanţelor algoritmului 1000 ori 140 ori 31 ori 10 ori 2 N +10 intrări 3 N +6 intrări Complexitatea algoritmului este dependentă de configuraţia datelor de intrare. Se introduc noţiunile de cea mai bună comportare a algoritmului, comportare în medie a algoritmului şi comportare în situaţia cea mai nefavorabilă. Astfel cea mai bună comportare a algoritmului de căutare secvenţială corespunde găsirii valorii căutate după o singură comparaţie; comportarea în situaţia cea mai nefavorabilă corespunde găsirii valorii în ultima poziţie, având complexitatea O(N). Evaluarea comportării în medie a unui algoritm se face mai greu deoarece trebuiesc considerate distribuţiile statistice ale datelor de intrare. In cazul căutării secvenţiale aceasta este: ( N) / N = (N + 1) / 2 = O(N) Evaluarea comportării medii a unui grup de operaţii (analiza amortizată) poate conduce la costuri rezonabile, chiar dacă una dintre operaţiile grupului este costisitoare. Analiza algoritmică are anumite limitări şi anume: pentru algorimi complicaţi analiza O poate fi imposibil de realizat 16

17 este dificilă determinarea cazului tipic analiza O este o măsură grosieră, care nu poate surprinde micile diferenţe dintre algoritmi analiza O nu este concludentă pentru volume mici ale datelor de intrare Astfel funcţiile de cost T 1 (N) = 10-3 N şi T 2 (N) = 10 3 N au ambele complexitatea O(N) deşi prima este de un milion de ori mai rapidă decât cea de a doua. Funcţia de cost T(N) = 10 5 N N 4 are complexitate O(N 5 ) numai când primul termen este predominant, ceeace corespunde lui N > 10 8 ; pentru N < 10 8 complexitatea este O(N 4 ). Sunt situaţii în care analiza algoritmică a timpului de execuţie nu este un criteriu suficient pentru alegerea unui algoritm. Astfel: dacă programul se execută rar, costul scrierii şi depanării poate domina asupra costului execuţiei dacă datele de intrare sunt puţine, atunci comportarea asimptotică nu reprezintă o măsură exactă a timpului de execuţie (în acest caz constantele de proporţionalitate, neglijate în analiza asimptotică pot avea un rol determinant) algoritmii complicaţi, care nu sunt documentaţi se evitâ, chiar dacă prezintă performanţe mai bune, deoarece operarea de modificări reprezintă un factor de risc pentru algoritmii numerici, precizia şi stabilitatea la perturbaţii sunt elemente la fel de importante ca şi analiza algoritmicâ. 17

Metode iterative pentru probleme neliniare - contractii

Metode iterative pentru probleme neliniare - contractii Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii

Διαβάστε περισσότερα

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele

Διαβάστε περισσότερα

Curs 1 Şiruri de numere reale

Curs 1 Şiruri de numere reale Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1 Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element

Διαβάστε περισσότερα

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a. Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă

Διαβάστε περισσότερα

Criptosisteme cu cheie publică III

Criptosisteme cu cheie publică III Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.

Διαβάστε περισσότερα

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE. 5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este

Διαβάστε περισσότερα

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă. III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar

Διαβάστε περισσότερα

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică Gh. Asachi Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia

Διαβάστε περισσότερα

Metode de interpolare bazate pe diferenţe divizate

Metode de interpolare bazate pe diferenţe divizate Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare

Διαβάστε περισσότερα

Curs 4 Serii de numere reale

Curs 4 Serii de numere reale Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni

Διαβάστε περισσότερα

5.4. MULTIPLEXOARE A 0 A 1 A 2

5.4. MULTIPLEXOARE A 0 A 1 A 2 5.4. MULTIPLEXOARE Multiplexoarele (MUX) sunt circuite logice combinaţionale cu m intrări şi o singură ieşire, care permit transferul datelor de la una din intrări spre ieşirea unică. Selecţia intrării

Διαβάστε περισσότερα

Geometrie computationala 2. Preliminarii geometrice

Geometrie computationala 2. Preliminarii geometrice Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,

Διαβάστε περισσότερα

Sisteme diferenţiale liniare de ordinul 1

Sisteme diferenţiale liniare de ordinul 1 1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2

Διαβάστε περισσότερα

Examen AG. Student:... Grupa:... ianuarie 2011

Examen AG. Student:... Grupa:... ianuarie 2011 Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)

Διαβάστε περισσότερα

Seminar 5 Analiza stabilității sistemelor liniare

Seminar 5 Analiza stabilității sistemelor liniare Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare

Διαβάστε περισσότερα

MARCAREA REZISTOARELOR

MARCAREA REZISTOARELOR 1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea

Διαβάστε περισσότερα

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ

Διαβάστε περισσότερα

Esalonul Redus pe Linii (ERL). Subspatii.

Esalonul Redus pe Linii (ERL). Subspatii. Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste

Διαβάστε περισσότερα

Curs 2 Şiruri de numere reale

Curs 2 Şiruri de numere reale Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un

Διαβάστε περισσότερα

riptografie şi Securitate

riptografie şi Securitate riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare

Διαβάστε περισσότερα

Asupra unei inegalităţi date la barajul OBMJ 2006

Asupra unei inegalităţi date la barajul OBMJ 2006 Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale

Διαβάστε περισσότερα

TAD Stiva (STACK) Observaţii: 1. sunt aşezate ordonat unele peste altele. Un element nou se adaugă în stivă deasupra elementului cel mai recent

TAD Stiva (STACK) Observaţii: 1. sunt aşezate ordonat unele peste altele. Un element nou se adaugă în stivă deasupra elementului cel mai recent TAD Stiva (STACK) Observaţii: 1. În limbajul uzual cuvântul stivă referă o grămadă în care elementele constitutive sunt aşezate ordonat unele peste altele. Un element nou se adaugă în stivă deasupra elementului

Διαβάστε περισσότερα

Integrala nedefinită (primitive)

Integrala nedefinită (primitive) nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei

Διαβάστε περισσότερα

V O. = v I v stabilizator

V O. = v I v stabilizator Stabilizatoare de tensiune continuă Un stabilizator de tensiune este un circuit electronic care păstrează (aproape) constantă tensiunea de ieșire la variaţia între anumite limite a tensiunii de intrare,

Διαβάστε περισσότερα

Examen AG. Student:... Grupa: ianuarie 2016

Examen AG. Student:... Grupa: ianuarie 2016 16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex

Διαβάστε περισσότερα

4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica

Διαβάστε περισσότερα

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare 1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe

Διαβάστε περισσότερα

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Subspatii ane Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Oana Constantinescu Oana Constantinescu Lectia VI Subspatii ane Table of Contents 1 Structura de spatiu an E 3 2 Subspatii

Διαβάστε περισσότερα

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:

Διαβάστε περισσότερα

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,

Διαβάστε περισσότερα

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,

Διαβάστε περισσότερα

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Aplicaţii ale principiului I al termodinamicii la gazul ideal Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia

Διαβάστε περισσότερα

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:

Διαβάστε περισσότερα

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0 Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,

Διαβάστε περισσότερα

Subiecte Clasa a VII-a

Subiecte Clasa a VII-a lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate

Διαβάστε περισσότερα

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă Noţiunea de spaţiu liniar 1 Noţiunea de spaţiu liniar Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară 2 Mulţime infinită liniar independentă 3 Schimbarea coordonatelor unui vector la o schimbare

Διαβάστε περισσότερα

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................

Διαβάστε περισσότερα

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER 2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care

Διαβάστε περισσότερα

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba

Διαβάστε περισσότερα

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.

Διαβάστε περισσότερα

Laborator 11. Mulţimi Julia. Temă

Laborator 11. Mulţimi Julia. Temă Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.

Διαβάστε περισσότερα

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale. 5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța

Διαβάστε περισσότερα

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005. SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care

Διαβάστε περισσότερα

10. STABILIZATOAE DE TENSIUNE 10.1 STABILIZATOAE DE TENSIUNE CU TANZISTOAE BIPOLAE Stabilizatorul de tensiune cu tranzistor compară în permanenţă valoare tensiunii de ieşire (stabilizate) cu tensiunea

Διαβάστε περισσότερα

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)). Teoremă. (Y = f(x)). Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism Demonstraţie. f este continuă pe X: x 0 X, S Y (f(x 0 ), ε), S X (x 0, ε) aşa ca f(s X (x 0, ε)) = S Y (f(x 0 ), ε) : y

Διαβάστε περισσότερα

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili Anexa 2.6.2-1 SO2, NOx şi de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili de bioxid de sulf combustibil solid (mg/nm 3 ), conţinut de O 2 de 6% în gazele de ardere, pentru

Διαβάστε περισσότερα

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB 1.7. AMLFCATOARE DE UTERE ÎN CLASA A Ş AB 1.7.1 Amplificatoare în clasa A La amplificatoarele din clasa A, forma de undă a tensiunii de ieşire este aceeaşi ca a tensiunii de intrare, deci întreg semnalul

Διαβάστε περισσότερα

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16 Sortare 29 martie 2005 Sortare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri, etc.) una din clasele

Διαβάστε περισσότερα

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite Capitolul 4 Integrale improprii 7-8 În cadrul studiului integrabilităţii iemann a unei funcţii s-au evidenţiat douăcondiţii esenţiale:. funcţia :[ ] este definită peintervalînchis şi mărginit (interval

Διαβάστε περισσότερα

a. 11 % b. 12 % c. 13 % d. 14 %

a. 11 % b. 12 % c. 13 % d. 14 % 1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul

Διαβάστε περισσότερα

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument: Erori i incertitudini de măurare Sure: Modele matematice Intrument: proiectare, fabricaţie, Interacţiune măurandintrument: (tranfer informaţie tranfer energie) Influente externe: temperatura, preiune,

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul

Διαβάστε περισσότερα

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice Teme de implementare in Matlab pentru Laboratorul de Metode Numerice As. Ruxandra Barbulescu Septembrie 2017 Orice nelamurire asupra enunturilor/implementarilor se rezolva in cadrul laboratorului de MN,

Διαβάστε περισσότερα

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă Coordonatori DANA HEUBERGER NICOLAE MUŞUROIA Nicolae Muşuroia Gheorghe Boroica Vasile Pop Dana Heuberger Florin Bojor MATEMATICĂ DE EXCELENŢĂ pentru concursuri, olimpiade şi centre de excelenţă Clasa a

Διαβάστε περισσότερα

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b. Lucrare Soluţii 28 aprilie 2015 Varianta 1 I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2 Definiţie. Numărul întreg p se numeşte număr prim dacă p 0,

Διαβάστε περισσότερα

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Cuprins Scheme de algoritmi Divide et impera Exemplificare

Διαβάστε περισσότερα

III. Reprezentarea informaţiei în sistemele de calcul

III. Reprezentarea informaţiei în sistemele de calcul Metode Numerice Curs 3 III. Reprezentarea informaţiei în sistemele de calcul III.1. Reprezentarea internă a numerelor întregi III. 1.1. Reprezentarea internă a numerelor întregi fără semn (pozitive) Reprezentarea

Διαβάστε περισσότερα

Spaţii vectoriale. Definiţia 1.1. Fie (K, +, ) un corp şi (V, +) un grup abelian.

Spaţii vectoriale. Definiţia 1.1. Fie (K, +, ) un corp şi (V, +) un grup abelian. Spaţii vectoriale 1. Spaţii vectoriale. Definiţii şi proprietăţi de bază În continuare prin corp vom înţelege corp comutativ. Dacă nu se precizează altceva, se vor folosi notaţiile standard pentru elementele

Διαβάστε περισσότερα

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36]. Componente şi circuite pasive Fig.3.85. Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36]. Fig.3.86. Rezistenţa serie echivalentă pierderilor în funcţie

Διαβάστε περισσότερα

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare.

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. Metode de sortare Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. 1. Sortare prin selecţie directă Sortarea prin selecţia minimului

Διαβάστε περισσότερα

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE 5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.

Διαβάστε περισσότερα

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă. Sala: 2103 Decembrie 2014 Conf. univ. dr.: Dragoş-Pătru Covei CURS 11: ALGEBRĂ Specializarea: C.E., I.E., S.P.E. Nota: Acest curs nu a fost supus unui proces riguros de recenzare pentru a fi oficial publicat.

Διαβάστε περισσότερα

riptografie şi Securitate

riptografie şi Securitate riptografie şi Securitate - Prelegerea 21.2 - Sistemul de criptare ElGamal Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Scurt istoric

Διαβάστε περισσότερα

Modelare şi simulare Seminar 4 SEMINAR NR. 4. Figura 4.1 Reprezentarea evoluţiei sistemului prin graful de tranziţii 1 A A =

Modelare şi simulare Seminar 4 SEMINAR NR. 4. Figura 4.1 Reprezentarea evoluţiei sistemului prin graful de tranziţii 1 A A = SEMIR R. 4. Sistemul M/M// Caracteristici: = - intensitatea traficului - + unde Figura 4. Rerezentarea evoluţiei sistemului rin graful de tranziţii = rata medie de sosire a clienţilor în sistem (clienţi

Διαβάστε περισσότερα

Curs 4. I.4 Grafuri. Grafuri orientate

Curs 4. I.4 Grafuri. Grafuri orientate Curs 4 I.4 Grafuri I.4.1 Grafuri orientate Definiţia I.4.1.1. Un graf orientat este un tuplu G = (N, A, ϕ : A N N), unde N şi A sunt mulţimi, numite mulţimea nodurilor, respectiv mulţimea arcelor, iar

Διαβάστε περισσότερα

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1) Ecuatii exponentiale Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. Cea mai simpla ecuatie exponentiala este de forma a x = b, () unde a >, a. Afirmatia.

Διαβάστε περισσότερα

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,

Διαβάστε περισσότερα

Noţiuni introductive

Noţiuni introductive Metode Numerice Noţiuni introductive Erori. Condiţionare numerică. Stabilitatea algoritmilor. Complexitatea algoritmilor. Metodele numerice reprezintă tehnici prin care problemele matematice sunt reformulate

Διαβάστε περισσότερα

28. SUPRADEFINIREA OPERATORILOR

28. SUPRADEFINIREA OPERATORILOR 28. SUPRADEFINIREA OPERATORILOR Pentru un tip clasă se poate defini un set de operatori asociaţi prin supradefinirea operatorilor existenţi, ceea ce permite realizarea de operaţii specifice cu noul tip

Διαβάστε περισσότερα

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii Clasa a IX-a 1 x 1 a) Demonstrați inegalitatea 1, x (0, 1) x x b) Demonstrați că, dacă a 1, a,, a n (0, 1) astfel încât a 1 +a + +a n = 1, atunci: a +a 3 + +a n a1 +a 3 + +a n a1 +a + +a n 1 + + + < 1

Διαβάστε περισσότερα

Proiectarea algoritmilor: Programare dinamică

Proiectarea algoritmilor: Programare dinamică Proiectarea algoritmilor: Programare dinamică Dorel Lucanu Faculty of Computer Science Alexandru Ioan Cuza University, Iaşi, Romania dlucanu@info.uaic.ro PA 2014/2015 D. Lucanu (FII - UAIC) Programare

Διαβάστε περισσότερα

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Functii Breviar teoretic 8 ianuarie ianuarie 2011 Functii Breviar teoretic 8 ianuarie 011 15 ianuarie 011 I Fie I, interval si f : I 1) a) functia f este (strict) crescatoare pe I daca x, y I, x< y ( f( x) < f( y)), f( x) f( y) b) functia f este (strict)

Διαβάστε περισσότερα

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:, REZISTENTA MATERIALELOR 1. Ce este modulul de rezistenţă? Exemplificaţi pentru o secţiune dreptunghiulară, respectiv dublu T. RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii

Διαβάστε περισσότερα

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15 MĂSURI RELE Cursul 13 15 Măsuri reale Fie (,, µ) un spaţiu cu măsură completă şi f : R o funcţie -măsurabilă. Cum am văzut în Teorema 11.29, dacă f are integrală pe, atunci funcţia de mulţime ν : R, ν()

Διαβάστε περισσότερα

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3 SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest

Διαβάστε περισσότερα

Câmp de probabilitate II

Câmp de probabilitate II 1 Sistem complet de evenimente 2 Schema lui Poisson Schema lui Bernoulli (a bilei revenite) Schema hipergeometrică (a bilei neîntoarsă) 3 4 Sistem complet de evenimente Definiţia 1.1 O familie de evenimente

Διαβάστε περισσότερα

Eficienta algoritmilor

Eficienta algoritmilor Eficienta algoritmilor În cursul de introducere am menţionat că, oricât de rapid ar deveni un calculator, sau oricât de mult s-ar ieftini memoria, eficienţa va fi un factor decisiv în alegerea unui algoritm.

Διαβάστε περισσότερα

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, aprilie 7 Proba scrisă la MATEMATICĂ SUBIECTUL I (3 puncte) ) (5 puncte) Fie matricele A = 3 4 9 8

Διαβάστε περισσότερα

prin egalizarea histogramei

prin egalizarea histogramei Lucrarea 4 Îmbunătăţirea imaginilor prin egalizarea histogramei BREVIAR TEORETIC Tehnicile de îmbunătăţire a imaginilor bazate pe calculul histogramei modifică histograma astfel încât aceasta să aibă o

Διαβάστε περισσότερα

Matrice. Determinanti. Sisteme liniare

Matrice. Determinanti. Sisteme liniare Matrice 1 Matrice Adunarea matricelor Înmulţirea cu scalar. Produsul 2 Proprietăţi ale determinanţilor Rangul unei matrice 3 neomogene omogene Metoda lui Gauss (Metoda eliminării) Notiunea de matrice Matrice

Διαβάστε περισσότερα

Stabilizator cu diodă Zener

Stabilizator cu diodă Zener LABAT 3 Stabilizator cu diodă Zener Se studiază stabilizatorul parametric cu diodă Zener si apoi cel cu diodă Zener şi tranzistor. Se determină întâi tensiunea Zener a diodei şi se calculează apoi un stabilizator

Διαβάστε περισσότερα

CURS 5 Spaţii liniare. Spaţiul liniar R n

CURS 5 Spaţii liniare. Spaţiul liniar R n CURS 5 Spaţii liniare. Spaţiul liniar R n A. Arusoaie arusoaie.andreea@gmail.com andreea.arusoaie@info.uaic.ro Facultatea de Informatică, Universitatea Alexandru Ioan Cuza din Iaşi 30 Octombrie 2017 Structura

Διαβάστε περισσότερα

1.3 Baza a unui spaţiu vectorial. Dimensiune

1.3 Baza a unui spaţiu vectorial. Dimensiune .3 Baza a unui spaţiu vectorial. Dimensiune Definiţia.3. Se numeşte bază a spaţiului vectorial V o familie de vectori B care îndeplineşte condiţiile de mai jos: a) B este liniar independentă; b) B este

Διαβάστε περισσότερα

Modulul 1 MULŢIMI, RELAŢII, FUNCŢII

Modulul 1 MULŢIMI, RELAŢII, FUNCŢII Modulul 1 MULŢIMI, RELAŢII, FUNCŢII Subiecte : 1. Proprietăţile mulţimilor. Mulţimi numerice importante. 2. Relaţii binare. Relaţii de ordine. Relaţii de echivalenţă. 3. Imagini directe şi imagini inverse

Διαβάστε περισσότερα

Subiecte Clasa a V-a

Subiecte Clasa a V-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

Διαβάστε περισσότερα

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri Generarea şi ordonarea permutărilor. Principiul porumbeilor. Principiul incluziunii si excluziunii Recapitulare din cursul trecut Presupunem că A este o mulţime cu n elemente. Recapitulare din cursul trecut

Διαβάστε περισσότερα

VII.2. PROBLEME REZOLVATE

VII.2. PROBLEME REZOLVATE Teoria Circuitelor Electrice Aplicaţii V PROBEME REOVATE R7 În circuitul din fiura 7R se cunosc: R e t 0 sint [V] C C t 0 sint [A] Se cer: a rezolvarea circuitului cu metoda teoremelor Kirchhoff; rezolvarea

Διαβάστε περισσότερα

Sisteme liniare - metode directe

Sisteme liniare - metode directe Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K

Διαβάστε περισσότερα

TABELE DE DISPERSIE I. CONSIDERAŢII TEORETICE

TABELE DE DISPERSIE I. CONSIDERAŢII TEORETICE TABELE DE DISPERSIE I. CONSIDERAŢII TEORETICE Termenul de "dispersie" evocă imaginea unei fărâmiţări şi amestecări aleatoare. Definiţie: o structură eficientă de date pentru implementarea dicţionarelor

Διαβάστε περισσότερα

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1) Universitatea din ucureşti.7.4 Facultatea de Matematică şi Informatică oncursul de admitere iulie 4 omeniul de licenţă alculatoare şi Tehnologia Informaţiei lgebră (). Fie x,y astfel încât x+y = şi x +

Διαβάστε περισσότερα

Sortare şi cǎutare. 8 ianuarie Utilizarea şi programarea calculatoarelor. Curs 11

Sortare şi cǎutare. 8 ianuarie Utilizarea şi programarea calculatoarelor. Curs 11 Sortare şi cǎutare 8 ianuarie 2004 Sortare şi cǎutare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri,

Διαβάστε περισσότερα

4.TABLOU. Lect. dr. Trimbitas Gabriela

4.TABLOU. Lect. dr. Trimbitas Gabriela 4.TABLOU 1 TABLOUL Structură de date statică. Definiţie: Fie C o colecţie de elemente de tipul TE şi [n]={1,2,3,...,n cu n N* o mulţime de indici. Aplicaţia f : [n 1 ] x [n 2 ] x x [n k ] C care ataşează

Διαβάστε περισσότερα

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice 1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă

Διαβάστε περισσότερα

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I. Modelul 4 Se acordă din oficiu puncte.. Fie numărul complex z = i. Calculaţi (z ) 25. 2. Dacă x şi x 2 sunt rădăcinile ecuaţiei x 2 9x+8 =, atunci să se calculeze x2 +x2 2 x x 2. 3. Rezolvaţi în mulţimea

Διαβάστε περισσότερα

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu,

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu, vidiu Gabriel Avădănei, Florin Mihai Tufescu, Capitolul 6 Amplificatoare operaţionale 58. Să se calculeze coeficientul de amplificare în tensiune pentru amplficatorul inversor din fig.58, pentru care se

Διαβάστε περισσότερα

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este

Διαβάστε περισσότερα

2 Transformări liniare între spaţii finit dimensionale

2 Transformări liniare între spaţii finit dimensionale Transformări 1 Noţiunea de transformare liniară Proprietăţi. Operaţii Nucleul şi imagine Rangul şi defectul unei transformări 2 Matricea unei transformări Relaţia dintre rang şi defect Schimbarea matricei

Διαβάστε περισσότερα

a. Caracteristicile mecanice a motorului de c.c. cu excitaţie independentă (sau derivaţie)

a. Caracteristicile mecanice a motorului de c.c. cu excitaţie independentă (sau derivaţie) Caracteristica mecanică defineşte dependenţa n=f(m) în condiţiile I e =ct., U=ct. Pentru determinarea ei vom defini, mai întâi caracteristicile: 1. de sarcină, numită şi caracteristica externă a motorului

Διαβάστε περισσότερα