Entscheidungen treffen: Die bedingte Anweisung

Im täglichen Leben, aber auch häufig in Programmen, steht man ständig vor dem Problem, Entscheidungen treffen zu müssen. Je nach bestimmten Bedingungen macht man dann das eine oder das andere. Das nennt man dann Auswahl oder auch bedingte Anweisung.

Beispiele:

Wenn morgen schönes Wetter ist, dann gehe ich in den Zoo, sonst ins Museum.
Wenn drei verschiedene Punkte durch Strecken verbunden werden, dann entsteht (meist!) ein Dreieck.

Das Struktogramm:

Um solche Situationen übersichtlich darzustellen, verwendet man im Struktogramm die folgende Form: 


Die Bedingung:

Die Bedingung nimmt entweder den Wert "wahr" oder "falsch" an, im Oberon-Englisch TRUE und FALSE. Die einfachste Form der Bedingung ist der Vergleich, z.B. der Vergleich von zwei Zahlen (oder Worten, Buchstaben,...):
= gleich 
> größer 
< kleiner 
>= größer gleich
<= kleiner gleich 
# ungleich 

Beispiel: Mein Idealgewicht

Schreibe ein Oberon-Programm, das das Idealgewicht einer Person ermittelt. Dazu muss man zunächst die Körpergröße in cm der Person bestimmen und dann von dieser Zahl die Zahl 100 subtrahieren.
Diesen Differenzwert multipliziert man nun bei Frauen mit 0,9 und bei Männern mit 0,95 und erhält das Idealgewicht in kg.

Beispiel: Körpergröße einer Frau: 170 cm
Idealgewicht: (170 - 100)*0,9

Hinweis: Als Wert für die Variable geschlecht soll bei Männern die Zahl 0 und bei Frauen die Zahl 1 eingegeben werden!



Du kannst das Programm auch noch weiter verbessern, indem es dem Kunden auch noch nach seinem Gewicht fragt und als Antwort gibt, wieviel Unter- bzw. Übergewicht er hat!
Musterlösung

Weitere Aufgaben

1. Rabatt
Eine Computerhändlerin liefert bei einem Rechnungsbetrag (rbetrag) von mindesten 2000 DM die Ware frei Haus. Andernfalls müssen für Verpackung und Porto 40 DM berechnet werden.
Entwirf ein Programm, das daraus den Gesamtpreis berechnet! (ohne Lösung)

2. Der Freundliche Computer
Das Programm fragt den Benutzer nach seinem Nachnamen und seinem Geschlecht (CHAR-Variable, für die m oder w eingegeben wird). Je nach Geschlecht erscheint dann die Begrüßung "Grüß Gott, Herr/Frau ....". 
Musterlösung 

3. Lösung der linearen Gleichung ax = b 
Die Lineare Gleichung ax=b hat nur dann die Lösung b/a, wenn a nicht den Wert 0 annimmt. Falls a den Wert 0 annimmt und b nicht, ist sie nicht lösbar. Wenn beide 0 sind, gibt es unendlich viele Lösungen.
Entwirf ein Programm, das dieses Problem löst!
Musterlösung

4. Quadratische Lösungsformel (für erfahrene MathematikerInnen)
Aus der 9. Klasse kennst du die quadratische Lösungsformel, die abhängig von der Diskriminate 0, 1 oder 2 Lösungen ermitteln lässt. Entwirf ein Oberon-2-Programm, das dieses Problem löst! (Beachte: In der Musterlösung wird der Fall mit einer Lösung noch nicht gesondert behandelt, sie ist also noch verbesserungsfähig.)
Musterlösung