Nullstellen

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Java:
 public double nullstellen(double p,double q){


        
        double x_1 = -(p/2) + Math.sqrt(Math.pow((p/2), 2)-q);
        return x_1;
    }
    public double nullstellen1(double p,double q){
        double x_2 = -(p/2) - Math.sqrt(Math.pow((p/2), 2)-q);
        return x_2;
     }


Hallo liebe Leute , ich stehe gerade aufen Schlauch und brauche mal eben einen Hinweis , wie ich dass alles in eine Methode machen.

2 mal return geht ja nicht :/

Und ohne Rückgabe will ich nicht. Der Aufrufer soll beide Nullstellen zurück bekommen.
Geht das nur mit einer Liste in der beide Ergebnisse gespeichert werden.

Aslo return Array ...?
Und dass denn wieder auslesen lassen.


Weiterhin ne überprüfung des Radikanten :

Java:
if (Math.sqrt(Math.pow((p/2), 2)-q)>=0)

Habt ihr da noch ne schickere Variante?
grüße


PS:

Java:
   public void nullstellen(double p,double q){
        double a[] = new double[1];
        a[0] = -(p/2) + Math.sqrt(Math.pow((p/2), 2)-q);
        a[1] = -(p/2) - Math.sqrt(Math.pow((p/2), 2)-q);
        
        for(int i=0;i<2;i++){
            System.out.println(a[i]);
        }
    }

Nun leider ohne Rückgabe :/

Wie kann ich das anders machen?
 
Zuletzt bearbeitet:
G

Gast2

Gast
Lass dir das Array zurückgeben ;)
Java:
   public double[] nullstellen(double p,double q){
        double a[] = new double[2];
        a[0] = -(p/2) + Math.sqrt(Math.pow((p/2), 2)-q);
        a[1] = -(p/2) - Math.sqrt(Math.pow((p/2), 2)-q);

        return a;
    }

EDIT:
Danke ark, hatte das einfach von oben kopiert. Ist korrigiert.
 
Zuletzt bearbeitet von einem Moderator:

Ark

Top Contributor
Dein Array sollte mindestens 2 Elemente umfassen, sonst gibt's ne ArrayIndexOutOfBoundsException. ;)
Java:
   public double[] nullstellen(double p,double q){
        double p2 = p / -2;
        double r = Math.sqrt(p2*p2 - q);
        return new double[]{p2 + r, p2 - r};
    }
(Hoffentlich stimmt das.)

Ark
 

Spin

Top Contributor
Ok Danke .

Nun noch mal ne Frage, an die Java Profis:)

Folgendes:
Java:
public static void main(String[] args) {

            KomplexerTaschenrechner kt = new KomplexerTaschenrechner();
            // Spin Vorschlag
            kt.nullstellen(-58, 441);
            
            // Ark sein Vorschlag
            double a[] = kt.nullstellen1(-58, 441);
            for(int i=0;i<2;i++){
            System.out.println(a[i]);
        }


Das ist der Aufruf zweie Methoden zum ausrechnen von Nullstellen.!


Methoden:

Java:
//Spin
public void nullstellen(double p,double q){
        double a[] = new double[2];
        a[0] = -(p/2) + Math.sqrt(Math.pow((p/2), 2)-q);
        a[1] = -(p/2) - Math.sqrt(Math.pow((p/2), 2)-q);

        for(int i=0;i<2;i++){
            System.out.println(a[i]);
        }
    }
// Ark
     public double[] nullstellen1(double p,double q){
        double p2 = p / -2;
        double r = Math.sqrt(p2*p2 - q);
        return new double[]{p2 + r, p2 - r};
    }


Was ist nun performanter?
Ich meine die Ausgabe ist die selbe!

Wenn ich später das in einen taschenrechner implementieren möchte , macht wohl arks methode mehr sinn.

Denn das kann ich zurückgeben lassen , was ich vorher übergebe.
Ich möchte später das ergebnis in einem Textfeld ausgeben lassen.

Also muss ich denn setText(a[0]).....natürlich noch in einen String parsen.
 

madboy

Top Contributor
Performanter? Du meinst, ob es 0,1 ms dauert oder 0,2 ms? (einfach mal zwei Zahlen aus der Luft gegriffen)
Anders ausgedrückt: beschäftige dich mit der Performance, wenn du PerformancePROBLEME hast. Lesbarer Code hat in 99% der Fälle höhere Priorität als Performance :)
 

Spin

Top Contributor
Java:
public double[] SatzVonVieta(double x_1,double x_2){
        double p = x_1+x_2;
        double q = x_1*x_2;
        return new double[]{p,q};
    }

OK ^^.
Mein Satz von Vieta geht nun auch , jippie :)

Ok , dann kann das geschlossen werden .
:)

thx a lot
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben