e2:bedingteverzweigungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
e2:bedingteverzweigungen [2017/09/22 13:49] admin03e2:bedingteverzweigungen [2017/09/22 13:51] (aktuell) admin03
Zeile 3: Zeile 3:
 Nach dem Ausflug in die Geschichte der Programmiersprachen soll nun ein Programm zum Lösen der quadratischen Gleichung   $ax^2+bx+c=0$ entwickelt werden. Wir verwenden ein sogenanntes Struktogramm, um den Programmablauf zu planen. Das Struktogramm wurde mit dem Programm "StruktEd32" erstellt.  Nach dem Ausflug in die Geschichte der Programmiersprachen soll nun ein Programm zum Lösen der quadratischen Gleichung   $ax^2+bx+c=0$ entwickelt werden. Wir verwenden ein sogenanntes Struktogramm, um den Programmablauf zu planen. Das Struktogramm wurde mit dem Programm "StruktEd32" erstellt. 
  
-{{:e2:pgformel.png?600|}}+{{:e2:pgformel.png?500|}}
  
 Flussdiagramme und Struktogramme sind Hilfsmittel, um Programmabläufe zunächst ganz unabhängig von der Programmiersprache zu planen. Flussdiagramme und Struktogramme sind Hilfsmittel, um Programmabläufe zunächst ganz unabhängig von der Programmiersprache zu planen.
Zeile 28: Zeile 28:
 |== |gleich (zur Unterscheidung vom Zuweisungsoperator =)     | |== |gleich (zur Unterscheidung vom Zuweisungsoperator =)     |
 |!= |ungleich| |!= |ungleich|
 +
 +Mehrere Bedingungen können mit UND oder ODER verknüpft werden
 +
 +  Bedingung1  &&  Bedingung2 Beide Bedingungen müssen für true erfüllt sein.
 +  Bedingung1  ||  Bedingung2 Mindestens eine Bedingung muss für true erfüllt sein.
 +
 +Jetzt das Programm mit grafischer Oberfläche: 
 +
 +<code JAVA>
 +public void jButton1_ActionPerformed(ActionEvent evt)
 +  {
 +    double a = Double.parseDouble(jTextField1.getText()) ;
 +    double b = Double.parseDouble(jTextField2.getText()) ;
 +    double c = Double.parseDouble(jTextField3.getText()) ;
 +
 +    if (a == 0)
 +    {
 +      jTextField4.setText("Keine quadratische Gleichung") ;
 +      jTextField5.setVisible(false) ;
 +      jTextField6.setVisible(false) ;
 +      jLabel5.setVisible(false) ;
 +      jLabel6.setVisible(false) ;
 +    }
 +    else
 +    {
 +      double p = b/a ; double q = c/a ;
 +      double d = p*p/4 - q ;
 +      if (d < 0)
 +      {
 +        jTextField4.setText("Keine Lösungen") ;
 +        jTextField5.setVisible(false) ;
 +        jTextField6.setVisible(false) ;
 +        jLabel5.setVisible(false) ;
 +        jLabel6.setVisible(false) ;
 +      }
 +      else
 +      {
 +        if (d == 0)
 +        {
 +          jTextField4.setText("Genau eine Lösung") ;
 +          jTextField5.setVisible(true) ;
 +          jTextField6.setVisible(false) ;
 +          jLabel5.setVisible(true) ;
 +          jLabel6.setVisible(false) ;
 +          jTextField5.setText(Double.toString(-p/2)) ;
 +        }
 +        else
 +        {
 +          jTextField4.setText("Zwei Lösungen") ;
 +          jTextField5.setVisible(true) ;
 +          jTextField6.setVisible(true) ;
 +          jLabel5.setVisible(true) ;
 +          jLabel6.setVisible(true) ;
 +          jTextField5.setText(Double.toString(-p/2 + Math.sqrt(d))) ;
 +          jTextField6.setText(Double.toString(-p/2 - Math.sqrt(d))) ;
 +        }
 +      }
 +    }
 +  }
 +
 +</code>
 +
 +Wir verwenden hier eine Methode, die alle Objekte der GUI (Grafische Oberfläche) besitzen: die Methode setVisible(Wert), wobei der Wert vom Typ boolean sein muss, d.h. er muss true oder false sein.
 +
 +Weiterhin verwenden wir hier eine Methode der Klasse Math, nämlich sqrt(Wert). Diese Methode zieht die Wurzel aus einer double-Zahl. Die Klasse Math enthält viele mathematische Funktionen und Konstanten. Sie steht immer zur Verfügung, d.h. es muss nicht ein besonderes package zu Programmbeginn eingebunden werden.
 +
 +
 +{{:e2:pqformel2.png?500|}}
  
  
  
  
  • /var/www/infowiki/data/attic/e2/bedingteverzweigungen.1506088197.txt.gz
  • Zuletzt geändert: 2017/09/22 13:49
  • von admin03