Übungsblatt zu logischen Ausdrücken sowie einzweigigen und geschachtelten
Fallunterscheidungen
Aufgabe 1: Internet Delikatessen
Ein Delikatessengeschäft benötigt ein Programm zur Rechnungserstellung.
Das Programm erfragt den Preis in Cent des gewünschten Artikels und ob
der Artikel per Express verschickt werden soll. Für Artikel unter €10
betragen die Versandkosten €2.00. Kostet der Artikel €10 oder mehr
betragen sie €3.00. Der Expresszuschlag beträgt €5.00.
Beispielablauf:
Aufgabe 2: Kontogebühr
Eine Bank verfährt nach der folgenden Regel: Wenn ein Kunde auf seinem
Girokonto einen monatlichen Geldeingang von mehr als €2000 oder auf
seinem Sparkonto ein Guthaben von mehr als €15000 hat, wird keine
Kontogebühr erhoben. Andernfalls wird eine Gebühr von €4,50 pro Monat
erhoben. Schreiben Sie ein Programm, das nach dem Geldeingang und
Guthaben fragt und dann ausgibt, ob eine Gebühr erhoben wird oder nicht.
Beispielablauf 1:
Willkommen bei der Geldbank.
Bitte geben Sie Ihren Geldeingang und Ihr Guthaben ein.
Geldeingang: 2050
Guthaben: 1000
Glückwunsch! Wir erheben keine Kontogebühren!
Beispielablauf 2:
Willkommen bei der Geldbank.
Bitte geben Sie Ihren Geldeingang und Ihr Guthaben ein.
Geldeingang: 1950
Guthaben: 5000
Wir müssen bei Ihnen leider Kontogebühren erheben.
Aufgabe 3: Reifendruck
Die beiden vorderen Reifen eines Autos sollten beide denselben
Reifendruck haben. Ebenso sollten die beiden hinteren Reifen denselben
Reifendruck haben, aber nicht unbedingt denselben wie die Vorderreifen.
Schreiben Sie ein Programm, das den Reifendruck der vier Reifen einliest
und dann eine Meldung ausgibt, ob der Reifendruck in Ordnung ist oder
nicht.
Beispielablauf 1:
Reifendruck rechts vorne: 38
Reifendruck links vorne: 38
Reifendruck rechts hinten: 42
Reifendruck links hinten: 42
Der Reifendruck ist in Ordnung
Beispielablauf 2:
Reifendruck rechts vorne: 38
Reifendruck links vorne: 40
Reifendruck rechts hinten: 44
Reifendruck links hinten: 44
Der Reifendruck ist NICHT in Ordnung
Zum Vergleich nochmal die Ausgabe unter Processing:
Aufgabe 4: Reifendruck zum Zweiten
Es genügt nicht, dass der Reifendruck der beiden Vorder- und
Hinterräder derselbe ist. Die Drücke der beiden Reifen müssen sich
ebenfalls jeweils innerhalb eines bestimmten Bereichs befinden.
Erweitern Sie das Programm aus der vorigen Aufgabe in der Weise, dass
zusätzlich überprüft wird, ob der Druck jedes Reifens sich zwischen 35
und 45 befindet. Befindet sich ein Reifen außerhalb dieses Bereichs,
wird sofort eine Warnmeldung ausgegeben. Danach fährt das Programm mit
dem Einlesen und Verarbeiten der Werte fort.
Kommt es zu einer Warnmeldung auf Grund des nicht eingehaltenen
Druckbereichs, dann gibt das Programm am Ende zusätzlich eine
letzte Warnmeldung aus. Diese Warnmeldung wird auch ausgegeben,
wenn sich die Reifendrücke der beiden Vorderreifen oder der beiden
Hinterreifen voneinander unterscheiden.
Deklarieren Sie für die Umsetzung dieser unterschiedlichen Situationen eine boolesche Variable goodPressure.
Initialisieren Sie die Variable goodPressure mit true
und setzen Sie den Wert auf false, wenn sich ein
Reifen außerhalb des gültigen Bereichs befindet.
Beispielablauf 1:
Reifendruck rechts vorne: 32
Warnung: Der Reifendruck ist außerhalb des erlaubten Bereichs
Reifendruck links vorne: 32
Warnung: Der Reifendruck ist außerhalb des erlaubten Bereichs
Reifendruck rechts hinten: 42
Reifendruck links hinten: 42
Der Reifendruck ist NICHT in Ordnung!
Beispielablauf 2:
Reifendruck rechts vorne: 38
Reifendruck links vorne: 40
Reifendruck rechts hinten: 44
Reifendruck links hinten: 44
Der Reifendruck ist NICHT in Ordnung!
Beispielablauf 3:
Reifendruck rechts vorne: 38
Reifendruck links vorne: 38
Reifendruck rechts hinten: 40
Reifendruck links hinten: 40
Der Reifendruck ist in Ordnung!
Aufgabe 5: Reifendruck zum Dritten
Reifen müssen nicht genau denselben Druck haben. Erweitern Sie Ihr
Programm aus der vorigen Aufgabe dahingehend, dass sich zusätzlich die Drücke der beiden Vorder- und
Hinterräder in einem Toleranzbereich von 3 psi bewegen dürfen.
Beispielablauf 1:
Reifendruck rechts vorne: 35
Reifendruck links vorne: 37
Reifendruck rechts hinten: 41
Reifendruck links hinten: 41
Der Reifendruck ist in Ordnung!
Beispielablauf 2:
Reifendruck rechts vorne: 35
Reifendruck links vorne: 37
Reifendruck rechts hinten: 40
Reifendruck links hinten: 45
Der Reifendruck ist NICHT in Ordnung!
Aufgabe 6: Mikrowellenherd
Ein Hersteller von Mikrowellen empfiehlt, bei der Erwärmung von
Lebensmitteln 50% zur Erwärmungszeit zu addieren, wenn die Mikrowelle
mit zwei Produkten gefüllt wird. Werden drei Produkte gleichzeitig
erwärmt, so soll die Erwärmungszeit sogar verdoppelt werden. Mehr als
drei Produkte gleichzeitig zu erwärmen wird nicht empfohlen.
Schreiben Sie ein Programm, dass nach der Anzahl zu erwärmender
Produkte und der Erwärmungszeit für ein Produkt fragt und daraus die
empfohlene Erwärmungszeit für alle Produkte berechnet.
Beispielablauf 1:
Bitte geben Sie die Erwärmungszeit des Produkts in Sekunden ein: 180
Bitte geben Sie die Anzahl der Produkte ein: 2
Die Erwärmungszeit beträgt: 270s
Beispielablauf 2:
Bitte geben Sie die Erwärmungszeit des Produkts in Sekunden ein: 180
Bitte geben Sie die Anzahl der Produkte ein: 3
Die Erwärmungszeit beträgt: 360s
Beispielablauf 3:
Bitte geben Sie die Erwärmungszeit des Produkts in Sekunden ein: 180
Bitte geben Sie die Anzahl der Produkte ein: 4
Fehler: Mehr als drei Produkte
Beispielablauf 4:
Bitte geben Sie die Erwärmungszeit des Produkts in Sekunden ein: 180
Bitte geben Sie die Anzahl der Produkt ein: -2
Falsche Produktanzahl
Entsprechend für Anzahl Produkte gleich 0 oder Erwärmungszeit <= 0.
Aufgabe 7: Torten essen
Beim "State Fair Pie Eating Contest" müssen die Teilnehmer in der
Schwergewichtsklasse zwischen 235 und 265 Pfund wiegen. Schreiben Sie
ein Programm, das nach dem Gewicht des Teilnehmers fragt und dann
ausgibt, ob er oder sie zum Wettbewerb in der Schwergewichtsklasse
zugelassen ist oder nicht.
Beispielablauf 1:
Bitte geben Sie ihr Gewicht in Pfund ein: 230
Sie sind leider zu leicht für die Schwergewichtsklasse
Beispielablauf 2:
Bitte geben Sie ihr Gewicht in Pfund ein: 250
Sie sind für die Schwergewichtsklasse zugelassen
Beispielablauf 3:
Bitte geben Sie ihr Gewicht in Pfund ein: 300
Sie sind leider zu schwer für die Schwergewichtsklasse
Aufgabe 8: Entscheidungsbaum
Implementieren Sie den in der Vorlesung erläuterten Entscheidungsbaum
für das Sortieren dreier Zahlen. Das Programm soll die drei Zahlenwerte
vom Benutzer erfragen und die sortierten Zahlenwerte in aufsteigender
Reihenfolge ausgeben. (Dieses Programm werden wir in einer der folgenden
Übungen wieder benötigen!)
Beispielablauf:
Erste Zahl: 100
Zweite Zahl: -6
Dritte Zahl: 14
Ergebnis: -6, 14, 100
Aufgabe 9: switch-Anweisung
Die Wochentage Montag bis Sonntag seien durch die Zahlenwerte 1 bis 7 codiert.
Ein Sekretariat hat Montag, Samstag und Sonntag geschlossen.
Von Dienstag bis Donnerstag ist es von 09:00-15:30 geöffnet.
Freitags hingegen nur von 09:00-13:00.
Schreiben Sie ein Programm, welches zunächst den Wochentag einliest und dann die dazu
passenden Öffnungszeiten des Sekretariats ausgibt.
Wird ein Zahlenwert außerhalb des Bereichs 1 bis 7 eingegeben, so erfolgt eine Fehlermeldung des Programms.
Beispielablauf 1:
Tag: 1
Geschlossen
Beispielablauf 2:
Tag: 10
Kein zulaessiger Tag
Beispielablauf 3:
Tag: 3
09:00-15:30