Verzweigungen

Einführung von Verzweigungen

Das Wichtigste in aller Kürze

  • Eine Verzweigung leitet man mit if ein.
  • Es folgt eine Bedingung und danach gibt an an, was passieren soll, wenn sie erfüllt ist.
  • Nach einem else gibt man an, was passiert, wenn sie nicht erfüllt ist. Das else und die weiteren Befehle können auch entfallen.
  • Ein Beispiel:
konto = 50

if (konto > 0):
    print("Noch Guthaben vorhanden.")
    print(konto)
else:
    print("Kein Guthaben mehr!")

print("Ende") 

Übungen

Aufgabe 1. Das folgende kleine Programm soll wie unten beschrieben erweitert werden:

konto = 0

einzahlung = input("Welchen Betrag zahlst Du ein? ")
auszahlung = input("Welchen Betrag hebst Du ab? ")

konto = konto + einzahlung

Wenn genug Geld auf dem Konto vorhanden ist, wird der gewünschte Betrag vom Guthaben abgezogen und der neue Kontostand angezeigt. Andernfalls wird angezeigt, dass nicht genug Geld vorhanden ist.

Implementiere ein geeignetes Programm.

Aufgabe 2. Analysiere das folgende Programm:

from gturtle import *

makeTurtle()

right(90)
penUp()

zaehler = 0

while zaehler < 10:
    if(zaehler%2 == 0):
        setPenColor("red")
    else:
        setPenColor("blue")
    
    dot(20)
    forward(30)
    zaehler = zaehler + 1

Aufgabe 3. Mithilfe einer Schleife und einer Verzweigung kann man ein solches Bild erstellen:

Entwickle ein geeignetes Programm. Stelle Deine Lösung auch mithilfe eines Flussdiagramms dar.

Aufgabe 4. Das Programm aus Aufgabe 1 soll nun erweitert werden. Der Benutzer wird nun wiederholt gefragt, ob er Geld einzahlen, Geld abheben oder das Programm beenden will. Möchte er zu viel Geld abheben, wird wie oben reagiert.

Erweitere das Programm wie beschrieben.

Zusatzaufgabe. Hier geht es um ein kleines Ratespiel, das zu dritt gespielt wird. Zunächst gibt ein Spielleiter eine geheime natürliche Zahl von 1 bis 100 ein. Danach dürfen nacheinander die beiden anderen einen Tipp abgeben, welche Zahl eingegeben wurde. Schließlich wird angezeigt, welcher Spieler näher an der geheimen Zahl war. Falls beide gleich nah dran waren, wird auch dies angezeigt.

Hinweis: Ist zum Beispiel die geheime Zahl 50 und einer gibt 40, der andere 60 ein, sind natürlich auch beide Spieler gleich nah dran!

Entwickle ein solches Programm.

Verschachtelte Verzweigungen

Das Wichtigste in aller Kürze

  • So wie Schleifen kann man auch Verzweigungen verschachteln.
  • Ein Beispiel:
konto = 60

if(konto > 100):

    if(konto > 500):
        print("Super!")  
    else:
        print("Gut!")

else:
    if(konto < 0):
        print("Schulden!!!")
    else:
        print("Das Geld wird knapp!")
  • Hier muss man (wie natürlich immer in Python) sehr gut auf das Einrücken des Programmtextes achten.

Übungen

Aufgabe 1. Das folgende Diagramm stellt einen kurzen Ablauf eines Programms mit der Turtle dar:

Ein Flussdiagramm mit mehreren Verzweigungen.
Zum Vergrößern bitte anklicken!

Analysiere zunächst dieses Diagramm. D. h. erkläre genau, wie das dadurch beschriebene Programm abläuft.

Danach implementiere ein entsprechendes Programm.

Aufgabe 2. Wir betrachten noch einmal das Beispiel aus dem Clip:

konto = 60

if(konto > 100):

    if(konto > 500):
        print("Super!")  
    else:
        print("Gut!")

else:
    if(konto < 0):
        print("Schulden!!!")
    else:
        print("Das Geld wird knapp!")

Stelle dieses Programm mit einem Flussdiagramm dar.

Aufgabe 3. Als Vorlage steht dieser Programmtext zur Verfügung:

from gturtle import *

makeTurtle()
right(90)

zaehler = 0

while zaehler < 9:
    dot(20)    
    forward(20)
    zaehler = zaehler + 1    

Modifiziere das Programm mithilfe einer verschachtelten Verzweigung so, dass die Turtle das folgende Bild zeichnet:

Drei rote, grüne und blaue Punkte.

Zusatzaufgabe. In Aufgabe 1 gibt es das Problem, dass man den gezeichneten Punkte bei einem Durchmesser von 20 Pixeln oder weniger nicht sieht, weil die Turtle ihn verdeckt.

Modifiziere das Programm so, dass man auch kleine Punkte sehen kann. Ist der Durchmesser aber größer als 20 Pixel, soll die Turtle sich weiterhin nicht bewegen, d. h., bei einem großen Durchmesser soll sich das Programm genau so verhalten wie jetzt. Wie Du das genau löst, ist Dir freigestellt.