Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

10:bedingte_anweisung [2018/06/03 22:53] (aktuell)
Zeile 1: Zeile 1:
 +====== Die bedingte Anweisung ======
 +Vielleicht hast du der Programmierung der Mitternachtsformel (Sequenz, Aufgabe 2) bemerkt, dass es beim Auruf der Methode ein Problem gibt, wenn die quadratische Gleichung gar keine Lösung besitzt, wie z.B.x<​sup>​2</​sup>​+4=0. Es wäre doch sinnvoll, wenn unser Programm in diesem Fall eine Ausgabe auf der Konsole erzeugt.\\
 +Dazu müsste man also uberprüfen,​ ob die Diskriminante einen negativen Wert annimmt. Alle Programmiersprachen bieten hier die Möglichkeit,​ Anweisungen nur auszuführen,​ wenn eine Bedingung erfüllt ist. Ein Beispiel die bedingte Anweisung in Java:
 +<​code>​
 +public double berechneLoesung(double a, double b, double c){
 +   ​double diskriminante,​ wurzel, zaehler, ergebnis;
 +   
 +   ​diskriminante = b*b–4*a*c;​
 +   ​if(diskrimante>​=0){
 +      x1=(-b+Math.sqrt(diskriminante))/​(2*a);​
 +      x2=(-b-Math.sqrt(diskriminante))/​(2*a);​
 +      System.out.println("​x1="​+x1+"​ und x2="​+x2); ​
 +   ​}else{
 +      System.out.println("​Es existiert keine Lösung."​);​
 +   }
 +}
 +</​code>​
 +Das zugehörige Struktogramm:​\\
 +{{:​10:​bedanweisung_struktogramm_mitternacht.png?​nolink|}}
  
 +Mit Hilfe der Kontrollstruktur //if- .... else// lässt sich also eine Fallunterscheidung durchführen. Dabei wird abhängig vom Wahrheitsgehalt der Aussage die eine oder die andere Sequenz ausgeführt.
 +<​note>​Häufig werden Bedingungen an Variablen, die Zahlen beinhalten, überprüft. Die Tabelle zeigt dir die wichtigsten Bedingungen und ihre Formulierung in Java.
 +^ Java ^ Bedeutung ^
 +| a==b | wahr, wenn die beiden Variablen den gleichen Inhalt besitzen |
 +| a<b | wahr, wenn a einen kleineren Wert beinhaltet als b |
 +| a>=b | wahr, wenn a größer oder gleich b ist |
 +</​note>​
 +<note important>​Um die Gleichheit von zwei Variablen zu überprüfen,​ werden in Java zwei aufeinander folgende Gleichheitszeichen verwendet. Ein einzelnes Gleichheitszeichen bewirkt eine Wertzuweisung! Bei der Programmierung ist dies ein häufiger Fehler.</​note>​
 +
 +===== Aufgabe 1 Maximum von zwei ganzen Zahlen =====
 +Schreibe eine Methode, die zwei ganze Zahlen als Parameter erhält und die größere der beiden Zahlen zurückgibt. Zeichne das zugehörige Struktogramm.
 +<hidden Lösung>
 +<​code>​
 +public int gibMaximum(int a, int b){
 +   ​if(a>​b{
 +      return a;   // a ist größer als b, also a zurückgeben ​
 +   ​}else{
 +      return b;   // b ist größer gleich a, also b zurückgeben
 +   }
 +}
 +</​code>​
 +</​hidden>​
 +
 +===== Aufgabe 2  =====
 +Implementiere eine Methode, die zu zwei ganze Zahlen überprüft,​ ob sie ohne ohne Rest teilbar ist. 
 +<note tip>Der %-Operator liefer den Rest der Division von zwei Zahlen.\\
 +Bsp.:
 +  * 12%4 ergibt 0, denn 12:4=3 Rest **0**
 +  * 13%5 ergibt 2, denn 13:5=2 Rest **3**
 +  * 14%7 ergibt 0, denn 14:7=2 Rest **0**
 +</​note>​
 +
 +Du benötigst einen Tipp? Hier ist er..\\
 +<hidden Tipp>
 +<​code>​
 +   ​public boolean teilbar(int zahl, int teiler){
 +      //Rest der Division berechnen
 +      ...
 +      //Antwort zurückgeben:​ True, falls der Rest 0 ist, andernfalls False ausgeben. ​  
 +      ...
 +   }
 +
 +</​code>​
 +</​hidden>​
 +===== Aufgabe 3 Maximum von drei ganzen Zahlen =====
 +Schreibe eine Methode, die drei ganze Zahlen als Parameter erhält und die größte der Zahlen zurückgibt. Erstelle auch das zugehörige Struktogramm.\\
 +Benötigst du einen Tipp? Hier findest du das Grundgerüst eines möglichen Struktogramms.
 +
 +<hidden Tipp>
 +Man muss mehrere bedingte Anweisungen ineinander schachteln.\\
 +{{:​10:​bedanweisung_struktogramm_max_drei_zahlen.png?​nolink&​|}}
 +</​hidden>​
 +
 +Konntest du das Struktogramm vervollständigen?​ Zur Kontrolle findest hier die
 +<hidden Lösung>
 +{{:​10:​bedanweisung_struktogramm_max_drei_zahlen_komplett.png?​nolink&​|}}
 +</​hidden>​
 +\\
 +
 +^ [[10:​algorithmische_strukturen|Zur Übersicht von algorithmischen Strukturen]] ^ [[10:​wiederholung_mit_fester_anzahl|Weiter zur Wiederholung mit fester Anzahl]] ^
Drucken/exportieren