Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator.

Similar documents
Parcurgerea arborilor binari şi aplicaţii

GRAFURI NEORIENTATE. 1. Notiunea de graf neorientat

VISUAL FOX PRO VIDEOFORMATE ŞI RAPOARTE. Se deschide proiectul Documents->Forms->Form Wizard->One-to-many Form Wizard

Ghid de instalare pentru program NPD RO

Modalităţi de redare a conţinutului 3D prin intermediul unui proiector BenQ:

Pasul 2. Desaturaţi imaginea. image>adjustments>desaturate sau Ctrl+Shift+I

PREZENTARE INTERFAŢĂ MICROSOFT EXCEL 2007

TTX260 investiţie cu cost redus, performanţă bună

6. MPEG2. Prezentare. Cerinţe principale:

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Tehnici de programare

22METS. 2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

Split Screen Specifications

Aplicatii ale programarii grafice in experimentele de FIZICĂ

Click pe More options sub simbolul telefon (în centru spre stânga) dacă sistemul nu a fost deja configurat.

Ghidul administratorului de sistem

Conferinţa Naţională de Învăţământ Virtual, ediţia a IV-a, Graph Magics. Dumitru Ciubatîi Universitatea din Bucureşti,

2 MEDIUL BAZELOR DE DATE

PROCESOARE NUMERICE DE SEMNAL DIGITAL SIGNAL PROCESSORS

Application form for the 2015/2016 auditions for THE EUROPEAN UNION YOUTH ORCHESTRA (EUYO)

9.1. Structura unităţii de I/E. În Figura 9.1 se prezintă structura unui sistem de calcul împreună cu unitatea

SUBIECTE CONCURS ADMITERE TEST GRILĂ DE VERIFICARE A CUNOŞTINŢELOR FILIERA DIRECTĂ VARIANTA 1

O abordare orientată pe componente generice pentru crearea dinamică a interfeţelor cu utilizatorul

Exerciţii Capitolul 4

Teoreme de Analiză Matematică - II (teorema Borel - Lebesgue) 1

PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT. Curs 1

LESSON FOURTEEN

Managementul Proiectelor Software Principiile proiectarii

Press review. Monitorizare presa. Programul de responsabilitate sociala. Lumea ta? Curata! TIMISOARA Page1

DIRECTIVA HABITATE Prezentare generală. Directiva 92/43 a CE din 21 Mai 1992

Referat II. Arhitectura unei interfeţe avansate pentru un Sistem Suport pentru Decizii. Coordonator ştiinţific: Acad. prof. dr. ing. Florin G.

Sistemul de operare Windows (95, 98) Componenta My Computer

Capitolul 1. Noţiuni de bază

Reprezentări grafice

Split Screen Specifications

riptografie şi Securitate

CAPITOLUL 2. FACILITATILE SI ARHITECTURA SISTEMULUI ORACLE

Curs 3 Word 2007 Cuprins

Cur s 2 - Metodologii de realizare a sistemelor informatice

ZOOLOGY AND IDIOMATIC EXPRESSIONS

CAPITOLUL 2. PROIECTAREA MODELULUI RELAŢIONAL AL DATELOR PRIN NORMALIZARE

Laboratorul 1. Primii paşi în Visual Basic.NET

Capitolul V MODELAREA SISTEMELOR CU VENSIM

Tema 4. Tipurile şi elementele de conţinut ale metodologiilor de realizare a sistemelor informatice


1. Introducere in instrumentaţia virtuală 2. Arhitectura unui instrument virtual 3. Medii de dezvoltare pentru instrumentaţia virtuală

CE LIMBAJ DE PROGRAMARE SĂ ÎNVĂŢ? PHP vs. C# vs. Java vs. JavaScript

3. CPU 3.1. Setul de regiştri. Copyright Paul GASNER

Geographical data management in GIS systems

Autonet Service Manager

BENQ DC E1000 DIGITAL CAMERA PRET E- BOOK

2. PORŢI LOGICE ( )

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 10

