Inleidend probleem Data structuur (hiërarchie van classes)

Slides:



Advertisements
Verwante presentaties
Algoritmen en Datastructuren (ALDAT)
Advertisements

Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Hoofdstuk 20: GEGEVENSSTRUCTUREN.
Practica Computerlinguistiek Tekst en uitleg:
Van domeinklasse tot implementatie
Hashing Inhoud Hashing Hashtable Hash function Collision Toepassing van klassieke ADT’s, algoritmes en runtime overwegingen.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
Hoofdstuk 6: Controle structuren
Hoofdstuk 4: Klassen definiëren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
1 Datastructuren Heapsort College 4. 2 Vandaag  Kort: ADT vs Datastructuur  Heaps en Heapsort  Tijd over: ondergrenzen voor sorteren; nog sneller sorteren.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
De koektrommel of de grabbelton
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Frank Stalpers en Ad Baars
Hoofdstuk Strings en arrays. Primitieve types nint gehele getallen-17, -5, 0, 3, 178 ndouble reëele getallen3.141, 2.0, -1.5E8 nbool waarheidswaarden.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
CONTROLESTRUCTUREN (DEEL 1)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Algoritmiek Object-georiënteerd Programmeren
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
JAVA UTILITIES PACKAGE EN BIT-MANIPULATIE
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Arrays.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Introductie tot GoF patterns in Java
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Welkom! maandag 16 November 2015 Les B-2.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
…is eigenlijk overbodig!
Datastructuren voor graafrepresentatie
Minimum Opspannende Bomen
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Expressies
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Interfaces
H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING.
Implementatie Zoekboom
Object Communication (Jewel Jam)
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Unified Modeling Language
Transcript van de presentatie:

Inleidend probleem Data structuur (hiërarchie van classes) Snel algoritme zie paragraaf 4.4

Het probleem Een DNA molecule bestaat uit vele tienduizenden aminozuren. Bevat het molecule herhalende reeksen van opeenvolgende aminozuren met lengte 4?

Mogelijke oplossingen Drie geneste for-statements. Plaats alle reeksen met lengte 4 in een array en sorteer het array. Identieke reeksen staan achter elkaar in het array. Maak gebruik van hashing. (komt nog!) Snelste methode.

Abstract Data Types Inhoud: Definitie van type Operatie Definitie ADT Type beschrijving Interface Klassieke ADT’s Bag / Set Stack, Queue, Deque Map

Type Type is een verzameling van waarden. int: –2147483648 t/m 2147483647 boolean: true, false char: ‘ ‘, ‘?’, ‘a’, ‘b’, ……. Op waarden kunnen operaties worden uitgevoerd die specifiek zijn voor het type.

Operaties De verzameling van operaties op een type vormen een interface. Signature van een operatie is: naam van de operatie type van de argumenten type van de return-waarde

Operaties Een interface is een verzameling signatures. Een interface bevat geen implementatie. Operaties worden gedefinieerd a.d.h.v. pre- en postcondities, waardoor de properties worden gedefinieerd.

Pre- en postcondities Indien aan de precondities van een method is voldaan, gelden na uitvoering van de method de postcondities. Indien niet aan de precondities is voldaan, is de toestand na uitvoering van de method niet gedefinieerd!

Operaties Operaties kunnen polymorf zijn. 3 + 5 t.o.v. 3.0 + 5.0 “abc” + “def” toString() Probleem: 3. 0 + 5

Polymorfe variabelen Polymorfe variabele kan een waarde bevatten van ander type. Inheritance Object obj = new String(“Dit mag”) Interface Bag zakje = new LinkedList(); zakje kan waarden van verschillende types bevatten.

Abstract Data Type ADT is een beschrijving van: een verzameling van waarden een aantal operaties op deze waarden. De class String is een implementatie van het ADT String.

Klassieke ADT’s Diverse collecties: Bag elementen in een Bag hoeven niet uniek te zijn. Set elementen in een Set zijn uniek. Map bevat paren (sleutel, object).

Bag, Set en Map Java kent niet de class Bag. Set en Map zijn een interfaces in Java. Voor Bag kan bijv. een LinkedList worden gebruikt. Voor Set kan een HashSet of een TreeSet worden gebruikt. Voor Map kan bijv. een HashMap of Hashtable worden gebruikt.

Stack = stapel Lijst waarbij uitsluitend aan één kant mutaties kunnen worden uitgevoerd. push() pop()

Stack In tegenstelling tot Bag en Set is de volgorde waarin elementen worden toegevoegd belangrijk. Java kent de class Stack (java.util.Stack)

Queue = wachtrij Lijst waarbij toevoegen en verwijderen aan verschillende uiteinden wordt uitgevoerd. verwijderen toevoegen Java kent geen implementatie voor Queue.

Deque Dequeue = double ended queue Lijst waarbij toevoegen en verwijderen aan beide uiteinden kunnen worden uitgevoerd. verwijderen toevoegen toevoegen verwijderen Java kent geen implementatie voor Deque.

Map Interface die operaties beschrijft voor een verzameling paren (sleutel, object) waarvan de sleutels uniek zijn. De objecten zijn toegankelijk via hun sleutel. Bijv. Object get(Object key) Object remove(Object key)