Inleiding Informatica, 2000-2001 College 7, H 7, sheet nr. 117 October 2000 - 14:29 Basiscursus Informatica 98/991 Inleiding Informatica College 8, Brookshear.

Slides:



Advertisements
Verwante presentaties
Hydrodynamica van rivieren en kanalen
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Algoritmen en Datastructuren
Algoritmen en Datastructuren (ALDAT)
JQuery en ASP.NET Bart De Meyer.
Taaltheorie en Taalverwerking Week 4: Parseer-algoritmes.
Basiscursus Informatica SWI Theoriegedeelte Overzicht en H0 Richard Benjamins.
Copyright © 2008 Tele Atlas. All rights reserved. Zet uw Business Data op de kaart: Locaties in eTOM ®
AI81 AI Kaleidoscoop College 8: Kennisrepresentatie (II)  Frames  Scripts Leeswijzer:Hoofdstuk
Programmeren in Java met BlueJ
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.
Basiscursus Informatica, College 7, H 7 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 7, Data Structures Brookshear H7 Richard.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
HM-ES-th1 Les 1 Hardware/Software Codesign with SystemC.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
Datastructuren Zoekbomen
Network Address Translation
De koektrommel of de grabbelton
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 8(2): Multi-processing.
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleidend probleem Data structuur (hiërarchie van classes)
Databases I (H.3) Het Entity-Relationship Model Wiebren de Jonge Vrije Universiteit, Amsterdam versie 2003.
Algoritmen en Datastructuren (ALDAT) EVMINX4 Dagdeel 2.
Basiscursus Informatica, College 3, H 3 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 3, Operating Systems and Networks Brookshear.
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoorcollege 14 Vijanden, excepties. Wat zit allemaal in een level? Startpositie van de speler Waterdruppels Tiles Vijanden Einde van het level Achtergronden.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Hibernate Object relational mapping
Automation SolutionsMFG/Pro Dutch usergroup 8 februari 2007 ISA S88 & S95 Het gebruik van deze normen in de productie.
Algoritmiek Object-georiënteerd Programmeren
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Visual Basic.Net - Overzicht
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Inleiding Informatica, College 6, H 6 – sheet nr. 117 October :27 Basiscursus Informatica 98/991 Inleiding Informatica College 7, Brookshear.
Inleiding Informatica, College 5, H 5- sheet nr. 117 October :19 Basiscursus Informatica 98/991 Inleiding Informatica College 6, Brookshear.
Inleiding Informatica, College 9, H 8, sheetnr. 113 March, 2001 Basiscursus Informatica 98/991 Inleiding Informatica College 9, Brookshear hoofdstuk.
Inleiding Informatica, College 4, H 4 – sheet nr. 117 October :17 Basiscursus Informatica 98/991 Inleiding Informatica College 5 Brookshear.
Basiscursus Informatica, College 8, H 8 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 8, File Structures Brookshear H8 Richard.
Basiscursus Informatica, College 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard.
Basiscursus Informatica, College 6, H 6 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 6, Software Engineering Brookshear H6 Bob.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoorcollege 9 Jewel Jam The revenge. Hierarchie van game objecten Game object (lijst) Game object (grid) Game object (lijst) Game object.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(2): Virtual.
Basiscursus Informatica, College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard.
Basiscursus Informatica, College 4, H 4 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 4, Algoritmes Brookshear H4 Richard Benjamins.
Plan Coordination by Revision in Collective Agent Based Systems Adriaan ter Mors en Gijsbert Deelder Plan Coordination by Revision in Collective.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Gevalstudie Mobiele Multi- Agent Systemen CBorg Werner Van Belle Vrije Universiteit Brussel.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov L.M. Bosveld-de Smet.
EQUA Moeten we requirements serieus nemen?. Traditioneel Iteratief Agile Open Source Frank Peeters Petra Heck
1 OMI Modelleren van content. 2 Vocabulary Content “gevangen” in begrippenapparaat: Vocabulary: lijst met termen nauwelijks semantiek Ontology:
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
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,
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Objectgeoriënteerd Programmeren
Software Development fundamentals
Transcript van de presentatie:

Inleiding Informatica, College 7, H 7, sheet nr. 117 October :29 Basiscursus Informatica 98/991 Inleiding Informatica College 8, Brookshear hoofdstuk 7: Data Structures

Inleiding Informatica, College 7, H 7, sheet nr. 217 October :29 Basiscursus Informatica 98/992 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr. 317 October :29 Basiscursus Informatica 98/993 Arrays n Eén-dimensionele arrays ä bv studenten[4] ä relatief adres versus absoluut adres ä echte geheugenadres = –beginadres + nummer van de cel - 1 ! n Multi-dimensionele arrays ä Verschillende rijen afbeelden op een aaneengesloten rij geheugencellen –‘row major’ of ‘column major’ ordening

