Moin Leute,
ich soll für Informatik ein Programm schreiben, dass Quadratische Gleichungen löst. Mit der Eingabe und Verarbeitung der Variablen klappt alles, nur irgendwo berechne ich was falsch. Weil am Ende kommen andere Ergebnisse raus, als im Taschenrechner
Wenn sich auch jemand mit der Berechnung von Quadratischen Funktionen auskennt, kann er mir gerne dabei helfen.
Wie schon gesagt, es funztz ALLES, außer der Rechenweg zum Ergebnis.
(Also die Methoden Wurzelterm() und pqFormeladd() und pqFormelsub() müssen iwie falsch sein.)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Main implements ActionListener {
JFrame win = new JFrame("Quatratische Gleichungen");
JTextField input = new JTextField("Geben sie die Werte a, b, c und d jeweils mit einem Leerzeichen getrennt ein...");
JButton button = new JButton("=");
JLabel output = new JLabel("ax²+bx+c = d");
public int a = 0, b = 0, c = 0, d = 0;
public Main() {
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setSize(1000, 75);
input.setBounds(10, 10, 550, 25);
win.setLayout(null);
win.setLocationRelativeTo(null);
win.setResizable(false);
button.setBounds(570, 10, 75, 25);
button.addActionListener(this);
output.setBounds(655, 10, 335, 25);
win.add(input);
win.add(button);
win.add(output);
win.setVisible(true);
}
public static void main(String [] args){
new Main();
}
public void actionPerformed(ActionEvent e){
String [] eingabe = input.getText().split(" ");
if(eingabe.length != 4){
output.setText("Keine gültige Eingabe!");
}
try{
a = Integer.parseInt(eingabe[0]);
b = Integer.parseInt(eingabe[1]);
c = Integer.parseInt(eingabe[2]);
d = Integer.parseInt(eingabe[3]);
}catch(NumberFormatException ex){
output.setText("Ungültige Eingabe!!!");
}
if(a == 0){
output.setText("Wenn a=0 ist, ist diese Funktion nicht quadratisch!");
}
c = c - d;
if(Wurzelterm() < 0){
output.setText("Es gibt keine Nullstellen!");
}if(Wurzelterm() == 0){
pqFormeladd();
output.setText("x = " + String.valueOf(pqFormeladd()));
}if(Wurzelterm() > 0){
pqFormeladd();
pqFormelsub();
output.setText("x1 = " + String.valueOf(pqFormeladd()) + " , x2 = " + String.valueOf(pqFormelsub()));
}
}
public double Wurzelterm(){
final double w = ((b /a) /2)^2 -c;
return w;
}
public double pqFormeladd(){
final double pq1 = ((-b /a) /2) + java.lang.Math.sqrt(Wurzelterm());
return pq1;
}
public double pqFormelsub(){
final double pq2 = ((-b /a) /2) - java.lang.Math.sqrt(Wurzelterm());
return pq2;
}
}
Alles anzeigen
Wenn Fragen zum Code an sich bestehen, fragt bitte
PS: In den Zeilen 55 und 58 darf kein "else if" hin, sonst kann ich nur einmal mit Wirkung auf den Button klicken ;). Nur "if" tuts auch xD Weil es kann nur eins Wahr sein^^
Danke schon im Vorraus.
Gruß Nico