Dort unten wird die pq-formel angewendet um die Nullstellen zu berechnen, wie kann man das Ergebnis
in String ausgeben lassen? Vielen dank im vorraus für die Antworten
Java:
package pqformel;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclass rechnen {publicstaticString a, b, text;publicstaticvoid main (String[] args)throwsIOException{BufferedReader br =newBufferedReader(newInputStreamReader(System.in));System.out.println("Bitte a eingeben.");
a = br.readLine();System.out.println("Bitte b eingeben");
b = br.readLine();/*
* Hier soll der String ausgegeben werde, der in berechnePQFormel errechnet wird.
*/}publicStringberechnePQFormel(double pP,double pQ){
pP =Double.parseDouble(a);
pQ =Double.parseDouble(b);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;}}}
Ich zerbreche mir den kopf schon seit Stunden bei der Aufgabe, ich hoffe ihr könnt mir helfen.
Kannst es mit nem Scanner einlesen, was dir ermöglicht mit nextDouble(); nur diese einzulesen! (Allerdings solltest du die Exceptions abfangen!)
Java:
publicstaticvoid main (String[] args)throwsIOException{Scanner scanner =newScanner(System.in);System.out.println("Bitte a eingeben.");double a = scanner.nextDouble();System.out.println("Bitte a eingeben.");double b = scanner.nextDouble();System.out.println(berechnePQFormel(a,b));}
oder aber:
Java:
publicstaticvoid main (String[] args)throwsIOException{BufferedReader br =newBufferedReader(newInputStreamReader(System.in));System.out.println("Bitte a eingeben.");String string_a = br.readLine();int int_a =Integer.parseInt(string_a);System.out.println("Bitte b eingeben");String string_b = br.readLine();int int_b =Integer.parseInt(string_b);System.out.println(berechnePQFormel(int_a, int_b));}
und bitte:
Java:
publicstaticString a, b, text;
pP =Double.parseDouble(a);
pQ =Double.parseDouble(b);
entfernen! Du brauchst ja nichts globales, wenn du deine Werte der Methode übergibst!
Da deine Variablen static sind und du auch keine Instanz deiner Klasse anlegst, muss die Methode zur Berechnung auch static sein, also zwischen "public" und "String" noch ein "static" einfügen. Dann kannst du sie so benutzern:
Java:
// die Parameter nutzt deine Methode nicht, deshalb sind sie beliebigString ausgabe =berechnePQFormel(0,0);System.out.println(ausgabe);
Gut wäre es, wenn du den parseDouble-Aufruf in main legst und deiner Methode die Werte dann als Parameter übergibst, das würde etwas mehr Sinn ergeben