Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class rechnen {
public static String a, b, text;
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(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.
*/
}
public String berechnePQFormel(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:
public static void main (String[] args) throws IOException {
Scanner scanner = new Scanner(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:
public static void main (String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(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:
public static String 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 beliebig
String 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