HSZG Vorkurs Informatik WS 2014/Wahrheitswerte und Bedingungen/Teil 2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
Mit Hilfe von Wahrheitswerten lassen sich Bedingungen an die Eingabedaten formulieren, unter denen ein Programm bestimmte Anweisungen ausführen soll. Dafür gibt es in Java wieder ein fest vorgegebenes Schema:
if(<Bedingung>){
<Anweisung>;
...
<Anweisung>;
}
Das Schema liest sich wie folgt: "Wenn die Bedingung erfüllt ist, führe diese Anweisungen aus, ansonsten führe diese Anweisungen nicht aus!" Der ''Block'' von Anweisungen, der ausgeführt werden soll, wird stets von geschweiften Klammern umschlossen. Die Bedingung ist ein logischer Ausdruck, der ''true'' oder ''false'' ergibt. Er wird mittels logischer Operatoren und/oder Vergleichsoperatoren formuliert.
Beispiel:
<run id="5419d5cf3aaf3">
int x=6;
int y=6;
if(x==y){
System.out.println("Der Fall x==y ist eingetreten!");
}
</run>
Als Bedingung kann auch eine Variable vom Typ ''boolean'' angegeben werden. In diesem Fall wird der Block von Anweisungen genau dann ausgeführt, wenn der Wert der Variable ''true'' ist.
Beispiel:
<run id="5419d5cf3ab66">
x=6;
y=7;
boolean test = x==y;
if(test){
System.out.println("Der Fall x==y ist eingetreten!");
}
</run>
Sie sehen, dass keine Ausgabe angezeigt wird, da die Variable test ''zum Zeitpunkt der Überprüfung der Bedingung'' den Wert false besitzt.
Zusätzlich kann in Java auch ein Block von Anweisungen angegeben werden, der ausgeführt wird, wenn die Bedingung ''nicht'' erfüllt ist. Das alternative Schema lautet daher:
if(<Bedingung>){
<Anweisung>;
...
<Anweisung>;
}else{
<Anweisung>;
...
<Anweisung>;
}
Das liest sich so: "Wenn die Bedingung erfüllt ist, führe den ersten Block von Anweisungen aus, ansonsten führe den zweiten Block von Anweisungen aus!". Ein Block von Anweisungen wird immer von geschweiften Klammern eingeschlossen.
Beispiel:
<run id="5419d5cf3ab66">
x=6;
y=7;
boolean test = x==y;
if(test){
System.out.println("Der Fall x==y ist eingetreten!");
}else{
System.out.println("Der Fall x==y ist nicht eingetreten!");
}
</run>
Mit Bedingungen können unsere Methoden im Folgenden wesentlich intelligenter arbeiten als bisher.
'''Aufgabe 1'''
Erweitern Sie Ihre Methode zur Berechnung des Kreisumfangs (z.B. aus Arbeitsblatt [[Teil_3]]) so, dass die Berechnung nur ausgeführt wird, wenn der als Parameter übergebene Radius größer oder gleich 0 ist. Andernfalls soll die Methode den Wert -1 zurückgeben (sozusagen als Fehlercode).
<code id="5419d85ad6ecb"></code>
<run id="5419d85ad6f93"></run>
'''Aufgabe 2'''
Gegeben sei folgende Funktion:
$$f(x) = \begin{cases}\frac{12}{3+x^2} & x\leq 3\\ e^x & x>3\end{cases}$$
Die eulersche Zahl e erhalten wir über ''Math.E''
Setzen Sie die Funktion als Java-Methode um!
<code id="5419dae687edf"></code>
<run id="5419dae688022"></run>
'''Aufgabe 3'''
Gegeben sei folgende Funktion:
$$f(x) = \begin{cases}1-cos\frac{x}{2} & 0\leq x\leq 3\pi\\ \frac{16}{(x-16)^2} & x>3\pi\end{cases}$$
Setzen Sie die Funktion als Java-Methode um!
<code id="5419dae687f72"></code>
<run id="5419dae68813b"></run>
'''Aufgabe 4'''
Kopieren Sie Ihre Methode zur Berechnung des Body-Mass-Index (BMI) in die folgende Codebox!
<code id="5419dd9683774"></code>
Der BMI als Zahl ist für den Nutzer nicht sehr vielsagend. Daher werden 8 Kategorien gebildet:
[[Datei:BMI.png|350px]]
Entwickeln Sie eine Ausgabe-Methode ohne Rückgabewert, die Gewicht und Größe als Parameter entgegennimmt. In der Methode soll unter Anwendung der oberen Methode der BMI-Wert ausgerechnet werden. Überprüfen Sie mit Hilfe von Bedingungen, welcher Kategorie der BMI-Wert zugeordnet werden muss! Die Kategorie, auf die der BMI-Wert zutrifft, soll dem Anwender auf der Konsole angezeigt werden.
<code id="5419dd9683811">
</code>
<run id="5419dd96838d0"></run>
'''Aufgabe 5'''
Quelle: [www.home.hs-karlsruhe.de/~pach0003/informatik_1/aufgaben/datentypen.html#metropole| Christian Pape]
Gegeben seien drei Variablen, die Auskunft über Eigenschaften einer bestimmten Stadt geben:
boolean istHaupstadt;
int anzahlEinwohner;
double steuernProEinwohner;
Dabei gilt folgendes:
istHauptstadt ist genau dann true, wenn die Stadt eine Hauptstadt ist.
anzahlEinwohner gibt die Anzahl der Einwohner der Stadt an.
steuernProEinwohner ist die durchschnittliche monatliche Steuerabgabe pro Einwohner und Monat.
Wir definieren eine Metropole als eine Stadt, die Hauptstadt ist mit mehr als 100 000 Einwohner oder die mehr als 200 000 Einwohner hat und im Durchschnitt mindestens 720 000 000 Steuereinnahmen hat.
Entwickeln Sie eine Methode ''ist_metropole'', die genau dann ''true'' zurückgibt, wenn die Stadt eine Metropole ist!
<code id="541a021bef564">boolean ist_metropole(boolean istHauptstadt, int anzahlEinwohner, double steuernProEinwohner){
}</code>
<run id="541a021bef619"></run>