Übungsblatt 01 Turtle-Grafik - Lösungen

Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 4

GF Informatik

Herbstsemester 2024

Übungsblatt 1 – Lösungen
Einführung Turtle-Graphik

1. Unten sind vier verschiedene (nicht-massstäbliche) Abbildungen A bis D gezeigt und vier
verschiedene Python-Programme (1) bis (4). Finden Sie heraus, welche Abbildung zu
welchem Programm gehört bzw. davon erzeugt wird. (Finden Sie die Lösung, ohne die
Programme auszuführen. Die Turtle ist zu Beginn auf dem Bildschirm nach rechts
schauend ausgerichtet.)

A: B:

C: D:

(nicht massstäblich)

Snippet (1): Snippet (2):


1 import turtle 1 import turtle
2 t = turtle.Turtle() 2 t = turtle.Turtle()
3 t.right(30) 3 t.right(90)
4 t.forward(100) 4 t.forward(50)
5 t.right(120) 5 t.right(120)
6 t.forward(100) 6 t.forward(100)
7 t.right(120) 7 t.left(120)
8 t.forward(50) 8 t.forward(50)
9 t.right(90) 9 t.left(120)
10 t.forward(87) 10 t.forward(100)
11 t.backward(87)
12 t.left(90)
13 t.forward(50)

Snippet (3): Snippet (4):


1 import turtle 1 import turtle
2 t = turtle.Turtle() 2 t = turtle.Turtle()
3 t.right(45) 3 t.left(90)
4 t.forward(100) 4 t.forward(50)
5 t.right(90) 5 t.right(90)
6 t.forward(100) 6 t.forward(100)
7 t.right(90) 7 t.right(90)
8 t.forward(100) 8 t.forward(100)
9 t.right(90) 9 t.left(90)
10 t.forward(100) 10 t.forward(100)
11 t.left(90)
12 t.forward(50)
13 t.left(90)
14 t.forward(200)

A gehört zu ____(2)____ C gehört zu ____(3)____

B gehört zu ____(4)____ D gehört zu ____(1)____

Seite 1 / 4
GF Informatik Übungsblatt 1
Herbstsemester 2024

2. Schreiben Sie je ein Programm in Python, so dass die nachfolgend gezeigten Figuren
gezeichnet werden. Soweit sie nicht in der Skizze angegeben, können Sie die Grössen
jeweils selbst nach eigenem Ermessen bestimmen. Die Farben müssen nicht mit
denjenigen in den Graphiken übereinstimmen und die Turtle kann sichtbar sein oder nicht
und muss am Ende des Programms nicht zwingend wie abgebildet ausgerichtet sein.
Vorbemerkung: Beim Programmieren gibt es immer mehrere mögliche Lösungen für ein
gegebenes Problem. Das bedeutet, dass die unten angegebenen Lösungen jeweils nur eine
mögliche Lösung unter vielen darstellen (siehe dazu auch die Lösung zu Aufgabe 3). Allein aus der
Tatsache, dass sich Ihr Programm-Code von demjenigen in der Lösung unterscheidet, folgt also
keinesfalls, dass Ihre Lösung falsch sein muss. Wenn Ihr Programm die vorgegebene Figur wie
verlangt zeichnet, ist es auch korrekt.

a) Mögliche Lösung:
1 import turtle
2 t = turtle.Turtle()
3 t.forward(100)
4 t.left(90)
5 t.forward(50)
6 t.right(90)
7 t.forward(100)
8 t.right(90)
9 t.forward(50)
10 t.left(90)
11 t.forward(100)

b) Mögliche Lösung:
1 import turtle
2 t = turtle.Turtle()
3 t.left(90)
4 t.forward(100)
5 t.backward(100)
6 t.left(120)
7 t.forward(100)
8 t.backward(100)
9 t.left(120)
10 t.forward(100)
11 t.backward(100)

c) Mögliche Lösung:
1 import turtle
2 t = turtle.Turtle()
3 t.dot(10)
4 t.left(45)
5 t.forward(50)
6 t.dot(10)
7 t.right(90)
8 t.forward(50)
9 t.dot(10)
10 t.left(90)
11 t.forward(50)
12 t.dot(10)
13 t.right(90)
14 t.forward(50)
15 t.dot(10)

