Logo Cusanus Gymnasium Erkelenz
Icon Leitprogramm Informatik

Cusanus-Gymnasium Erkelenz Europaschule

Einführung in die Programmierung mit

Kapitel III - Lösung der Lernfortschrittskontrolle
Differenzierungskurs
"Informatik" - Klasse 9 / 10
Gr - 2025 / 2026
Version vom 30.08.2025

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") 

  • 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.

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.
Anmerkung: Die Wahl des Variablennamens hängt stark von dem Programm bzw. der geforderten Funktionalität des Programmes ab. Soll die Turtle einen Kreis zeichnen, so macht es keinen Sinn die Turtle als "rechteckTurtle" zu bezeichnen. In diesem Sinne ist auch die obige Ausführung hinsichtlich des Erahnens des gemeinten Objektes zu verstehen.

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 1 
from turtle import Turtle 
# Kommentar 2 
myTurtle = 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 3
 quadratTurtle.screen._root.mainloop() 
  1. 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.
  2. Ergänze mittels deiner Zeichnung die fehlende Beschreibung im Kopfkommentar.
  3. 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.
  4. Schreibe das Programm so um, dass es nur die Methoden forward() und left() benötigt.
  5. Das Objekt der Klasse Turtle soll nach Ausführung des Programmes wieder in die ursprüngliche Richtung schauen. Ergänze dazu Zeile 24 geeignet.
  6. Kommentar 3 in Zeile 25 fehlt noch. Ergänze diesen geeignet - auch hier soll wieder die darunterfolgende Zeile kommentiert werden.
  7. In der letzten Zeile hat sich ein Fehler eingeschlichen. Korrigiere den Fehler!

Aufgabe 3 (Lösung)

  1. Das Programm erzeugt die folgende Ausgabe:
    Abbildung
    Zeichnung des Turtle-Objektes
  2. Das Programm zeichnet einen Fahnenmast auf dem Bildschirm.
  3. 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".
  4. # # 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 Modul 
    from 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 3
     quadratTurtle.screen._root.mainloop() 
  5. myTurtle.left(90)
    Aufgrund der Ergänzung der Kommentare ist die Anweisung jetzt eine Zeile tiefer gerutscht.
  6.  # Fenster geoeffnet lassen - fuer Linux
  7.  myTurtle.screen._root.mainloop() 
    Erklärung:
    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.