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.x2+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:

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.");
   }
}

Das zugehörige Struktogramm:

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.

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

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.

Lösung

Lösung

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

Aufgabe 2

Implementiere eine Methode, die zu zwei ganze Zahlen überprüft, ob sie ohne ohne Rest teilbar ist.

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

Du benötigst einen Tipp? Hier ist er..

Tipp

Tipp

   public boolean teilbar(int zahl, int teiler){
      //Rest der Division berechnen
      ...
      //Antwort zurückgeben: True, falls der Rest 0 ist, andernfalls False ausgeben.   
      ...
   }

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.

Tipp

Tipp

Man muss mehrere bedingte Anweisungen ineinander schachteln.

Konntest du das Struktogramm vervollständigen? Zur Kontrolle findest hier die

Lösung

Lösung


Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
Drucken/exportieren