Inleiding Informatica, College 7, H 7, sheet nr. 417 October :29 Basiscursus Informatica 98/994 Row major order Conceptueel Werkelijk rij1 rij2 rij3 rij4 rij1 rij2 rij3 rij4 X: 3de rij, 4de colom X X Algemeen: geheugenadres van bepaalde entry in array (C x (I - 1)) + (J - 1)C = #colommen, I-de rij, J-de kolom (5 x (3 -1)) + (4 -1) = 13address polynomial

Inleiding Informatica, College 7, H 7, sheet nr. 517 October :29 Basiscursus Informatica 98/995 Row major order n X staat op plaats 14 in het array, toch komt uit de address polynominal het getal 13. n Vraag: Hoe kan dat? n Oplossing: plaats 1 is het beginadres, tel daar 13 plaatsen bij op, je komt dan op plaats 14 uit.

Inleiding Informatica, College 7, H 7, sheet nr. 617 October :29 Basiscursus Informatica 98/996 Ordening op kolommen n Omgekeerde telling: tel eerst de kolommen uit daarna de rijen n Vraag: staat X op het zelfde nummer? c1c2 X

Inleiding Informatica, College 7, H 7, sheet nr. 717 October :29 Basiscursus Informatica 98/997 Voordelen - nadelen array’s n Voordelen: ä vaste vorm ä vaste inhoudstype n nadelen: ä niet dynamisch ä geen inhoudsvariatie n alternatieve structuur: lijsten

