Die Aufgabe
Aufgabe 4
In einem Online-Shop gelten die folgenden Regeln:
- Wenn man unter 16 ist, kann man gar nicht einkaufen.
- Wenn man mindestens 16 aber noch nicht 18 ist, oder wenn man mindestens 65 ist, erhält man Rabatt – es sei denn, es existiert noch ein offener Rechnungsbetrag von über 50 Euro.
- Ist die Bezeichnung der Ware „Tierfutter“, so gibt es in keinem Fall Rabatt.
- Ist der offene Rechnungsbetrag jedoch über 500 Euro, so kann man gar nicht einkaufen.
a) Schreiben Sie ein Programm, bei dem man Alter (als ganze Zahl), Höhe des offenen Rechnungsbetrags (als ganze Zahl) und die Bezeichnung der Ware eingibt. Anschließend soll ausgegeben werden, ob die Person einkaufsberechtigt ist und ob sie einen Rabatt bekommt. Es soll jeweils einfach der boolesche Wert (Wahrheitswert) ausgegeben werden (also „true“ oder „false“).
Anleitung: Ihr Programm soll keine „if“-Abfragen enthalten. Nutzen Sie Variablen vom Typ „boolean“ um die Ergebnisse von Vergleichen zu speichern (z. B. „boolean b = (x > 5)“) und miteinander zu verknüpfen (z. B. „boolean b = b1 && b2“). In den Vorlesungsfolien finden Sie Übersichten der Vergleichsoperatoren (z. B. >, >=, ==) und der logischen Operatoren (z. B. &&, ||, !) sowie die Vorrangregeln der Operatoren (z. B. „Punkt vor Strich“, entsprechend „* vor +“, „&& vor ||“ usw.). Verwenden Sie ggf. Klammern um deutlich zu machen, was zusammengehört und was in welcher Reihenfolge ausgeführt wird.
b) Testen Sie Ihr Programm mit mindestens 5 sinnvoll gewählten, möglichst unterschiedlichen Kombinationen der eingegebenen Werte und prüfen Sie, ob das richtige Ergebnis ausgegeben wird.
Ein Wahrheitswert (Typ boolean) kann nur true (wahr) oder false (falsch) sein. Ein Vergleich wie alter >= 16 liefert so einen Wert. Mehrere Wahrheitswerte verknüpft man mit && (und), || (oder) und ! (nicht).
boolean mit sprechendem Namen. Erst am Ende verknüpft man sie. So bleibt jede Zeile kurz und einzeln prüfbar.- Teil a): einlesen, jede Regel als Wahrheitswert, verknüpfen, ausgeben.
- Teil b): Testfälle so wählen, dass jede Regel einmal entscheidet.