Java/PQ-Formel: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
(l korr)
Markierung: 2017-Quelltext-Bearbeitung
Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
Zeile 6: Zeile 6:
Das folgende Beispiel eignet sich, um eine verschachtelte [[Java/Algorithmik#Bedingte Anweisung|if..else-Verzweigung]] einzuführen. <!---Die folgende Klasse ist das Endergebnis der beim Bild­schirmfilm vorgestellten Klasse, die die pq-Formel be­rechnet.--->  Neben  „if..else“  benötigen  Sie  Kenntnisse  im Umgang mit [[Java/Erste Schritte#Konsolenausgabe|System.out.println]] und der Klasse Math, diein Java standardmäßig vorhanden ist.
Das folgende Beispiel eignet sich, um eine verschachtelte [[Java/Algorithmik#Bedingte Anweisung|if..else-Verzweigung]] einzuführen. <!---Die folgende Klasse ist das Endergebnis der beim Bild­schirmfilm vorgestellten Klasse, die die pq-Formel be­rechnet.--->  Neben  „if..else“  benötigen  Sie  Kenntnisse  im Umgang mit [[Java/Erste Schritte#Konsolenausgabe|System.out.println]] und der Klasse Math, diein Java standardmäßig vorhanden ist.


{{Box|Die Klasse Math.. | ist das Matheobjekt mit allen Operationen für einfache numerische Berech­nungen.(...) Der Ergebnistyp fast aller Operationen ist <code>double</code>.
Die Klasse '''Math''' ist das Matheobjekt mit allen Operationen für einfache numerische Berech­nungen.(...) Der Ergebnistyp fast aller Operationen ist <code>double</code>.
 
Wurzelziehen, Potenzen: sqrt, pow  
Wurzelziehen, Potenzen: sqrt, pow  
  double x = Math.sqrt( 2 ); doulbe y = Math.pow( 2,10 );  // 2^10 = 1024
  double x = Math.sqrt( 2 ); doulbe y = Math.pow( 2,10 );  // 2^10 = 1024
|Merksatz}}
 


<source lang="java">
<source lang="java">

Version vom 19. August 2019, 09:43 Uhr

Das folgende Beispiel eignet sich, um eine verschachtelte if..else-Verzweigung einzuführen. Neben „if..else“ benötigen Sie Kenntnisse im Umgang mit System.out.println und der Klasse Math, diein Java standardmäßig vorhanden ist.

Die Klasse Math ist das Matheobjekt mit allen Operationen für einfache numerische Berech­nungen.(...) Der Ergebnistyp fast aller Operationen ist double.

Wurzelziehen, Potenzen: sqrt, pow

double x = Math.sqrt( 2 ); doulbe y = Math.pow( 2,10 );  // 2^10 = 1024


public class Formelberechner
{
public String berechnePQFormel(double pP, double pQ){
    double diskriminante;
    diskriminante = (pP/2) * (pP/2) - pQ;
    if (diskriminante >= 0) {
      double x1,x2;
      x1 = -(pP/2) + Math.sqrt (diskriminante);
      x2 = -(pP/2) - Math.sqrt (diskriminante);
      if (x1==x2){
        return "Das Ergebnis ist L={"+x2+"}";    
      }
      else {
        return "Die Ergebnisse sind L={"+x1+";"+x2+"}";
      }
    }
    else {
      return "Keine Lösung, die Diskriminate ist "+diskriminante;
    }
}

{{Box|Arbeitshinweise| Beschreiben Sie, weshalb bei berechnePQFormel() innerhalb des ersten if-Anweisungs­blocks noch ein zweiter, verschachtelter if-Block auftritt. Erläutern Sie dabei die Klammersetzung der geschweiften Klammern.

  1. bestimmeBetrag() gibt den Betrag einer Zahl zurück (eine negative Zahl wird zu einer positiven. Analysieren Sie die Funktionsweise dieser Methode.
  2. Vergleichen Sie die beiden Varianten der quadrieren-Methoden. Beide führen zu demselben Ergebnis. Welche würden Sie bevorzugen?
  3. Implementieren Sie eine Methode zieheWurzel(double pZahl), die entweder die Wurzelvon pZahl zurückgibt oder -1, falls pZahl negativ ist.(Hinweis: -1 ist natürlich mathematisch nicht richtig, aber so müssen Sie die Zahl, die Sie zurückgeben, nicht in einen String umwandeln.)

Siehe auch