Defuzzificarea într-un sistem cu logică fuzzy. Aplicaţie: maşina de spălat cu reguli fuzzy. A. Obiective. B. Concepte teoretice ilustrate

Circuite Basculante Bistabile

Operaţiile de sistem de bază

declarare var <identif>:array[<tip1>,<tip2>,...] of <tip_e>; var a: array[1..20] of integer; (vector cu 20 elemente)

Raionul Şoldăneşti la 10 mii locuitori 5,2 4,6 4,4 4,8 4,8 4,6 4,6 Personal medical mediu - abs,

TEHNOLOGIA INFORMAŢIEI ŞI A COMUNICAŢIILOR

SOFTWARE DE BIROTICĂ

Executive Information Systems

Tehnologia Informaţiei şi a Comunicaţiilor

ARHITECTURI SOFTWARE PENTRU ÎNTREPRINDERI

Alexandrina-Corina Andrei. Everyday English. Elementary. comunicare.ro

De ce calcul paralel?

Mail Moldtelecom. Microsoft Outlook Google Android Thunderbird Microsoft Outlook

LIMBAJUL SQL 1. GENERALITĂŢI

Sisteme informationale economice (3)

THE ART OF WRITING, READING AND LIVING BETWEEN TRADITION AND MODERNITY

Revista Virtuala Info MateTehnic ISSN ISSN-L CUPRINS

thermo stollar Rolete interioare DAY & NIGHT

Sisteme integrate pentru -business

Maria plays basketball. We live in Australia.

Gândirea algoritmică - o filosofie modernă a matematicii şi informaticii

conţinut ale metodologiilor de realizare a sistemelor informatice

GREUTATE INALTIME IMC TAS TAD GLICEMIE

1. Funcţii speciale. 1.1 Introducere

Algoritmică şi programare Laborator 3

Poo Laboratoare 1. Laborator Programare cu JTable & JTree JTable JTree... 2

Structura sistemelor de operare Windows şi Linux

16-Martie-2016 SOFTWARE DE BIROTICĂ Sorana D. BOLBOACĂ Curs 1

2.Transferul de date. Transferul de date

CURS Nivele de management al SAN Nivelul de stocare *I LTO Tape Library Specialist

STANDARDIZAREA PROCESELOR ŞI A ACTIVITǍŢILOR ÎN ORGANIZAŢIILE INDUSTRIALE PRIN IMPLEMENTAREA SISTEMULUI DE FABRICAŢIE LEAN

Universitatea din Bucureşti. Facultatea de Matematică şi Informatică. Şcoala Doctorală de Matematică. Teză de Doctorat

Paradoxuri matematice 1

DEZVOLTARE ORGANIZAŢIONALĂ ŞI MANAGEMENTUL SCHIMBĂRII

CERCETARE ŞTIINŢIFICĂ,

CALCULATOARE NUMERICE

Introducere De ce această carte?... 8 Eficienţă maximă... 8 Scurt Istoric... 9 De ce C#? Capitolul I : Să ne pregătim...

MODULUL 2 UTILIZAREA SISTEMULUI DE OPERARE WINDOWS VISTA CURSUL UTILIZAREA CALCULATORULUI PERSONAL; APLICAREA TIC ÎN ŞCOALĂ ŞI AFACERI

PROBLEME DE TEORIA NUMERELOR LA CONCURSURI ŞI OLIMPIADE

Sisteme de operare şi programe specifice. Material de predare partea a I-a. Material de învăţare

Biraportul în geometria triunghiului 1

OLIMPIADA INTERNAŢIONALĂ DE MATEMATICĂ FORMULA OF UNITY / THE THIRD MILLENIUM 2014/2015 RUNDA A DOUA

Consideraţii statistice Software statistic

Programarea calculatoarelor CURS 1

CUPRINS CAP. 1. PREZENTARE GENERALĂ

1. Ecuaţii diferenţiale de ordinul întâi

Transcription:

3. Tipuri de date 1

Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator Exemplu: Tipul de dată - Număr întreg ( Integer ): Un număr întreg (є Z) între o limită superioară şi una inferioară şi un număr de operaţii: +, -, *, /, % în funcţie de definiţie şi <, >, ==, sign, abs, odd, even, 2

