Jahrgangsstufe 9 - Informatik - Mittwoch, der 17. März 2021


Thema: Programmierung

Name:
Jahrgang/Klasse:
E-Mail-Adresse:

Ein paar neue Befehle für die Turtle-Graphik:

penUp() hebt den Zeichenstift an. Erfolgt jetzt eie Bewegung, wird nichts gezeichnet.
penDown() senkt den Zeichenstift. Erfolgt jetzt eie Bewegung, wird etwas gezeichnet.
home() setzt die Turtle in die Mitte des Bildschirms mit Blick nach oben.
hideTurtle() macht die Turtle unsichtbar. Das macht das Zeichnen schneller.

Methoden:

In der letzten Stunde haben wir schon Schleifen behandelt. Die folgende Schleife hat dabei ein Kreuz mit kleinen Punkten an den Enden gezeichnet.

from gturtle import *
setPlaygroundSize(1900,1000)
makeTurtle("sprites/beetle.gif")
home()

for i in range(4):
     forward(100)
     dot(5)
     back(100)
     right(90)

Wenn man nun mehrere Kreuze zeichnen möchte, bringt man der Turtle sozusagen den Befehl kreuz() bei. Die Turtle muss also lernen, wie man ein Kreuz zeichnet. Das geht so:

from gturtle import *
setPlaygroundSize(1900,1000)
makeTurtle("sprites/beetle.gif")
home()

# So lernt die Turtle, ein Kreuz zu zeichnen
def kreuz():
  for i in range(4):
       forward(100)
       dot(4)
       back(100)
       right(90)
# Jetzt ist sie fertig mit dem Lernen.

# Jetzt sagt man der Turtle, dass sie das
# Gelernte auch wirklich machen soll.
kreuz()
penUp()
right(90)
forward(300)
left(90)
penDown()
kreuz()

Man schreibt vor den Namen des neuen Befehls das Wort def (für Definition), macht hinter den Klammern einen Doppelpunkt für den Anfang des zu Lernenden und rückt alles, was zu lernen ist, um die gleiche Anzahl an Zeichen ein (hier 2 Zeichen).

Aufgabe 1:

Teste zuerst das angegebene Programm.
Schreibe dann ein Programm mit einer Schleife, das 5 Kreuze nebeneinander mit etwas Abstand in das Bildschirmfenster zeichnet. Beginne mit dem Zeichnen in der linken Hälfte des Fensters. Kopiere das komplette Programm in das Formular.

Aufgabe 2:

Schreibe dann ein Programm mit einer Schleife, das 9 Kreuze übereinander mit gemeinsamem Mittelpunkt in die Fenstermitte zeichnet. Nach jedem Kreuz soll sich die Turtle um einen Winkel von 10 Grad nach links drehen. Kopiere das komplette Programm in das Formular.

Methoden mit Parametern:

Das ist natürlich langweilig, wenn das Kreuz immer eine Armlänge von 100 hat. Um diese Größe variabel zu gestalten, stattet man die Methode kreuz() mit einem Parameter aus, der einfach eine Variable darstellt, die hier in unseren Beispielen eine Zahl enthält. Dann ergeben sich im oberen Beispielprogramm nur wenige Änderungen:

from gturtle import *
setPlaygroundSize(1900,1000)
makeTurtle("sprites/beetle.gif")
home()

# So lernt die Turtle, ein Kreuz variabel zu zeichnen
def kreuz(laenge):
  for i in range(4):
       forward(laenge)
       dot(4)
       back(laenge)
       right(90)
# Jetzt ist sie fertig mit dem Lernen.

# Jetzt sagt man der Turtle, dass sie das
# Gelernte auch wirklich machen soll.
kreuz(100)
penUp()
right(90)
forward(400)
left(90)
penDown()
kreuz(200)
# Und so kann sie auch groessere Kreuze zeichnen.

Wenn die Methode mit einer Zahl als Parameter aufgerufen wird, erhält die Variable laenge diesen Wert und dieser Wert wird auch an die Turtle-Methoden forward() und back() weitergegeben.

Aufgabe 3:

Teste zuerst das angegebene neue Programm.
Formuliere in einem Programm die Methoden quadrat(seite) und fuenfeck(seite) und zeichne in der linken Hälfte des Fensters ein Quadrat und in der rechten Hälfte ein Fünfeck mit einer Größe deiner Wahl. Benutze dazu deine neuen Methoden. Kopiere das komplette Programm in das Formular.