Index

Erstellen einfacher Programme

2. Algorithmen (4)


Selektion

Das Beispiel Tee kochen könnte im Fall einer leeren Teepackung etwa folgendermaßen bearbeitet werden:

  1. Erhitze Wasser
    ...
  2. Brühe den Tee auf
    1. Öffne die Teepackung
    2. Falls die Teepackung leer ist,
      dann öffne eine neue Teepackung
    3. Entnimm der Teepackung einen Beutel
    4. ...

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
Flussdiagramm Selektion Struktogramm Selektion

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
Flussdiagramm Selektion Struktogramm Selektion

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.

Lösungsvorschlag

[Index] [Zurück/Algorithmen 3] [Fortsetzung/Algorithmen 5]


Autor: Jürgen Dehmer
Letzte Änderung: 17. Dezember 2002