3

Structurile de date pot fi: o o Omogene: toate componentele au acelaşi tip de dată Heterogene: componentele au tipuri diferite de dată 4

O structură de date este modul în care data este reprezentată în interiorul masinii, în memorie sau pe disc (cursul 1, vezi și cursul BD) Definiţie 2. Structură de date O structură de date este specificaţia pentru organizarea şi memorarea datelor, astfel încât să dea posibilitatea unui acces eficient pentru anumite clase de aplicaţii. Cuprinde două aspecte esenţiale: Interfaţa: stabilirea operaţiilor posibile şi a comportamentului ca: o specificaţie abstractă (Tip Abstract de Date TAD/ADT) o sau interfaţă concretă de programare (de exemplu biblioteci ca STL Standard Template Library din C++) Implementarea: transpunerea (punerea în aplicare) concretă într-un limbaj de programare prin structuri de memorie şi algoritmi cât mai eficienţi 5

Exemple: Listele cu grupele de studenţi Lista nodurilor şi arcelor în Modelele BREP Inventarul unei figuri dintr-un joc pe calculator ca mulţime de obiecte Arborii de directoare pentru gestionarea fişierelor Reţeaua de străzi ca şi graf pentru planificatorul de rută Cozi de aşteptare ale proceselor la gestionarea proceselor de către sistemul de operare Stiva programului pentru gestionarea datelor în timpul execuţiei programului B-Arbori ca indecşi pentru acces rapid într-un sistem de baze de date 6

Boundary representation From Wikipedia, the free encyclopedia In solid modeling and computer-aided design, boundary representation often abbreviated as B-rep or BREP is a method for representing shapes using the limits. A solid is represented as a collection of connected surface elements, the boundary between solid and non-solid. Overview Boundary representation models are composed of two parts: topology and geometry (surfaces, curves and points). The main topological items are: faces, edges and vertices. A face is a bounded portion of a surface; an edge is a bounded piece of a curve and a vertex lies at a point. Other elements are the shell (a set of connected faces), the loop (a circuit of edges bounding a face) and loop-edge links (also known as winged edge links or halfedges) which are used to create the edge circuits. The edges are like the edges of a table, bounding a surface portion. 7

TAD ca metodă independentă de specificare a interfeţei şi a semanticii La TAD se aplică 2 principii: o Încapsularea: Fiecare TAD are o interfaţă. Accesul la SD are loc exclusiv prin intermediul interfeţei ( de exemplu: adaugaelement( ), stergeelement(.)). o Abstractizarea/Principiul ascunderii detaliilor: Realizarea internă a unui modul TAD implementat rămâne ascunsă utilizatorului Specificaţia unui TAD descrie cum acţionează operaţiile asupra datelor, dar nu şi cum sunt reprezentate intern datele şi nici cum sunt implementate operaţiile 8

Abstractizare şi încapsulare - motive: o Simplificarea procesului de dezvoltare a programelor în faza de proiectare: este suficient să ştiu cu ce date lucrez: D1,D2,D3,, doar specificaţiile lor. o Testarea şi depanarea mai simplă, fiecare dată se poate testa şi verifica separat. o Reutilizare - Extragerea unei SD dintr-o aplicaţie şi folosirea ei în altă aplicaţie. o Schimbarea reprezentării unui tip de dată - se poate fără a afecta programele care îl folosesc cu condiţia ca interfaţa să rămână aceeaşi (operaţiile tipului să rămână aceleaşi). 9

Poate exista una sau mai multe implementări ale unui TAD care au la bază concepte diferite. De exemplu TAD Listă cu structura de date vector dinamic sau listă înlănţuită a[1] a[2] a[3] a[4]. 10

Implementarea unui TAD o Descrie reprezentarea internă a datelor şi o Implementarea exactă a operaţiilor Diferite implementări ale aceleaşi specificaţii de TAD ne dau posibilitatea să optimizăm performanţa Baza pentru argumentarea eficienţei ADT-ului Exemplu: Operaţia push(stack s, int e) implementată ca array: void push (stack s, int e) { s.top = s.top + 1; s[s.top] = e; } 11

Eficienţa unei implementări de TAD este hotărâtoare: o Complexitatea de timp a operaţiilor o Inserarea unui element; o Ştergerea unui element; o Căutarea unui element o Complexitatea de spaţiu a reprezentării interne a datelor De obicei se face un compromis între eficienţa de spaţiu şi de timp: operaţiile mai rapide necesită de obicei spaţiu suplimentar, iar reprezentările mai compacte conduc la operaţii mai lente 12

CONTAINERUL Definiţie: O SD (un obiect) de bază care conţine o colecţie de elemente (obiecte) şi are metode proprii pentru accesul la elemente. Container omogen: containerul conţine elemente de acelaşi tip Container eterogen: containerul care conţine elemente de tipuri diferite Container secvenţial: containerul ale cărui elemente sunt aranjate după o regulă (de ex. după index) Operatii: Creare container (vid) Inserare element Cautare element Stergere element Numarul elementelor 13

CONTAINERUL In funcţie de aplicaţie, cerinţe foarte diferite: o Obiecte duplicate o Ordine o Acces poziţional o Acces asociativ o Acces iterativ Tip colecţie Dinamic Duplicate Ordine Acces Array/tablou da/nu da da poziţie Set/mulţime da nu nu Bag/multiset da da nu List/listă da da da poziţie Map, Hash Table da da nu asociativ (cheie) 14

ITERATOR PENTRU CONTAINER Definiţie: Iteratorul este o SD de bază care permite traversarea un container, indiferent de implementare. Containerul trebuie să furnizeze un mecanism de accesare a elementelor sale cu ajutorul iteratorului Iteratorul conţine o o referintă spre conteiner o o referintă spre elementul curent 15

Tipuri de iteratori Iterator înainte: (se incrementează, spre ultimul obiect al containerului) Iterator înapoi: (se decrementează, spre primul obiect al containerului) Iterator bidirecţiona: (se poate şi incrementa şi decrementa) Iterator random: (se poate incrementa şi decrementa cu un număr oarecare de poziţii ) Exemplu TAD Iterator înainte D Iter-C = {it C it iterator peste un container C} Operaţii: init(containersecvential C) // Constructor, crează reset() // Setează iteratorul la pe primul obiect din C next() // Mută iteratorul spre următorul obiect getcurrent() // Returnază referinţa curentă atend() // Returnează true dacă iteratorul este la sfârşitul lui C Destroy() // Destructor, distruge iteratorul 16

VECTOR Definiţie. Un vector este un container secvenţial care suportă accesul direct (random) la fiecare element al sau. Vectorul este cel mai simplu container şi pentru anumite aplicatii foarte eficient. Exemplu - Memoria RAM a calculatorului 17

VECTOR Clasificare: Static dimensiune fixă nu pot fi adăugate/sterse elemente de memorie Dinamic dimensiune modificabilă index valoare 0 1 2 3 4 5 6 0 1 4 9 16 25 36 Exemplu de implementare în limbajul C: int main() { int i; for (i = 0; i<7; i++ { v[i] = i * i printf ( %d\n, v[i]); } return 0; } 18

TAD Vector Static Operaţii: Complexitate: Creare O(n) Set, Get de obicei operator [] acces aleatoriu O(1) Iniţializare (Init) O(n) Dimensiune(Size) O(1) Egalitate (Equal) O(n) Copiere (Copy) O(n) Căutare (Search) O(n) sau O(log 2 n) Sortare (Sort) O(n log 2 n) 19

20

Avantaje: Acces direct la fiecare element Accesul se face în timp constant Vectorii pot fi parcurşi uşor secvenţial Dezavantaje: Sunt structuri statice În anumite cazuri nu se utilizează optim memoria Adăugarea unui element operatie laborioasă 1. Crearea unui nou vector de dimensiune mai mare 2. Copierea elementelor în noul câmp Modificarea poziţiilor elementelor (de ex. într-un vector sortat) operaţie foarte laborioasă 21

22