Jahrgangsstufe 8 - Informatik - Dienstag, der 13. April 2021


Musterlösungen zum 23. März 2021

Zur Wiederholung: Methoden mit Parametern

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

# 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.
home()
#hideTurtle()
for k in range(9):
   kreuz(400)
   left(10)

Aufgabe 1:

Starte zuerst das oben angegebene Programm.

Erinnerung: Durch die Zeile for k in range(9): nimmt die Variable k im ersten Durchgang den Wert 0, im zweiten Durchgang den 1 und im letzen Durchgang den Wert 8 an. Der Wert k läuft also von 0 bis 8. Das sind dann insgesamt 9 Durchgänge.
Ersetze nun die Zeile mit kreuz(400) durch kreuz(400-40*k)
Ergänze im Formular die Stellen mit drei Punkten ... bzw. berechne, mit welcher Länge das Kreuz jeweils gezeichnet wird.

1. Durchgang: k=0  --> kreuz(400-40*0) = kreuz(400)
2. Durchgang: k=1  --> kreuz(400-40*1) = kreuz(360)
3. Durchgang: k=2  --> kreuz(400-40*2) = kreuz(320)
4. Durchgang: k=3  --> kreuz(400-40*3) = kreuz(280)
5. Durchgang: k=4  --> kreuz(400-40*4) = kreuz(240)
6. Durchgang: k=5  --> kreuz(400-40*5) = kreuz(200)
7. Durchgang: k=6  --> kreuz(400-40*6) = kreuz(160)
8. Durchgang: k=7  --> kreuz(400-40*7) = kreuz(120)
9. Durchgang: k=8  --> kreuz(400-40*8) = kreuz(80)

Aufgabe 2:

Ein Kreuz wird durch vier Kreuzarme gezeichnet. Formuliere eine Methode arm(armlaenge) für einen Arm des Kreuzes ohne irgendwelche Drehungen. Durch die Methode arm(armlaenge) soll die Turtle nur die Strecke armlaenge nach vorne gehen und wieder zurückkehren. Zeichne damit die gleiche Sternfigur wie im Programm ganz oben:

hideTurtle()
for j in range(36):
   arm(400)
   left(10)

Gib nur die Methode arm(armlaenge) hier im Formular an:

def arm(armlaenge):
     forward(armlaenge)
     dot(4)
     back(armlaenge)

Aufgabe 3:

Das letzte Programm für den 36-zackigen Stern soll so verändert werden, dass die Länge der Arme sich so verringert, dass eine Art Spirale entsteht. Du solltest es auch einmal mit 72 Zacken versuchen. Gib das komplette Programm hier ein.

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

def arm(armlaenge):
     forward(armlaenge)
     dot(4)
     back(armlaenge)

hideTurtle()
for k in range(36):
   arm(400-10*k)
   left(10)

Aufgabe 4:

In der letzten Stunde wurde ein Fünfeck behandelt. Kopiere dir die Fünfeck-Methode aus den Musterlösungen, wenn du sie nicht parat hast. Zeichne dann eine Figur aus 10 Fünfecken, die alle eine Ecke gemeinsam haben und nacheinander durch eine Drehung um 36 Grad entstehen. Gib das komplette Programm hier ein.

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

def fuenfeck(seite):
    for i in range(5):
        forward(seite)
        left(72)

home()
hideTurtle()

for i in range(10):
     fuenfeck(300)
     left(36)