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'''
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>