Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.

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
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.
 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.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 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”
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering5A.1 OOP – Model før funktioner Funktionsorienteret versus objektorienteret systemudvikling.
 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.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmeringAlgebra.1 Algebraiske begreber Tal, sandhedsværdier og figurer.
 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.
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.
Frameworks Hændelsesstyret programmering: ”Don’t call us – we’ll call you”
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.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
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)
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering6B.1 Rekursive skildpadder Supertrekanter....
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
Sequence En container til heltal.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSequence.2 Datatypen Sequence Oprette Sequence()
I o p o DAIMI, AU, November 1999Introducerende objektorienteret programmering9D.1 Del, løs og kombinér.
DAIMIIntroducerende objektorienteret programmering4D.1 Betingelsessætninger if.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
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.
Objektinteraktion i GUI’er MVC og Observer.  Michael E. Caspersen, 2003Introducerende objektorienteret programmeringmvc.2 AWT framework Listeners og.
 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.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Forelæsning Uge 2 – Torsdag Java syntax og style guide Sætninger –Simple sætninger (assignment, interne og eksterne metodekald) –Sammensatte sætninger.
Forelæsning Uge 2 – Torsdag
Quiz – Uge 2 – torsdag – første time
Quiz – Uge 3 – mandag – første time
Forelæsning Uge 2 – Mandag
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
Parametrisering En kort introduktion.
Forelæsning Uge 4 – Mandag
Quiz – Uge 3 – mandag – første time
Præsentationens transcript:

Rekursive skildpadder Supertrekanter....

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc. triangle penta poly macro pasta bigMac semiFinal finale ultimo finitto

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.3 Hvordan tegnes en macro? macro(160); poly(80); penta(40); triangle(20); penta(40); triangle(20);

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.4 Tegning af macro...

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.5 Omdøbning triangle penta poly macro pasta bigMac semiFinal finale ultimo finitto superTriangle 0 superTriangle 1 superTriangle 2 superTriangle 3 superTriangle 4 superTriangle 5 superTriangle 6 superTriangle 7 superTriangle 8 superTriangle 9

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.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); }

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.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); }

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.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

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.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);

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.10 Hvordan tegnes en penta? sT(1,40); sT(0,20); sT: superTriangle triangle(20); penta penta: 3 små trekanter

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.11 Hvordan tegnes en poly? sT(2,80); sT(1,40); poly penta poly: = 9 små trekanter

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.12 Hvordan tegnes en macro? sT(3,160); sT(2,80); poly macro: = 27 små trekanter

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.13 Udfoldet rekursionstræ sT(3,160); sT(2,80); sT(1,40); sT(0,20);

 Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.14 Tegning af macro...