g9:uebungen:vererbung:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
g9:uebungen:vererbung:start [2022/06/30 07:50] – Martin Pabst | g9:uebungen:vererbung:start [2022/07/01 07:46] (aktuell) – [Beispiel 7: Fraktaler Baum] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Vererbung ====== | ====== Vererbung ====== | ||
- | ====== Beispiel 1: Fliegende Rechtecke ====== | + | ====== Beispiel 1: Advanced Robot ====== |
+ | |||
+ | <WRAP center round todo 80%> | ||
+ | Die Klasse Robot hat alle Methoden, die Du von Robot Karol her kennst. Erweitere sie um weitere Methoden: | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | * Die Methode '' | ||
+ | |||
+ | Lass Dir noch weitere Methoden einfallen und schreibe ein Hauptprogramm, | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | AdvancedRobot tom = new AdvancedRobot(1, | ||
+ | tom.legeQuadrat(4); | ||
+ | tom.baueTreppe(3); | ||
+ | |||
+ | class AdvancedRobot extends Robot { | ||
+ | |||
+ | void umdrehen() { | ||
+ | linksDrehen(); | ||
+ | linksDrehen(); | ||
+ | } | ||
+ | |||
+ | void gehe(int schrittzahl) { | ||
+ | for (int i = 0; i < schrittzahl; | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void legeBahn(int länge) { | ||
+ | for (int i = 0; i < länge; i++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void legeQuadrat(int seitenlänge) { | ||
+ | for (int s = 0; s < 4; s++) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void baueTreppe(int höhe) { | ||
+ | for (int i = 0; i < höhe; i++) { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ====== Beispiel 2: Fliegende Rechtecke ====== | ||
Starte das Programm und regle die Geschwindigkeit langsam hoch! | Starte das Programm und regle die Geschwindigkeit langsam hoch! | ||
< | < | ||
Zeile 280: | Zeile 342: | ||
</ | </ | ||
- | ===== Feuerwerk ===== | + | ===== Beispiel 5: Feuerwerk ===== |
Das Beispiel " | Das Beispiel " | ||
+ | |||
+ | ====== Beispiel 6: Kochkurve ====== | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new World(1000, 1000); | ||
+ | Kochkurve k = new Kochkurve(7); | ||
+ | |||
+ | class Kochkurve extends Turtle { | ||
+ | |||
+ | | ||
+ | super(50, 700); | ||
+ | setBorderWidth(3); | ||
+ | int länge = 700; | ||
+ | turn(60); | ||
+ | zieheLinie(länge, | ||
+ | turn(-120); | ||
+ | zieheLinie(länge, | ||
+ | turn(-120); | ||
+ | zieheLinie(länge, | ||
+ | } | ||
+ | |||
+ | | ||
+ | if(tiefe == 0) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(60); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(-120); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | turn(60); | ||
+ | zieheLinie(länge / 3, tiefe - 1); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Beispiel 7: Fraktaler Baum ====== | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new FraktalerBaum(400, | ||
+ | |||
+ | class FraktalerBaum extends Turtle { | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | super(x, y); | ||
+ | this.faktor = faktor; | ||
+ | this.winkel = winkel; | ||
+ | setBorderWidth(2); | ||
+ | turn(90); | ||
+ | zeichneAst(tiefe, | ||
+ | } | ||
+ | |||
+ | void zeichneAst(int n, double länge) { | ||
+ | if(n == 0) return; | ||
+ | |||
+ | forward(länge); | ||
+ | turn(winkel); | ||
+ | zeichneAst(n - 1, länge * faktor); | ||
+ | turn(-2*winkel); | ||
+ | zeichneAst(n - 1, länge * faktor); | ||
+ | turn(winkel); | ||
+ | turn(180); | ||
+ | penUp(); | ||
+ | forward(länge); | ||
+ | turn(180); | ||
+ | penDown(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ |
g9/uebungen/vererbung/start.1656568232.txt.gz · Zuletzt geändert: 2022/06/30 07:50 von Martin Pabst