Seite 2 / 4
GF Informatik Übungsblatt 1
Herbstsemester 2024

d) Mögliche Lösung:
1 import turtle
2 t = turtle.Turtle()
3 # Dach zeichnen
4 t.forward(80)
5 t.left(120)
6 t.forward(80)
7 t.left(120)
8 t.forward(80)
9 # Parterre zeichnen
10 t.left(30)
11 t.forward(80)
12 t.left(90)
13 t.forward(20)
14 t.left(90)
15 t.forward(40)
16 t.right(90)
17 t.forward(40)
18 t.right(90)
19 t.forward(40)
20 t.right(90)
21 t.forward(40)
22 t.right(180)
23 t.forward(60)
24 t.left(90)
25 t.forward(80)

3. a) Finden Sie mindestens drei verschiedene Python-Programme, die dasselbe Rechteck


zeichnen.
Die folgenden drei Python-Programme zeichnen zum Beispiel alle ein- und dasselbe
Rechteck mit einer Seitenlänge von 100 mal 50 Pixeln:
Programm (1):
1 import turtle
2 t = turtle.Turtle()
3 t.forward(50)
4 t.right(90)
5 t.forward(100)
6 t.right(90)
7 t.forward(50)
8 t.right(90)
9 t.forward(100)
Programm (2):
1 import turtle
2 t = turtle.Turtle()
3 t.right(90)
4 t.forward(100)
5 t.left(90)
6 t.forward(50)
7 t.left(90)
8 t.forward(100)
9 t.left(90)
10 t.forward(50)

Seite 3 / 4
GF Informatik Übungsblatt 1
Herbstsemester 2024

Programm (3):
1 import turtle
2 t = turtle.Turtle()
3 t.right(90)
4 t.forward(100)
5 t.left(90)
6 t.forward(50)
7 t.right(360)
8 t.left(90)
9 t.forward(100)
10 t.left(90)
11 t.forward(50)

b) Wie viele verschiedene Programme gibt es insgesamt, welche ein Rechteck


zeichnen?
Es gibt unendlich viele Programme, die ein- und dasselbe Rechteck auf dem
Bildschirm zeichnen. Wenn man ein Programm geschrieben hat, welches ein
bestimmtes Rechteck zeichnet, dann kann man ein weiteres Programm finden, das
genau dasselbe Rechteck zeichnet, indem man wie in Programm (3) einfach an einer
beliebigen den Befehl right(360) einfügt, der die Schildkröte eine vollständige
Umdrehung um ihre Achse vollführen lässt. Die die Schildkröte danach immer noch
am gleichen Ort steht und wieder in die gleiche Richtung blickt wie vor der
Ausführung des Befehls, wird dies keinen Einfluss auf die Ausgabe haben. Man
könnte den Befehl right(360) dann auch zweimal, dreimal oder 42-mal einfügen,
was jeweils wieder andere Programm-Codes ergibt, jedoch keine andere Ausgabe.
Auf diese Weise lassen sich unendlich viele verschiedene Programme mit derselben
Bildschirmausgabe erzeugen. Dies gilt natürlich nicht nur für Rechtecke, sondern für
beliebige Figuren. (Bemerkung: Obwohl die verschiedenen Programme eine
identische Bildschirm-Ausgabe erzeugen, heisst das nicht, dass sie gleichwertig sind:
Die Programme unterscheiden sich insbesondere darin, wie viel Zeit sie benötigen,
um die entsprechende Figur zu zeichnen, d.h. wie effizient sie sind. Es gehört zu den
Zielen der Informatik als Wissenschaft, verschiedene Programme mit identischer
Wirkung daraufhin zu untersuchen, welches schneller ans Ziel gelangt und Wege zu
suchen, wie man mit einem besseren Programm das gleiche Resultat in kürzerer Zeit
erreichen kann.)

Seite 4 / 4

Das könnte Ihnen auch gefallen