|
PÜ 3: Alternative Strukturen
PÜ 3.1. Übungen zur einseitigen Alternative
Grundstruktur:
IF
Bedingung THEN
Anweisung; |
Die Anweisung hinter THEN wird nur dann ausgeführt, wenn die
vorgegebene Bedingung erfüllt ist.
PÜ 3.1.1. Programm zur Rabattberechnung
a) Gegeben sind die
Real-Variablen anzahl und einzelpreis;
Zu berechnen sind grundpreis, rabattsatz, rabatt, und endpreis, wenn folgendes gilt: Grundsätzlich wird kein Rabatt gewährt.
Falls die Anzahl gleich oder größer 100 beträgt, wird ein Rabattsatz von 5% angerechnet. Notieren Sie die nötigen Programmzeilen! b) Entwerfen Sie ein Formular gemäß der nebenstehenden Abbildung und fügen Sie den unter 1. erarbeiteten Programmtext zur Ereignisbehandlung von Button1Click (Kasse) ein!
Beachten Sie, dass als Eingabevariablen nur anzahl (über Edit1.Text) und einzelpreis (über Edit2.Text) einzulesen sind.
Alle übrigen Textfelder dienen nur der Ausgabe! Testen Sie mehrfach unter Berücksichtigung der bedingten Rabattvergabe! Sichern Sie das Projekt als rabatt1.dpr! c) Das Programm ist unter Verwendung einseitiger Alternativen mit folgenden gestaffelten Rabattvergaben zu erweitern:
Anzahl |
Rabattsatz |
0...
99 |
0% |
100...
499 |
5% |
500...
999 |
10% |
1000...1499 |
15% |
1500...1999 |
20% |
ab
2000 |
30% |
Sichern Sie nun das erweiterte Projekt unter gleichem
Namen !
PÜ 3.1.2. Berechnung und Auswertung des Kraftstoffverbrauches
Es ist ein Programm zu
entwickeln, welches nach Eingabe der gefahrenen Kilometer
und verbrauchten Liter Kraftstoff den Kraftstoffverbrauch
pro 100 km ermittelt und ausgibt.
Durch bedingte Anweisungen soll das Programm wie folgt
reagieren:
- falls der
Verbrauch > 8 l/100km, dann Ausgabe: ‘Verbrauch ist
zu hoch!’
- falls der Verbrauch < 4 l/100km, dann
Ausgabe: ‘Verbrauch ist unrealistisch!’
a) Entwerfen Sie unter Delphi ein
geeignetes Formular!
b) Programmieren Sie eine
ButtonClick-Ereignisbehandlung, welche obiger Aufgabe
entspricht!
c) Test / Korrektur / Sicherung
PÜ 3.2.
Übungen zu zweiseitigen Alternativen und Verbundanweisungen
Grundstruktur der zweiseitigen Alternative:
IF
Bedingung THEN
Anweisung_1 ELSE
Anweisung_2; |
Die Anweisung hinter THEN wird ausgeführt, wenn die
vorgegebene Bedingung erfüllt ist, andernfalls wird die
Anweisung hinter ELSE ausgeführt.
Grundstruktur der Verbundanweisung:
IF
Bedingung THEN
BEGIN
Anweisung_1;
Anweisung_2;
...
Anweisung_n
END
ELSE
...;
|
Soll in einer syntaktischen Struktur eine Folge von n
Anweisungen genau so behandelt werden, als würde es
sich nur um eine einzige Anweisung handeln, so verwende
man begin
und end
im Sinne von mathematischen Klammern.
Zur Bewahrung der Übersicht in zunehmend komplexer
werdenden Quelltexten ist es dringend anzuraten, sich
unterordnende bzw. eingeschachtelte Teilstrukturen nach
rechts einzurücken.
Im Beispiel ordnet sich das "BEGIN" dem
"IF-THEN" unter und die
"Anweisung_1" wiederum dem "BEGIN"
usw.
|
PÜ 3.2.1. Quadratwurzel mit Prüfung auf negativen Eingabewert
Aufgabe: |
Ein Delphi-Formular enthalte die
Komponenten Edit1, Edit2 und Button1.
Das Ereignis "Button1Click" soll folgende
Reaktion hervorrufen:
Ist die Zahl in
Edit1 größer oder gleich Null, so wird deren Wurzel
berechnet und anschließend in Edit2 als Text
ausgegeben. Andernfalls soll in Edit2 eine Fehlermeldung
ausgegeben werden.
|
Formular: |
|
PÜ 3.2.2.Kraftstoffverbrauch Variante II
Das Programm zur Berechnung und
Auswertung des Kraftstoffverbrauches ist folgendermaßen
zu erweitern:
- Falls der Verbrauch im normalen Bereich liegt, also 4
l/100km <= verbrauch <= 8 l/100km
soll die Ausschrift erfolgen: "normaler
Verbrauch".
- Zur optischen Unterstützung der Ausgabe soll das
entsprechende Edit-Feld bei normalen Verbrauch grün,
bei zu hohem Verbrauch rot und bei unrealistisch
geringem Verbrauch gelb eingefärbt werden.
Unter
Verwendung der zweiseitigen Alternative und der
Verbundanweisung entwerfe man zunächst ein Struktogramm
und erweitere danach das bereits vorhandenen
"Benzinprogramm".
Ideen zur Erweiterung:
Die vorliegenden Gegebenheiten entsprechen einem
"Allerweltsauto" mit 1300cm³ - Benzinmotor und
60 PS, decken also nur eine stark begrenzte Problemklasse
ab.
- Ermitteln Sie Verbrauchsnormative für Pkws mit stärkerer
und schwächerer Motorisierung, getrennt nach Benzin-
und Dieselmotor.
- Modifizieren Sie danach die Sollwerte für Minimal-
und Maximalverbrauch (bisher konstant 4 bzw. 8
l/100km) als Variablen mit entsprechenden prozentualen
Ab- oder Zuschlägen für Motorart, Leistung und
Hubraum.
- Nach Erweiterung der Oberfläche um die zusätzlichen
Eingabekomponenten ist der Algorithmus entsprechend zu
verfeinern und in das Programm zu implementieren.
|
|
|
|