Kapitel III - Eine Schildkröte zum Zeichnen
Lösung der Lernfortschrittskontrolle
Bitte vergleiche deine Lösung mit der hier angegebenen Musterlösung. Wenn du der Meinung bist, dass deine Ergebnisse bei mindestens 2 von 3 Aufgaben richtig sind, dann melde dich zum Kapiteltest beim Lehrer. Ansonsten solltest du vorher die Inhalte aus Kapitel III nochmals durcharbeiten und gewissenhaft lesen. Vielleicht hilft es dir, wenn du in Zukunft versuchst, parallel zu der Bearbeitung des Lerntextes eine knappe Zusammenfassung der wichtigsten Inhalte zu schreiben.
Aufgabe 1
Erstelle eine Übersicht über die bereits bekannten Attribute und Methoden der Klasse Turtle. Erläutere kurz die Methoden.
Aufgabe 1 (Lösung)
- Methoden
- forward()
Bewegt das Turtle-Objekt um die im Argument angegebenen Bildpunkte nach vorne.
Beispiel:myTurtle.forward(100) - backward()
Bewegt das Turtle-Objekt um die im Argument angegebenen Bildpunkte nach hinten.
Beispiel:myTurtle.backward(100) - left()
Dreht das Turtle-Objekt um den Winkel, der im Argument übergeben wird, nach links.
Beispiel:myTurtle.left(180) - right()
Dreht das Turtle-Objekt um den Winkel, der im Argument übergeben wird, nach rechts.
Beispiel:myTurtle.right(45) - shape()
Wechselt das Kostüm des Turtle-Objektes. Als Argument dient die Zeichenkette des Kostümes, das das angesprochene Objekt anziehen soll.
Beispiel:myTurtle.shape("turtle")
- forward()
- Attribute
- Kostüm
Jedes Turtle-Objekt hat ein Kostüm an. Für einen Kostümwechsel vgl. die oben angegebene Methode. - Stiftfarbe und Stiftdicke
Diese beiden Attribute haben wir zwar schon erwähnt, allerdings noch nicht benutzt oder gar verändert.
- Kostüm
Aufgabe 2
Handelt es sich bei den folgenden Variablennamen um gültige Variablennamen? Ist ein solcher Variablenname sinnvoll? Erläutere, warum du einen Variablennamen nicht für sinnvoll hältst.
- a
- 3Turtle
- Schildkröte1
- quadratTurtle
- asd
- zeichenstift
- secondTurtle
Aufgabe 2 (Lösung)
-
a
Dieser Variablenname ist zwar zulässig, aber nicht sinnvoll gewählt, da nicht klar wird, welches Objekt gemeint ist. -
3Turtle
Dieser Variablenname ist nicht gültig, da er mit einer Ziffer beginnt. -
Schildkröte1
Dieser Variablenname ist nicht gültig, da er ein Sonderzeichen enthält. -
quadratTurtle
Dieser Variablenname ist zulässig und sinnvoll gewählt, da man erahnen kann, welches Objekt gemeint ist. -
asd
Dieser Variablenname ist zwar zulässig, aber nicht sinnvoll gewählt, da nicht klar wird, welches Objekt gemeint ist. -
zeichenstift
Dieser Variablenname ist zulässig und sinnvoll gewählt, da man erahnen kann, welches Objekt gemeint ist. -
secondTurtle
Dieser Variablenname ist zulässig und sinnvoll gewählt, da man erahnen kann, welches Objekt gemeint ist.
Aufgabe 3
Die weiteren Aufgabenteile beschäftigen sich mit dem folgenden Programm:
# # Autor(en))# Christian Graf# # Datum# 04.03.2011# # letzte Aenderung# 04.03.2011# # Beschreibung# ??# ??# Kommentar 1from turtle import Turtle# Kommentar 2myTurtle = Turtle("turtle")myTurtle.left(90)myTurtle.forward(300)myTurtle.right(90)myTurtle.forward(50)myTurtle.left(90)myTurtle.backward(100)myTurtle.right(90)myTurtle.backward(50)myTurtle.right(90)myTurtle.forward(200)# Kommentar 3quadratTurtle.screen._root.mainloop()
- Zeichne die Ausgabe des Programmes auf einem Blatt Papier nach. Führe dazu Schritt für Schritt die Anweisungen, die dem Objekt "myTurtle" übergeben werden, aus. Achte darauf, dass das Turtle-Objekt anfangs in Richtung des rechten Blattrandes schaut.
- Ergänze mittels deiner Zeichnung die fehlende Beschreibung im Kopfkommentar.
- In den Zeilen 10 und 12 ist ein weiterer Kommentar vorgesehen. Es sollen jeweils die direkt darunterliegenden Zeilen kommentiert werden. Gib einen geeigneten Kommentar an.
- Schreibe das Programm so um, dass es nur die Methoden forward() und left() benötigt.
- Das Objekt der Klasse Turtle soll nach Ausführung des Programmes wieder in die ursprüngliche Richtung schauen. Ergänze dazu Zeile 24 geeignet.
- Kommentar 3 in Zeile 25 fehlt noch. Ergänze diesen geeignet - auch hier soll wieder die darunterfolgende Zeile kommentiert werden.
- In der letzten Zeile hat sich ein Fehler eingeschlichen. Korrigiere den Fehler!
Aufgabe 3 (Lösung)
-
Das Programm erzeugt die folgende Ausgabe:
Zeichnung des Turtle-Objektes - Das Programm zeichnet einen Fahnenmast auf dem Bildschirm.
-
Kommentar 1:
Importiere den Bauplan der Klasse Turtle aus dem zugehörigen Modul
Kommentar 2:
Erstelle ein neues Objekt der Klasse Turtle und ziehe diesem das Kostuem "turtle" an. Gib diesem Objekt den Namen "myTurtle". -
# # Autor(en))# Christian Graf# # Datum# 04.03.2011# # letzte Aenderung# 04.03.2011# # Beschreibung# Das Programm zeichnet einen# Fahnenmast auf dem Bildschirm# Importiere den Bauplan der Klasse Turtle aus dem zugehörigen Modulfrom turtle import Turtle# Erstelle ein neues Objekt der Klasse Turtle und ziehe diesem das Kostuem "turtle"# an. Gib diesem Objekt den Namen "myTurtle".myTurtle = Turtle("turtle")myTurtle.left(90)myTurtle.forward(300)myTurtle.left(90+180)myTurtle.forward(50)myTurtle.left(90+180)myTurtle.forward(100)myTurtle.left(90+180)myTurtle.forward(50)myTurtle.left(90)myTurtle.forward(200)# Kommentar 3quadratTurtle.screen._root.mainloop() -
Aufgrund der Ergänzung der Kommentare ist die Anweisung jetzt eine Zeile tiefer gerutscht.myTurtle.left(90) -
# Fenster geoeffnet lassen - fuer Linux -
Erklärung:myTurtle.screen._root.mainloop()
Die Turtle mit dem ursprünglichen Namen existiert nicht, daher muss der Variablenname entsprechend geändert werden!
Wenn du der Meinung bist, dass deine Ergebnisse bei mindestens 2 von 3 Aufgaben richtig sind, dann melde dich zum Kapiteltest beim Lehrer.