athena.gif (7242 Byte)

 PÜ 3: Alternative Strukturen
    
 PÜ 3.1. Übungen zur einseitigen Alternative
        PÜ 3.1.1. Programm zur Rabattberechnung
        PÜ 3.1.2. Berechnung und Auswertung des Kraftstoffverbrauches (I)
 PÜ 3.2. Übungen zu zweiseitigen Alternativen und Verbundanweisungen
        PÜ3.2.1. Quadratwurzel mit Prüfung auf negativen Eingabewert
        PÜ3.2.2. Kraftstoffverbrauch Variante II

  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) rabatt1.jpg (22288 Byte)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

Seitenanfang

  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:
  1. Falls der Verbrauch im normalen Bereich liegt, also 4 l/100km <= verbrauch <= 8 l/100km soll die Ausschrift erfolgen: "normaler Verbrauch".
  2. 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.

benzin1.jpg (22058 Byte)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.