Benutzer-Werkzeuge

Webseiten-Werkzeuge


neuerlehrplan:klasse10:verzweigungen

Dies ist eine alte Version des Dokuments!


Verzweigungen

Häufig ist es notwendig, die Ausführung eines Algorithmus in Abhängigkeit von bestimmten Bedingungen zu verzweigen. Dazu verwendet man Alternativen bzw. Verzweigungen. Diese werden hier vorgestellt.

Einfache Verzweigung mit und ohne Alternative

Bei einfachen Verzweigungen steht am Anfang immer eine Frage, die mit ja oder nein beantwortet werden kann. Diese Frage wird auch Bedingung genannt, die wahr (entspricht ja) oder falsch (entspricht nein) sein kann. In Ahängikeit von der Beantwortung der Frage werden nun die Anweisungen des Algorithmus ausgeführt.

Verzweigung ohne Alternative

Bei der Verzweigung ohne Alternative (, auch einseitige Verzweigung oder einseitige Alternative genannt,) werden Anweisungen nur ausgeführt, wenn die Frage mit ja beantwortet wird bzw. wenn diie Bedingung wahr ist.

Im Satz könnte man formulieren:

Wenn die Bedingung wahr ist, dann führe Anweisungen aus.

Im Struktogramm kann man sie wie folgt darstellen:

Das Struktogramm für eine einfache Alternative besteht zunächst aus einem Rechteck mit drei Dreiecken. Im zentralen Dreieck wird die Frage oder die Bedingung formuliert, im linken Dreieck steht dann wahr oder ja, im rechten Dreieck steht falsch oder nein. Unter dem linken Dreieck erscheint dann ein Rechteck mit einer oder mehreren Anweisungen, die ausgeführt werden, wenn die Bedingung erfüllt ist oder die Frage mit ja beantwortet wird. Bei der Verzweigung ohne Alternative bleibt das Rechteck unter dem rechten Dreieck leer bzw. man schreibt man das Symbol der leeren Menge $\emptyset$ hinein.

In Python kann die Verzweigung ohne Alternative (einseitige Verzweigung) mit der if-Anweisung umgesetzt werden:

if Bedingung:
    ... Anweisungen ... 

Hinter dem if steht die Bedingung. Das ist ein Ausdruck mit dem Datentyp bool, also er kann die Werte True oder False annehmen. Danach kommen die Anweisungen, die im Fall True ausgeführt werden sollen. Sie werden um dieselbe Tiefe eingerückt. Um das Programm nach der if-Anweisung fortzusetzen, muss der Quellcode wieder genau so tief eingerückt werden wie das if.

Beispiel 1

Es ist ein Programm zu erstellen, dass nach Eingabe einer ganzen Zahl entscheidet, ob die Zahl negativ ist. Zusätzlich soll der Betrag der Zahl ausgegeben werden.

Stichwortartige Beschreibung des Algorithmus

Eingabe: Ganze Zahl n Wenn n negativ ist:

  • Ausgabe: Die Zahl ist negativ
  • Ausgabe: -n

Darstellung des Algorithmus als Struktogramm

Algorithmus als Pythonprogramm

n = int(input("n = "))
if n < 0:
    print("Die Zahl n ist negativ.")
    print("Betrag von n:", -n)

Verzweigung mit Alternative

Bei der Verzweigung mit Alternative (, auch zweiseitige Verzweigung oder zweiseitige Alternative genannt,) werden Anweisungen ausgeführt, wenn die Frage mit ja beantwortet wird bzw. wenn diie Bedingung wahr ist. Wenn Frage mit ja beantwortet wird bzw. die Bedingung falsch ist werden andere Anweisungen ausgeführt.

Im Satz könnte man formulieren:

Wenn die Bedingung wahr ist, dann führe Anweisungen aus, anderenfalls führe andere Anweisungen aus.

Im Struktogramm kann man sie wie folgt darstellen:

Das Struktogramm ist zunächst genau so aufgebaut, wie bei der Verzweigung ohne Alternative. Im Unterschied zu Verzweigung ohne Alternative stehen jetzt unter dem rechten Dreieck die Anweisungen, die ausgeführt werden, wenn die Bedingung nicht erfüllt ist bzw. wenn die Frage mit nein beantwortet wird.

In Python kann die Verzweigung mit Alternative (zweiseitige Verzweigung) mit der if-else-Anweisung umgesetzt werden:

if Bedingung:
    ... Anweisungen ... 
else:
    ... Anweisungen ... 

Hinter dem if steht die Bedingung. Das ist ein Ausdruck mit dem Datentyp bool, also er kann die Werte True oder False annehmen. Danach kommen die Anweisungen, die im Fall True ausgeführt werden sollen. Sie werden um dieselbe Tiefe eingerückt. Danach erscheint in derselben Einrücktiefe wie das if das else gefolgt von einem Doppelpunkt. Die nach dem else eingerückten Anweisungen werden ausgeführt, wenn die Bedingung nicht erfüllt ist. Um das Programm nach der else-Anweisung fortzusetzen, muss der Quellcode wieder genau so tief eingerückt werden wie das if.

Beispiel 2

s ist ein Programm zu erstellen, dass nach Eingabe einer ganzen Zahl entscheidet, ob die Zahl negativ oder nichtnegativ ist. Zusätzlich soll der Betrag der Zahl ausgegeben werden.

Stichwortartige Beschreibung des Algorithmus

Eingabe: Ganze Zahl n

Wenn n negativ ist:

  • Ausgabe: Die Zahl ist negativ
  • Ausgabe: -n

anderenfalls

  • Ausgabe: „Die Zahl ist nicht negativ.“
  • Ausgabe: n

Darstellung des Algorithmus als Struktogramm

Algorithmus als Pythonprogramm

n = int(input("n = "))
if n < 0:
    print("Die Zahl n ist negativ.")
    print("Betrag von n:", -n)
else:
    print("Die Zahl n ist nicht negativ.")
    print("Betrag von n:", n)

Verschachtelte Verzweigungen

Wir wollen nun unser Beispiel erweitern. Nachdem wir festgestellt haben, dass die Zahl nicht negativ ist, soll noch festgestellt werden, ob die Zahl Null ist, oder ob die Zahl positiv ist. Im Struktogramm könnte der Algorithmus so aussehen:

neuerlehrplan/klasse10/verzweigungen.1757088031.txt.gz · Zuletzt geändert: von lutz