Gymnasium Uebung2

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
= Der Typ Boolean =
== Einfache Ausdrücke ==
Ein wichtiges Werkzeug von Programmiersprachen sind Wahrheitswerte.

<eval>
40>100
</eval>

<eval>
100>40
</eval>

<eval>
int x = 30;
x==30;
</eval>

<eval>
boolean test=(30==30);
test
</eval>

'''Übung'''
Experimentiere ein bisschen mit diesen logischen Ausdrücken


'''Übung'''
Schreibe ein Programm was zwei Ganzzahlen auf Gleichheit prüft.
Nenne dein Programm '''istgleich'''

<code></code>

<check>return istgleich(12,12);</check>

== Komplexe Ausdrücke ==
Logisches UND
<eval>
30==40 && 20<30
</eval>

Logisches NICHT
<eval>
  !true
</eval>

Logisches ODER
'''Übung'''
Schreibe einen Ausdruck mit der oder Verknüpfung ('''||''')
<eval/>




'''Übung'''
Was ist die Lösung von: <math>4>3 \wedge 10 <= 100</math>
'''Tipp:''' Gebe in den Funktionen nur '''true''' oder '''false''' ein.

<code>boolean ergebniss1() { 
//return ...; 
}</code>
<check>return ergebniss1()==true;</check>


'''Übung'''
Was ist die Lösung von: <math>4 > 3 \vee 10==100</math>

<code>boolean ergebniss2() { 
//return ...; 
}
</code>
<check>return ergebniss2()==true;</check>


'''Übung'''
Was ist die Lösung von: <math>\neg(2==3)</math>

<code>boolean ergebniss3() { 
//return ...; 
}</code>
<check>return ergebniss3()==true;</check>


'''Übung'''
Implementiere die Funktion: x > 3<br/>
Nenne diese: '''ergebniss4'''
<code></code>
<check>return (ergebniss4(4)==true && ergebniss4(2)==false && ergebniss4(3.5)==true);</check>

'''Übung'''
Implementiere die Funktion: 4>x and x > 3<br/>
Nenne diese: '''ergebniss5'''
<code></code>
<check>return (ergebniss5(4)==false && ergebniss5(2)==false && ergebniss5(3.5)==true);</check>


'''Übung'''
Implementiere die Funktion: x*x = x<br/>
Nenne diese: '''ergebniss6'''
<code></code>
<check>return (ergebniss6(4)==false && ergebniss6(2)==false && ergebniss6(3.5)==false);</check>


= Konditionale bzw. bedingte Anweisungen =
<code>
  String hallo(int x) {
     if(x==2) {
        return "Cool, du hast eine 2 eingegeben!";
     } else {
        return "Ok, du hast keine 2 eingegeben, sondern: "+x;
     }
}
hallo(2);
</code>
<eval>
  hallo(2);
</eval>

'''Übung'''
Gehe kurz diesen Quelltext durch, versuch ihn zu verstehen und bei Fragen meld dich!

'''Übung'''
In der Vorlesung haben als Beispiel das schöne Wetter und Eltern nicht zu Hause erarbeitet. Schreib das mal als Prozedur :-)

<code/>
<eval/>

'''Übung'''
Baue eine Funktion '''signum'''. Sie soll folgendes machen:<br/>
* -1, wenn die eingegebene Zahl kleiner 0 ist.
* 0, wenn die eingegebene Zahl gleich 0 ist.
* 1, wenn die eingegebene Zahl größer 0 ist.

Nenne die Funktion '''signum'''

<code/>
<eval/>
<check> return (signum(-10)==-1 && signum(1234)==1 && signum(0)==0);</check>


'''Übung'''
Baue ein Funktion '''abs'''. Sie soll den absoluten Betrag einer Zahl ausgeben. z.B. abs(-50) == 50

Nenne die Funktion '''abs'''.

<code/>
<eval/>
<check> return (abs(-10)==10 && abs(1234)==1234 && abs(0)==0);</check>


