Leseprobe - HERDT

Werbung
Programmierung
Ralph Steyer
Grundlagen
3. Ausgabe, Juli 2015
ISBN: 978-3-86249-429-3
PG
7
Programmierung - Grundlagen
7.2
Bedingungen und Kontrollstrukturen
Was sind Bedingungen?
Durch eine Bedingung (engl. condition) wird der Ablauf eines Programms beeinflusst. Es wird ein logischer
Ausdruck ausgewertet. Für die Formulierung solcher Bedingungen stehen die Vergleichsoperatoren und die
logischen Operatoren zur Verfügung. Eine Bedingung kann entweder mit "Ja" beantwortet werden (true bzw.
wahr) oder mit "Nein" (false bzw. falsch). Vom Ergebnis der Bedingung ist abhängig, welche Anweisungen des
Programms danach abgearbeitet werden und welche nicht.
Beispiele
Es wird mithilfe des Modulo-Operators geprüft,
ob eine Zahl gerade ist:
(Zahl % 2) == 0
Es wird geprüft, ob eine Zahl zwischen 100 und
500 liegt (ohne die Werte 100 und 500):
(Zahl > 100) && (Zahl < 500)
Es wird geprüft, ob ein Zeichen eine Ziffer ist:
(Zeichen >= '0')
Es wird geprüft, ob der Mitarbeiter "Meier" seine 30 Urlaubstage bereits angebrochen hat:
(Mitarbeiter == "Meier") && (Urlaubstage
< 30)
&& (Zeichen <='9')
Kontrollstrukturen im Überblick
Sollen Programmteile mehrmals oder gar nicht ausgeführt werden, werden Sprachelemente benötigt, mit denen
der Programmablauf gesteuert werden kann, sogenannte Kontrollstrukturen. Die Entscheidung, nach welchen
Kriterien der Ablauf gesteuert wird, wird in Bedingungen formuliert.
Es werden zwei Gruppen von Kontrollstrukturen unterschieden:
Verzweigungen
Es werden alternative Programmteile angeboten, in die – abhängig von einer
Bedingung – beim Programmablauf verzweigt wird.
Schleifen (Wiederholung)
Ein Programmteil kann – abhängig von einer Bedingung – mehrmals durchlaufen werden (Schleife = engl.: loop) oder gar nicht.
7.3
Grundlagen zu Verzweigungen
Eine Verzweigung kann eine der folgenden Ausprägungen besitzen:
Bedingte Anweisung
("Einseitige" Verzweigung)
76
Je nachdem, ob eine Bedingung erfüllt ist oder nicht, wird ein Programmteil
ausgeführt oder übersprungen.
Verzweigung
In Abhängigkeit vom Ergebnis einer Bedingung wird ein Programmteil oder
ein anderer Programmteil ausgeführt.
Geschachtelte Verzweigung
Innerhalb der alternativen Programmteile einer bedingten Anweisung oder
einer Verzweigung wird eine weitere Verzweigung integriert. Mit einer
solchen geschachtelten Verzweigung lassen sich mehrere Alternativen
bereitstellen.
© HERDT-Verlag
7
Kontrollstrukturen
Mehrfache Verzweigung
7.4
Es wird ein Ausdruck ausgewertet. Je nachdem, welchem Wert der Ausdruck
entspricht, verzweigt das Programm fallweise (case) in einen entsprechenden
Programmteil. Eine solche Kontrollstruktur kann somit ebenfalls mehrere
Alternativen bereitstellen.
Bedingte Anweisung
Die bedingte Anweisung ist dadurch gekennzeichnet, dass nach einer Bedingungsabfrage durch einen Ausdruck eine Anweisung oder ein Anweisungsblock (mehrere Anweisungen) ausgeführt wird oder nicht.
Wenn die Bedingung mit "Ja" (true) beantwortet wird, dann wird die Anweisung (statement) ausgeführt. Wird die Bedingung mit "Nein" beantwortet
(false), erfolgt keine Aktion des Programms. In beiden Fällen wird nach dem
Ende der Alternative mit der nächsten Anweisung fortgesetzt. Die bedingte
Anweisung entspricht in den meisten Programmiersprachen einer ifAnweisung mit alternativem Zweig.
PAP
Struktogramm
Syntax zur bedingten Anweisung in Java
D Eine bedingte Anweisung wird mit dem Schlüsselwort if eingeleitet.
D Nach dem Schlüsselwort if wird in Klammern ( ) als Bedingung ein logischer
if (condition)
statement 
Ausdruck angegeben, dessen Auswertung true oder false sein muss.
D Ist die Bedingung erfüllt (true), wird die folgende Anweisung  bzw. der folgende in geschweiften Klammern eingeschlossene Anweisungsblock  ausgeführt.
D Die Anweisungen innerhalb des Blocks werden eingerückt, um die Programmstruktur besser zu verdeutlichen.
Beispiel: Discount.java
Wenn (if) ein Kunde einen Auftrag höher als 1000,- EUR
erteilt, bekommt er 3 % Rabatt und der neue Preis wird
berechnet. Bei Aufträgen bis 1000,- EUR wird kein Rabatt
gewährt. Die Überprüfung der Bedingung kann nur das
Ergebnis "ja" bzw. "nein" ergeben, in Java entsprechend true
oder false.
7.5
if (condition)
{
statement 
...
}
...
double price = 1497.56;
if ( price > 1000)
price = price * (1 - 0.03);
...
Java
Verzweigung
Bei einer sogenannten Verzweigung (auch Alternative genannt) wird einer
von zwei möglichen Anweisungsblöcken in Abhängigkeit von einer Bedingung
ausgeführt.
Wenn die Bedingung erfüllt ist, dann wird Anweisungsblock A (statement1) ausgeführt, sonst wird Anweisungsblock B (statement2) ausgeführt. Die Verzweigung entspricht in den meisten Programmiersprachen
der if-Anweisung mit else-Zweig.
© HERDT-Verlag
PAP
77
7
Kontrollstrukturen
Was bedeutet …?
mehrfache Verzweigung
(Fallauswahl)
In Abhängigkeit von einem Variablenwert wird einer von mehreren möglichen
Auswahlblöcken einmal ausgeführt.
FALLAUSWAHL...FALL A...FALL B... SONST FALL...
in Java: switch (...) {case a: ... break; case b: ...
break; ...
default ...}
zählergesteuerte Schleife
Es ist im Voraus bekannt oder berechenbar, wie oft ein Anweisungsblock
wiederholt werden soll. Eine Zählvariable wird automatisch erhöht (oder
vermindert).
FÜR...BIS...(MIT DER SCHRITTWEITE...)
in Java: for (...;...;...) {...}
kopfgesteuerte Schleife
Die Anweisungen in der Schleife werden in Abhängigkeit von einer oder mehreren
Bedingungen 0...n mal ausgeführt. Die Bedingung wird am Anfang der Schleife
geprüft.
SOLANGE... DURCHLAUFE SCHLEIFE
in Java: while (...) {...}
fußgesteuerte Schleife
Die Anweisungen in der Schleife werden in Abhängigkeit von einer oder mehreren
Bedingungen 1...n mal abgearbeitet. Die Bedingungsprüfung findet am Ende der
Schleife statt.
DURCHLAUFE SCHLEIFE...SOLANGE...
in Java: do {...} while (...);
7.13 Übungen
Übung 1: Verzweigung
Übungsdatei: --
Ergebnisdatei: uebung07.pdf, Maximum.java
1.
Erstellen Sie ein Struktogramm, um die Zahlen 543 und 246 zu vergleichen und die größere von beiden
auszugeben.
2.
Setzen Sie das Struktogramm in Java-Code um.
Übung 2: Geschachtelte Verzweigung
Übungsdatei: -1.
Ergebnisdatei: uebung07.pdf, Letter.java
Für eine Nachricht soll von einem Programm automatisch die Anrede formuliert werden. Folgende Variablen
existieren:
D name:
Name
D sex:
Geschlecht
D currentHour: Uhrzeit (Stundenangabe)
Die Anrede soll je nach Tageszeit mit "Guten Morgen" (0 - 9 Uhr), "Guten Tag" (10 - 17), "Guten Abend" (18 0 Uhr) beginnen und anschließend mit "Herr xxx" bzw. "Frau xxx" fortgesetzt werden. Für xxx soll der
entsprechende Name eingesetzt werden.
Schreiben Sie ein entsprechendes Struktogramm.
© HERDT-Verlag
89
7
Programmierung - Grundlagen
2.
Erstellen Sie aus dem Struktogramm ein Java-Programm. Für Zeichenketten stellt Java den Datentyp String
zur Verfügung.
Übung 3: Kopfgesteuerte bedingte Schleife
Übungsdatei: DivideBy5.java
1.
Ergebnisdateien: uebung07.pdf, DivideBy5.java
Schreiben Sie ein Programm, das zu einer eingelesenen Integer-Zahl ermittelt, wie oft mit dieser Zahl eine
Division durch 5 durchgeführt werden kann. Die ermittelte Anzahl wird ausgegeben. Initialisieren Sie die
einzulesende Integer-Zahl wie folgt:
int number = readInt("Zahl: ");
Dazu können Sie die Funktion readInt()der Übungsdatei DivideBy5.java verwenden, die eine Zahl über die
Standardeingabe einliest.
2.
Warum ist die Verwendung einer fußgesteuerten Schleife in Aufgabe 1 ungünstig?
3.
Für folgendes Problem ist ein Algorithmus aufzustellen. Eine Firma hat mehrere Filialen, und in jeder Filiale
werden Waren aus verschiedenen Warengruppen verkauft. Die Firma verwaltet die Daten in einer
Datenbank. Ein Angestellter der Firma gibt die Daten (Filialnummer, Warengruppe, Stueck und
Verkaufsdatum) ein, die dann in der Datenbank gespeichert werden. Während der Eingabe soll das
Programm ermitteln, wie viele Produkte der Warengruppe 7 in der Filiale 9 verkauft wurden.
Übung 4: Verzweigungen und Schleifen
Übungsdatei: -1.
90
Ergebnisdateien: Days.java
Erstellen Sie ein Programm, das mit dem gegebenen letzten Tag des Vorjahres alle Sonntage ausgibt, die auf
den ersten Tag eines Monats fallen. Verwenden Sie Zahlen von 1 (Montag) bis 7 (Sonntag) für die Tage und
1 (Januar) bis 12 (Dezember) für die Monate.
© HERDT-Verlag
Herunterladen