GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.

Slides:



Advertisements
Lignende præsentationer
Hvordan får jeg lagt First Class programmet ind på min egen computer ??? De følgende sider er en lille anvisning på, hvordan du selv kan installere programmet.
Advertisements

Formularer (Access, del 3)
07 – Kort om OO Introduktion.
Introduktion til programmering
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
Datastrukturer Simple-type structs
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Grundlæggende programmering Efterår 2001
GP10, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 10 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
GP9, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 9 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 4. november 2005.
Flugtveje mig - Problemanalysen og metode Daniel - Graftori og modelovervejlser Asger - Flugtvejsproblemet og korteste-vej algoritmen THOMAS - Største.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
Økonometri 1: Dummy variable
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
NOEA/IT - FEN1 Typeparametisering/Genericity Generics i.NET 2 og C#
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 7. april 2003.
1 Datalogi C Datastrukturer og algoritmer ved Keld Helsgaun.
Grafer og Algoritmer Rasmus D. Lehrmann DM
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
1 Søgning I. 2 Plan Sekventiel søgning Binær søgning Binære søgetræer Balancerede binære søgetræer træer.
Forelæsning 3.1 Collections Javas for-each løkke
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Algoritmer og Datastrukturer 1
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
1 Anvendelser III Grafer. 2 Terminologi Repræsentation Traversering Korteste vej Topologisk sortering Problemkompleksitet og afgørlighed Plan.
Grafalgoritmer II.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
GP8, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 8 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper: arrays, stakke, køer,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 9. november 2004.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
1 Implementering af fundamentale datastrukturer. 2 Stakke og køer Array-repræsentation Liste-repræsentation Hægtede lister Træer Terminologi Traversering.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
Grundlæggende programmering Forår 2002
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
GP9, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 11 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
GP3, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 3 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
Forelæsning 7.1 – repetition
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Variabler, klassevariabler, identitet og lighed, collections
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
Algoritmer og Datastrukturer 1 Elementære Datastrukturer [CLRS, kapitel 10] Gerth Stølting Brodal Aarhus Universitet.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Query optimization MICHAEL I
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Velkommen til B klassen
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder Martin Lillholm

GP12, Martin Lillholm 2 Spørgetime Spørgetime mandag den 2. januar 9-12 – lokale annonceres Eksamen er onsdag den 4. januar 9-13 Mail gerne spørgsmål på forhånd Vejledende løsninger til obligatoriske opgaver på hjemmesiden efter sidste afleveringsfrist (den 12. december) Gamle eksamenssæt og vejledende løsninger på hjemmesiden efter sidste afleveringsfrist (den 12. december)

GP12, Martin Lillholm 3 Sidste gang Undtagelser (exceptions) Rekursion – spørgsmål og udvalgte emner

GP12, Martin Lillholm 4 Denne gang Tilbagelænet gennemgang af: –Abstrakte datatyper –Dynamiske strukturer –Stakke og køer –Træer og grafer –Collections Evaluering Prøveeksamen

GP12, Martin Lillholm 5 Abstrakte datatyper Opbevarer data på en struktureret måde –En samling data (interne) –Et antal operationer (eksterne, grænseflade), der kan udføres på data Indsæt Fjern Find... Eksempler: Liste, stak, kø, træ og graf Klasser/objekter kan netop give denne abstraktion. Hvorfor ? Implementation vs. abstraktion –Eksempel fra tidligere: arrayList Hvordan er arrayList implementeret ?

GP12, Martin Lillholm 6 Liste – abstrakt En lineær samling af data – en liste – hmm en rekursiv definition Typiske operationer: –Indsæt på vilkårlig plads –Fjern på vilkårlig plads –Opdater på vilkårlig plads –Indhold på vilkårlig plads –…

GP12, Martin Lillholm 7 Kø (queue) – abstrakt Typisk en liste, men med restriktioner på hvordan vi indsætter og tager ud First-in, first-out (FIFO) Typiske operationer –enqueueindsæt element bagest i kø –dequeuefjern element fra køens start –emptyer køen tom? Tavlegennemgang Hvad kan man bruge en kø til ?

GP12, Martin Lillholm 8 Stak (stack) – abstrakt Typisk en liste, men med restriktioner på hvordan vi indsætter og tager ud Last-in, first-out (LIFO) Typiske operationer: –push –pop –peek –empty Tavlegennemgang Hvad kan man bruge en stak til... kaldstak, rekursion og stak –Decode.java L&L side 623 i BlueJ

GP12, Martin Lillholm 9 Implementation Hvordan ser den abstrakte datatyper ud inden i ? –Kan have mange forskellige implementationer –Stadig med samme grænseflade –Typisk baseret på Tabeller – (nogen gange 2,3, … dimensionelle) Hægtede type …

GP12, Martin Lillholm 10 Dynamiske strukturer En tabel er ikke dynamisk En arrayList dynamisk, men benytter faktisk (statiske) tabeller. Person person1 = new Person(”Martin Lillholm”, 192); En ”rigtig” dynamisk (enkelthægtet) liste kunne se således ud: class Node { int info; // Blot et eksempel på data Node next; // Husk at objektvariable er referencer } Tavlegennemgang info kan have en vilkårlig type og altså godt være en klassetype - afhænger af, hvad vi vil gemme.

GP12, Martin Lillholm 11 Enkelthægtet liste (linked list) Tavlegennemgang af –Indsættelse –Sletning Køretid, sammenlignet med en almindelig (statisk) tabel –MagazineRack.java L&L side 615 i BlueJ

GP12, Martin Lillholm 12 Dobbelthægtet liste (doubly linked list) class Node { int info; // Blot et eksempel på data Node next, prev; // Husk at objektvariable er referencer } Tavlegennemgang Hvorfor nu det? Mange andre muligheder... –Listeheader med front og rear referencer –Kombinationer af de ovennævnte Det virker besværligt det her... ArrayList er meget nemmere... helt rigtigt, men bag kulisserne sker noget lignende (ADT!)

GP12, Martin Lillholm 13 Dynamiske strukturer med statiske byggeklodser L&L side 387 Tunes.java side 387 i BlueJ ArrayList

GP12, Martin Lillholm 14 Træ (tree) ikke lineær struktur Rodknude (root) Interne knuder (internal nodes) Bladknuder (leaf nodes) Tavlegennemgang... datalogiske træer vokser nedad... Hvor mange børn kan en knude have ? Tavlegennemgang: –Binære søgetræer –Sortering ved hjælp af binære træer Implementation ? Rekusiv definition …

GP12, Martin Lillholm 15 Graf (graph) ikke lineær struktur Knuder (nodes) Kanter (edges) Tavlegennemgang Ikke orienteret graf, orienteret graf, kantvægte, DAG,... Eksempler på brug – uformel tavlegennemgang –Korteste vej –Korteste vej og internettet –Alle korteste veje - Krak –Onkel rejsende Mac – Travelling Sales Person –Ressourceplacering

GP12, Martin Lillholm 16 Java Collections API & Generics ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap... Masser af standardmetoder... Generics –LinkedList myStringList = new LinkedList (); –LinkedList myPersonList = new LinkedList (); –ArrayList myPersonList = new ArrayList (); –ArrayList myObjectList = new ArrayList(); Hvordan skriver man generics – OOP Mere om API’et ?

GP12, Martin Lillholm 17 By popular demand … Hvordan laver man et stand-alone Java program ? Det er faktisk ikke så så ligetil som man skulle tro… –Normalt kræves en JVM –Applet –Genvej eller ikon –Native compiler BulletTrain Excelsior JET …