Kapitel 01

Auffrischer Programmieren

Aufgabe 1

Begriffe

Schauen Sie sich folgendes, unsinniges, aber fehlerfreies Programm an und zählen Sie die darin vorkommenden Elemente.

pythonfrom gturtle import *
x = 123
makeTurtle()
forward(x)
penUp()
if x != 10 or x > 100:
    print(sqrt(x))
ElementAnzahl
Variablen
Argumente
Logische Ausdrücke
Befehlsdefinitionen
Befehlsaufrufe
Aufgabe 2

Fünfeck

Zeichnen Sie mit Hilfe von gturtle das abgebildete gleichseitige Fünfeck und speichern Sie das Programm anschliessend als Python-Datei mit der Endung .py.

Fünfeck
Musterlösung
pythonfrom gturtle import *

def pentagon():
    repeat 5:
        forward(100)
        left(360/5)

makeTurtle()
right(90)
pentagon()
Aufgabe 3

Calvin und Hobbes

Calvin und Hobbes

a) Definieren Sie einen Befehl quiz(), der bis zu drei Mal über ein input()-Fenster die Frage stellt:

«What's the name of Calvin's pet tiger?»

Gibt man die richtige Antwort ein, wird «Correct!» in die Ausgabe geschrieben, und das Programm wird beendet. Bei falschen Antworten wird «Try again!» ausgegeben.

b) Schreiben Sie am Ende in die Ausgabe, wie oft man raten musste.

Musterlösung
pythondef quiz():
    tries = 0
    repeat 3:
        answer = input("What's the name of Calvin's pet tiger?")
        tries += 1

        if answer == "Hobbes":
            print("Correct!")
            break
        else:
            print("Try again!")

    print("Number of guesses:", tries)

quiz()
Aufgabe 4

Kompensationszahl

Calvin

Definieren Sie einen Befehl plus_points(), der einen Parameter grade akzeptiert. Er berechnet aus der Note die zugehörigen Pluspunkte (z.B. +2 für die Note 6, oder -1 für die Note 3.5) und schreibt den folgenden Satz in die Ausgabe:

«For a <grade> you get <points> plus points.»

Wichtig: Minuspunkte werden als negative Pluspunkte ausgegeben.

Musterlösung
pythondef plus_points(grade):
    if grade >= 4:
        points = grade - 4
    else:
        points = 2*(grade - 4)

    print("For a", grade, "you get", points, "plus points.")

g = 1
repeat 11:
    plus_points(g)
    g += 0.5
Aufgabe 5

Programm interpretieren

Was zeichnet folgendes Programm? Kreuzen Sie die richtige Antwort an, ohne es auszuprobieren.

pythonfrom gturtle import *

makeTurtle()
setPenColor("blue")
setPenColor("green")
setPenColor("yellow")
setPenColor("red")
penUp()
forward(100)
left(90)
forward(100)
penDown()
left(90)
forward(100)
left(90)
forward(100)




Aufgabe 6

Mandala

Definieren Sie einen Befehl namens circle(), der ein 90-Eck (Annäherung eines Kreises) zeichnet. Benutzen Sie repeat, um das abgebildete Mandala aus 20 solchen Kreisen zu zeichnen.

Mandala
Musterlösung
pythonfrom gturtle import *

def circle():
    repeat 90:
        forward(2)
        right(360/90)

makeTurtle()
speed(-1)
repeat 20:
    circle()
    right(360/20)
Aufgabe 7

Ziffer 9

Folgendes Programm probiert die abgebildete blaue Ziffer 9 mit Stiftbreite 5 zu zeichnen.

pythonfrom gturtle import *
createTurtle()
setPenColor("red")
repeat 4:
    forward(100)
left(90)
setPenWidth(5)
back(100)
left(90)
penUp()
forward(100)

Kopieren Sie das Programm in WebTigerPython und korrigieren Sie es so lange, bis es das gewünschte Ergebnis zeichnet.

Ziffer 9
Musterlösung
pythonfrom gturtle import *
makeTurtle()
setPenColor("blue")
setPenWidth(5)
repeat 4:
    forward(100)
    left(90)
back(100)
left(90)
forward(100)