Das Beispiel Tee kochen könnte im Fall einer leeren Teepackung etwa folgendermaßen bearbeitet werden:
Damit ist nun für den Fall Sorge getragen, dass die Teepackung leer ist, denn für einen Algorithmus gilt ja, dass jeder Schritt ausführbar sein muss. Es müsste natürlich entsprechend weiter verfolgt werden, was zu geschehen hat, wenn keine neue Packung vorrätig ist.
Die allgemeine Formulierung der Selektion lautet:| Falls | Bedingung (erfüllt) |
| dann Schritt |
![]() |
![]() |
Der Schritt wird genau dann ausgeführt, wenn die Bedingung erfüllt (wahr) ist, sonst nicht. Diese Art der Selektion bestimmt, ob ein besonderer Schritt auszuführen ist, oder nicht.
Häufig sind aber Selektionsformen nötig, die zwischen zwei alternativen Schritten eine Auswahl treffen sollen, wie etwa bei folgenden Beispiel:
| Falls | Schilift in Betrieb |
| dann fahren wir Abfahrt | |
| sonst fahren wir Langlauf |
Die allgemeine Formulierung lautet demnach:
| Falls | Bedingung (erfüllt) |
| dann Schritt 1 | |
| sonst Schritt 2 |
![]() |
![]() |
Der zuerst genannte Fall der einseitigen Selektion ist nur ein Sonderfall zur zweiseitigen, da die folgenden Formen gleichwertig sind:
| Falls | Bedingung (erfüllt) | Falls | Bedingung (erfüllt) | |
| dann Schritt | dann Schritt | |||
| sonst tue nichts |
Die Bedingung wird so formuliert, dass sie entweder wahr oder falsch ist. Solche Ausdrücke heißen boolesche Terme. In der Mathematik werden hierbei gewöhnlich Vergleichszeichen wie >, <, = etc. verwendet. Ausdrücke können schließlich mit logischen Operatoren (und, oder, nicht, ...) verknüpft werden. (Datentyp boolean)
Selektionen können auch geschachtelt werden, da als Schritt wieder eine Selektion verwendet werden kann. Beispiel
Wir betrachten ein weiteres Beispiel der Mehrfachverzweigung:
Auf Schecks müssen Beträge auch ziffernweise in Zahlwörter übersetzt werden. Also ein Betrag von 167 Euro wird in Worten als "eins - sechs - sieben" geschrieben.
Problemstellung:
Nach Eingabe einer Ziffer wird diese als Zahlwort ausgegeben.
Erstelle ein Struktogramm zur Lösung dieses Problems und schreibe ein Programm in Pseudocode dazu.
[Index] [Zurück/Algorithmen 3] [Fortsetzung/Algorithmen 5]
Autor: Jürgen Dehmer
Letzte Änderung: 17. Dezember 2002