'''Übung'''
Schreibe ein kleines Rabatt Programm. Das Programm soll den Rabatt für eine gewisse Stückzahl berechnen. Das Programm nimmt also die Stückzahl als Paramters.
Der Rabatt berechnet sich wie folgt:<br/>
* 0<Stückzahl<1000 --> kein Rabatt<br/>
* 1000<Stückzahl<2000 --> 2 (€) Rabatt<br/>
* 2000<Stückzahl<5000 --> 5 (€) Rabatt<br/>
* Stückzahl > 5000 --> 10 (€) Rabatt<br/>
Nenne das Programm: '''rabatt'''

<code/>
<eval/>
<check> return (rabatt(457)==0 && rabatt(1340)==2 && rabatt(3466)==5 && rabatt(10845)==10);</check>


'''Übung'''
Baue dir ein Programm, was berechnet ob jmd. Über-, Normal- oder Untergewicht hat.<br/>
Nenne die Funktion '''bmi'''<br/>
Benutze als ersten Parameter das Gewicht, als zweiten die Größe<br/>
Gib "Übergewicht", "Normalgewicht" oder "Untergewicht" zurück. Deine Rückgabetyp ist also String.
<code>

</code>
<check>return (bmi(70, 1.75)).equals("Normalgewicht") && (bmi(200, 1.75)).equals("Übergewicht") && (bmi(50, 1.75)).equals("Untergewicht");</check>

== Zusammenfassung ==
=== Zuweisungsoperatoren ===
<center>
{| style="text-align:center;border:solid grey 1px" cellpadding=3 cellspacing=0
|- style="background:#FFE466;"
! Operator     !! Bezecihnung !! Bedeutung  	 
|- 
| <span style="color:red">==</span>    || Gleich   || a==b ergibt true, wenn a gleich b ist.
|-
| <span style="color:red">!=</span>   ||  Ungleich  || a!=b ergibt true, wenn a ungleich b ist.
|-
| <span style="color:red"><</span> 	  || Kleiner   || a < b ergibt true, wenn a kleiner b ist.
|-
| <span style="color:red"><=</span> 	  || Kleiner gleich   || a<=b ergibt true, wenn a kleiner gleich b ist.
|-
| <span style="color:red">></span>   || Größer	  || a>b ergibt true, wenn a größer b ist.
|-
| <span style="color:red">>=</span>  || Größer gleich 	  || a>=b ergibt true, wenn a größer gleich b ist.
|}
</center>


=== Logische Operatoren ===
<center>
{| style="text-align:center;border:solid grey 1px" cellpadding=3 cellspacing=0
|- style="background:#FFE466;"
! Operator     !! Bezecihnung !! Bedeutung  	 
|- 
| <span style="color:red">!</span>    || Logisches NICHT    || !a ergibt false, wenn a wahr ist und true, wenn a falsch ist
|-
| <span style="color:red">&&</span>   ||  UND (Short-Curcuit)  || a && b ergibt wahr wenn a und b wahr sind, sonst falsch. Ist a bereits falsch wird falsch zurückgegeben und b nicht mehr ausgewertet.
|-
| <span style="color:red"><pre>||</pre></span> 	  || ODER (Short-Curcuit)   || ergibt falsch wenn a und b falsch sind, sonst wahr. Ist a bereits wahr wird b nicht emhr ausgewertet.
|-
| <span style="color:red">&</span> 	  || UND   || ergibt wahr wenn a und b wahr sind, sonst falsch. Überprüft beide Operanden.
|-
| <span style="color:red"><pre>|</pre></span>   || ODER	  || ergibt falsch wenn a und b falsch sind, sonst wahr. Überprüft beide Operanden.
|-
| <span style="color:red">^</span>  || Exklusiv-ODER 	  || a ^ b ergibt wahr wenn a und b verschiedene Wahrheitswerte haben.
|}
</center>