I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....

Slides:



Advertisements
Lignende præsentationer
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Advertisements

GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Iteration og parametrisering
MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder.
18. Strategisk analyse af interne forhold
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
FEN IntroJava AAU1 Grafik – Crayon-objekter.
Forelæsning 2.2 Tilstand og opførsel (repetition)
Trigonometri – 6. og sidste forløb i 10G
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Samtidighed. Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
Rekursion 2.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursion 2.2 Introduktion Vi har tidligere set eksempler på rekursive.
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Bærbak & Caspersen, 2000 Introducerende objektorienteret programmering4B.1 Talsystemer Positionstalsystemer Decimale og binære tal.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7A.1 Rekursion.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14A.1 Del, løs og kombinér.
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Positionstalsystemer Decimale og binære tal
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering6C.1 OOP – Hvorfor nu det? Funktionsorienteret versus objektorienteret systemudvikling.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
Klassevariable- og metoder Funktionalitet på klasseniveau.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
I o p o DAIMI, AU, November 1999Introducerende objektorienteret programmering9D.1 Del, løs og kombinér.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5B.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering3E.1 Syntaksbeskrivelse Udtryk og Java-programmer.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Michael E. Caspersen, 2000 Introducerende objektorienteret programmering4A.1 Sweep-algoritmer Programmering med invarianter og uden kaniner.
Billedbehandling – processering af digitale billeder.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Del, løs og kombinér Et algoritmemønster.
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Forelæsning Uge 1 – Torsdag
Quiz – Uge 2 – torsdag – første time
Quiz – Uge 3 – mandag – første time
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
Parametrisering En kort introduktion.
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
Præsentationens transcript:

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.2 Penta, etc.  triangle  penta  poly  macro  pasta  bigMac  semiFinal  final  ultimo  finitto

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.3 Hvordan tegnes en macro? macro(160); poly(80); penta(40); triangle(20);

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.4 Tegning af macro...

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.5 Omdøbning  triangle  penta  poly  macro  pasta  bigMac  semiFinal  final  ultimo  finitto  superTriangle 0  superTriangle 1  superTriangle 2  superTriangle 3  superTriangle 4  superTriangle 5  superTriangle 6  superTriangle 7  superTriangle 8  superTriangle 9

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.6 poly og macro public void poly(int l) { penta(l/2); move(l/2); penta(l/2); turn(120); move(l/2); turn(-120); penta(l/2); turn(-120); move/l/2); turn(120); } public void macro(int l) { poly(l/2); move(l/2); poly(l/2); turn(120); move(l/2); turn(-120); poly(l/2); turn(-120); move/l/2); turn(120); }

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.7 superTriangle 2 og 3 public void superTriangle2(int l) { superTriangle1(l/2); move(l/2); superTriangle1(l/2); turn(120); move(l/2); turn(-120); superTriangle1(l/2); turn(-120); move/l/2); turn(120); } public void superTriangle3(int l) { superTriangle2(l/2); move(l/2); superTriangle2(l/2); turn(120); move(l/2); turn(-120); superTriangle2(l/2); turn(-120); move/l/2); turn(120); }

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.8 Parametrisering public void superTriangle(int d, int l) { superTriangle(d-1, l/2); move(l/2); superTriangle(d-1, l/2); turn(120); move(l/2); turn(-120); superTriangle(d-1, l/2); turn(-120); move/l/2); turn(120); } superTriangle(3, 160); svarer til macro(160); superTriangle(2, 160); svarer til poly(160); superTriangle(1, 160); svarer til penta(160); UPS!... superTriangle(0, 160); svarer til

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.9 Fuldstændig løsning public void superTriangle(int d, int l) { // d >= 0 if ( d == 0 ) triangle(l); else { superTriangle(d-1, l/2); move(l/2); superTriangle(d-1, l/2); turn(120); move(l/2); turn(-120); superTriangle(d-1, l/2); turn(-120); move/l/2); turn(120); } superTriangle(3, 160); svarer til macro(160); superTriangle(2, 160); svarer til poly(160); superTriangle(1, 160); svarer til penta(160); superTriangle(0, 160); svarer tiltriangle(160);

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.10 Hvordan tegnes en penta? sT(1,40); sT(0,20); sT: superTriangle triangle(20); penta penta: 3 små trekanter

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.11 Hvordan tegnes en poly? sT(2,80); sT(1,40); poly penta poly: = 9 små trekanter

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.12 Hvordan tegnes en macro? sT(3,160); sT(2,80); poly macro: = 27 små trekanter

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.13 Udfoldet rekursionstræ sT(3,160); sT(2,80); sT(1,40); sT(0,20);

i o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.14 Tegning af macro...