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>