Inleiding Informatica, College 7, H 7, sheet nr. 817 October :29 Basiscursus Informatica 98/998 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr. 917 October :29 Basiscursus Informatica 98/999 Lijsten n 1. “Contiguous lists” ä blok van aaneengesloten geheugencellen (array) ä problemen –element uit midden lijst verwijderen –toevoegen niet aan begin of eind –verplaatsen van veel elementen n 2. “Linked lists” ä data verspreid over verschillende blokken cellen ä maakt gebruik van pointers

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9910 Pointers n Geheugencel bevat het adres van andere geheugencel (ipv data) ä Programmateller is ook een pointer n Flexibiliteit: data willekeurig verspreiden door het vrije geheugen n bv 8 cellen voor data en 1 voor pointer ä begin van de lijst: head pointer ä eind van de lijst: NIL pointer

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9911 Linked list head pointer data NIL pointer

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9912 Element verwijderen head pointer data NIL pointer old new pointer verwijderde element Garbage collection: bijhouden en opruimen van verwijderde elementen

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9913 Element toevoegen head pointer data NIL pointer old data pointer new nieuw element

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9914 Lijsten versus arrays n Probleem: als je een element wilt toevoegen aan array en het is vol n Bij een lijst hoef je van te voren niet de lengte te bepalen n Gevaar pointers: ‘chasing wild pointers’

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9915 Conceptuele lijst n Ideaal: abstractienivo hoger werken dan de fysieke lijst dmv alle noodzakelijke operaties op een lijst: inkijken, toevoegen, weglaten n Meeste programmeertalen komen met ingebouwde procedures voor standaard operaties op lijst n Object-oriëntatie: klasse List, feitelijke lijststructuur is verborgen

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9916 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9917 Stacks n Een ‘contiguous’ lijst waar operaties alleen aan het eind van de lijst worden uitgevoerd ä toevoegen: push operatie ä verwijderen: pop operatie n Last-in, first-out (LIFO) n Vergelijk stapel boeken n Behoud efficientie van contiguous list en reduceer nadelen o o o o o

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9918 Toepassing stack n Recursief aanroepen van processen ä nieuwe proces “gepushed” op stack, en wordt actief ä als proces klaar, “popped” van stack en gaat door met oude proces n Lijst in omgekeerde volgorde printen ä loop lijst af en push elementen op stack ä als aan eind van lijst, pop elementen van stack en print ze

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9919 Implementatie stack n Blok aaneengesloten geheugencellen n Een eind wordt de stack base n Ander eind (variabel) is de stack pointer stack base XXXXXX stack pointer gereserveerde groeiruimte

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9920 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9921 Queues / Rijen n Operaties aan begin én aan eind van lijst n First-in, first-out (FIFO) n head en tail van een rij

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9922 Queue implementatie head pointer tail pointer head tail head tail kop staart A A BB Invoegen bij de staart weglaten bij de kop

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9923 “Lopende” rij head pointer tail poiter head pointer tail poiter A B C C D E F Circulair laten lopen in vast geheugenblok

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9924 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9925 Bomen n Knopen (nodes) ä root node = top ä leaf nodes (terminal) n Arcs (verbindingen tussen knopen) n Sub-bomen n Parent nodes, child nodes, sibling nodes n Binaire bomen

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9926 Implementatie bomen n “Linked” bomen ä data cel ä left child pointer ä right child pointer ä root pointer ä NIL cell containing data left child pointer right child pointer

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9927 Binaire boom met pointers root pointer NIL A B C F D E D E A B C F

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9928 Boom in blok cellen D E A B C F Linker kind in cel 2 n Rechter kind in cel 2 n + 1 gebalanceerde boom ABCDEF ABCDE ongebalanceerde boom A B C D E

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9929 Lijst als binaire boom n Binair zoeken ä middelste element is root ä middelste van linker helft is linker kind ä midddelste van rechter helft is rechter kind n A, B, C, D, E, F, G, H, I, J, K, M, L G D K B A C IM HJ L E F

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9930 Binaire lijst n Boomstructuur gemaakt voor recursief werken n structuur is op het oog niet inzichtelijk n gewone bewerkingen, zoals printen en toevoegen, vergen nogal wat uitleg n ook hier: abstracte operaties dienen gedefinieerd te zijn

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9931 Overzicht college 8 n 1. Arrays n 2. Lijsten n 3. Stapels (Stacks) n 4. Wachtrijen (Queues) n 5. Bomen (Trees) n 6. WEL: Customized data types n 7. NIET: Pointers in machinetaal

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9932 Customized data types n User-defined types ä primitieve data types en data structuren kunnen als bouwstenen dienen voor complexe data typen ä definieert nieuw type dat vanaf dan gebruikt kan worden typedef struct {char Name[8]; int Age; float Skillrating; } EmployeeType; EmployeeType Manager, Buyer NameAgeSkillrating

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9933 Abstract Data Types (ADT) n Als customized data type, maar plus operaties ä zowel type als toegestane operaties n package StackPackage type StackOfIntegers record StackEntries: array[1..25] of integer; StackPointer: integer; end record; procedure push(Value: in integer;Stack: in out StackOfIntegers); procedure pop(Value: out integer; Stack: in out StackOfIntegers); end StackPackage; MyStack: StackOfIntegers push(106, MyStack) pop(OldValue, MyStack)

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9934 Abstract Data Types (ADT) n ADT = opslagstructuur plus operaties die er op uitgevoerd kunnen worden n Abstractie = details van de implementatie hoeft men niet te kennen om de operaties te kunnen gebruiken n Encapsulation = bescherming van de datastructuur tegen onbedoelde wijzigingen

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9935 Encapsulation n Operaties op data structuren kunnen alleen plaatsvinden via gedefinieerde procedures (methoden) ä Public procedures (versus private data) n Helder programmeren en onderhoud ä geen shortcuts naar private data mogelijk

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9936 Public procedures n package StackPackage is StackOfIntegers procedure push(Value: in integer;Stack: in out StackOfIntegers); procedure pop(Value: out integer; Stack: in out StackOfIntegers); private type StackOfIntegers record StackEntries: array[1..25] of integer; StackPointer: integer; end record; end StackPackage; n Niet direct naar StackEntries[3] verwijzen n Moet via 2 maal “pop” van element

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9937 Object-georiënteerd (OO) n Klassen: nog meer flexibel dan ADT, uitbreiding met instantiëring en overerving n In plaats van procedures die data structuren manipuleren ä Encapsuleer de data in de klasse en de procedures n Objecten manipuleren a.h.w. zichzelf: actieve objecten (Peter Coad: vend yourself) n Objecten zijn instanties van klassen

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9938 Imperatieve benadering data AData Bdata Cdata Ddata E Controlling algorithm Simulatie van globale economie

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9939 Object-georiënteerd Nation ANation BNation CNation DNation E

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9940 Creëren van objecten n Class ä constructor = patroon/template voor creëren van objecten n Inheritance ä klassen hiërarchisch structureren ä attributen worden overgeërfd n Polymorfisme ä bericht is polymorf: interpretatie hangt af van type object ä vergelijk overloading

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9941 Design pattern n Beschrijving van een probleem en de kern van de oplossing, zodanig dat de oplossing flexibel gebruikt kan worden n OO: oplossing in termen van objecten en interfaces: ä beschrijving van communicerende klassen en objecten die aangepast worden om een algemeen probleem in een specifieke context op te lossen (Gamma, et al, p.3)

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9942 Frameworks (Gamma, et al,, p28) n Design patterns are more abstract than frameworks ä alleen voorbeelden van patronen mogelijk n Dp are smaller architectural elements than fw ä vaak meerdere dp in een fw n Dp are less specialized than fw ä fw alltijd voor specifiek toepassingsgebied

Inleiding Informatica, College 7, H 7, sheet nr October :29 Basiscursus Informatica 98/9943 OO paradigma n “Het lijkt erop dat het OO paradigma de software engineers eindelijk in staat stelt grote software systemen te construeren op basis van ge-prefabriceerde onderdelen, de klassen” (Brookshear, p.358)