Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.

Lignende præsentationer


Præsentationer af emnet: "Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges."— Præsentationens transcript:

1 Skildpadder Modeller, objekter og opførsel

2  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges i utallige sammenhænge: –Flyskrog i vindtunneller viser turbolens etc. –Modeljernbaner afprøver linjeføring af tog –Atommodellen visualiserer det usynlige –Arkitektens papmodel giver indtryk af en bygning En model indfanger essentielle aspekter af et område, og udelader andre. Et program kan forstås som en model.

3  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.3 En skildpaddemodel Vi vil lave nogle tegninger, og til det formål har vi indkøbt en dresseret skildpadde. Skildpadden går rundt i en sandkasse. Når skildpadden bevæger sig rundt i sandkassen, trækker den et spor, og efterlader derved en ‘tegning’ i sandet.

4  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.4 Model (0,0) Tavle Skildpaddens tilstand: - (position, vinkel, farve, status) - starttilstand: ((midt,midt), 0, Color.black, down) 0 (360) 90 180 270 Position: (x,y) Vinkel: v Farve: color Status: up/down... Eller ((midt, midt), 0, Color.black, down)

5  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.5 Realisation Skildpaddemodellen kan vi realiserer ved hjælp af f.eks: –Et stort stykke kvadreret papir (repræsenterer tavlen) –En “dims” (skildpadden) som kan holde en pen og som vi kan bevæge rundt på tavlen/i sandkassen/... Skildpaddens tilstand er repræsenteret ved, hvor på tavlen den er.

6  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.6 Skildpaddeopførsel Nu leger vi, at “dimsen” faktisk kan forstå enkle beskeder: –Flyt dig x antal skridt –Drej dig y antal grader Hvordan ville du tegne en firkant med sidelængde 50 skridt? Har rækkefølgen af beskederne betydning?

7  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.7 Flere skildpadder Antag at vores sandkasse får besøg af et par nye skildpadder… Vi bliver nødt til at kalde vores skildpadde noget, ellers ved den enkelte ikke om det er den eller naboen som beskeden er til? “Birger, flyt dig 50 skridt, og drej 90 grader”.

8  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.8 Et OO-program I Java repræsenteres elementer i en model ved objekter Objekter udviser en bestemt opførsel eller handling Objekter med ens opførsel gruppers i kategorier klasser

9  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.9 Skildpaddeprogram Hvilke objekter/modelelementer des der? –Skildpadde –Sandkasse Hvilke handlinger har –Skildpadder? –Sandkasser? Flere skildpadder som tegner samtidigt? –Skildpadde som begreb (klasse) og de konkrete dyr der tegner i sandkassen (objekter)

10  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.10 Klassen Turtle I Java-programmet er der en klasse “Turtle” som definerer, hvilken opførsel klassen af Java- skildpadder kan have: –move(x) Flyt x skridt –turn(x) Drej x grader Ofte vil skildpadden lyde det lidt kedelig navn “t”. Sætningen: “t, flyt 50 skridt, og drej 90 grader” lyder på Java’sk: t.move(50); t.turn(90);

11  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.11 Skildpadden på tur Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.move(20); t.turn(90); t.move(40);....................

12  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.12 Sporløs skildpadde Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.move(20); t.turn(90); t.move(40); t.turn(-90); t.penUp(); t.move(50); t.penDown(); t.move(50);

13  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.13 Kulørt spor Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); t.setColor(Color.blue); t.move(20); t.turn(90); t.setColor(Color.red); t.move(40); t.turn(-90); t.penUp(); t.move(50); t.penDown(); t.setColor(Color.green); t.move(50);

14  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.14 Java sætning t.move(50); t Reference til modtagerobjektet move Opførsel (50) Detaljer (parametre) move(50) Besked. Adskilklelse af reference og besked ; Afslutning på java-sætningen

15  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.15 Turtleprogrammer import turtle.*; // import java.awt.*; //hvis der skal benyttes farver class Driver { public static void draw() { Turtle t = new Turtle(); t.turn(45); t.move(100); t.turn(-45); } Drawing.java:

16  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.16 Gentagelser //tegn en firkant t.move(100); t.turn(90); //tegn en tolvkant... (suk!) //tegn en firkant for ( int i=0; i<4; i++ ) { t.move(100); t.turn(90); } //tegn en tolvkant for ( int i=0; i<12; i++ ) { t.move(100); t.turn(30); }

17  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.17 Javas elementer Et Java-program er tekst opbygget efter et præcist formuleret sprog. Sprogets elementer er: –Nøgleord (keywords):class, import, public,… –Navne (identifiers):Turtle, t, move, … –Konstanter (literals):12, “Hej”, 12.34, … –Mellemrum (white space) –Kommentarer (comments)/* … */ eller // … Teksten (programmet) skrives i en editor, dvs en slags tekstbehandling som er særlig velegnet til at skrive Java-programmer.

18  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.18 Mekanik En computer forstår ikke umiddelbart Java. For at kunne udføre et Java-program, skal det først bringes på en form, så computeren kan forstå det. I forbindelse med Java benyttes en to-trinsmodel: Java program Bytekode Maskinen Java Bytekode Fortolker Oversætter (compiler) Fortolker (interpreter)

19  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.19 BlueJ –Editor –Oversætter (Compile) oversætterfejl (compile-fejl) –Afvikling (Run) køretidsfejl (runtime-fejl) –Help Turtleprogrammering i BlueJ –Eksempler Demonstration af BlueJ

20  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.20 Hvordan tegner man en ligesidet trekant med en turtle? Hvordan tegner man en cirkel? Hvordan får man en figur (for eksempel en streg) til at “bevæge” sig frem og tilbage over skærmen? Øvelser


Download ppt "Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges."

Lignende præsentationer


Annoncer fra Google