Programmverzweigungen

Häufig ist es beim Programmieren notwendig, Teile des Programms nur unter bestimmten Bedingungen auszuführen. Um dies zu Realisieren benötigen wir Programmverzweigungen. Beim Programmieren unterscheidet man dabei drei verschiedene Arten von Verzweigungen:

if <bedingung>:
   ... anweisungen ...
if <bedingung>:
   ... anweisungen ...
else:
   ... anweisungen ...
if <bedingung1>:
   ... anweisungen ...
elif <bedingung2>:
   ... anweisungen ...
elif <bedingung3>:
   ... anweisungen ...
...
else:
   ... anweisungen ...

Bemerkungen:

Operator Wirkung
> größer
< kleiner
>= größer gleich
<= kleiner gleich
== gleich
!= ungleich

Ausführlichere Informationen zum Thema findet ihr hier

Ein- und zweiseitige Alternative

Mehrfachverzweigungen

Die folgenden drei Turtle-Programme sollen die drei Fälle demonstrieren:

# Beispiel einseitige Alternative
from turtle import *
 
eingabe = textinput("Frage","Soll ein Rechteck gezeichnet werden? (J/N)")
 
# Zum Vergleich wird ein doppeltes = verwendet.
if eingabe == "J":
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
 
print("Das Rechteck wurde nur gezeichnet, wenn J eingegeben wurde.")
# Beispiel zweiseitige Alternative
from turtle import *
 
eingabe = textinput("Frage","Soll ein Rechteck oder ein Dreieck gezeichnet werden? (R/D)")
 
# Zum Vergleich wird ein doppeltes = verwendet.
if eingabe == "R":
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
else:
    fd(200)
    right(120)
    fd(200)
    right(120)
    fd(200)
 
print("Das Rechteck wurde nur gezeichnet, wenn R eingegeben wurde. In jedem anderen Fall wurde das Dreieck gezeichnet.")
# Beispiel Mehrfachverzweigung
from turtle import *
 
figur = textinput("Frage","Welche Figur soll gezeichnet werden? (Dreieck, Quadrat, Sechseck)")
stiftfarbe = textinput("Frage","In welcher Stiftfarbe soll die Figur gezeichnet werden? (rot, grün, blau)")
fuellfarbe = textinput("Frage","In welcher Füllfarbe soll die gezeichnet werden? (rot, grün, blau)")
 
if stiftfarbe == "rot":
    pencolor("red")
elif stiftfarbe == "grün":
    pencolor("green")
else:
    pencolor("blue")
 
if fuellfarbe == "rot":
    fillcolor("red")
elif fuellfarbe == "grün":
    fillcolor("green")
else:
    fillcolor("blue")
 
 
pensize(5)
 
if figur == "Dreieck":
    begin_fill()
    fd(200)
    right(120)
    fd(200)
    right(120)
    fd(200)
    end_fill()
elif figur == "Quadrat":
    begin_fill()
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
    right(90)
    fd(200)
    end_fill()
else:
    begin_fill()
    fd(200)
    right(60)
    fd(200)
    right(60)
    fd(200)
    right(60)
    fd(200)
    right(60)
    fd(200)
    right(60)
    fd(200)
    end_fill()

Farbwähler: https://de.w3docs.com/tools/color-picker

Aufgabe 12

Teste die Beispielprogramme. Ergänze das Programm zur Mehrfachverzweigung um weitere Farben.

Aufgabe 13

Schreibe ein Programm bei dem zunächst folgende Eigenschaften abgefragt werden:

Figur: Dreieck, Quadrat, Sechseck

Stiftfarbe: rot, grün, blau

Füllfarbe: rot, grün, blau

entsprechend der Eingabe soll dann die entsprechende Figur gezeichnet werden.