Schulprogramm
-
Nabend!
Dies ist der Code für ein kleines Schulprogramm, welches die Gleichung a*x + b = 0, unter der Angabe von a und b, lösen soll. ( x = -b/a).
Nun liefert er mir 4 Fehlermeldungen:
C:\Dokumente und Einstellungen\X\Eigene Dateien\Test1\Test1.java:46: operator == cannot be applied to java.lang.Float,int
if (fA==0) {
^
C:\Dokumente und Einstellungen\X\Eigene Dateien\Test1\Test1.java:51: operator * cannot be applied to int,java.lang.String
fX = (-1*sB)/sA;
^
C:\Dokumente und Einstellungen\X\Eigene Dateien\Test1\Test1.java:54: incompatible types
found : float
required: java.lang.Float
fA = Float.parseFloat(sA);
^
C:\Dokumente und Einstellungen\X\Eigene Dateien\Test1\Test1.java:55: incompatible types
found : float
required: java.lang.Float
fB = Float.parseFloat(sB);
^import java.awt.*; import java.applet.*; import java.awt.event.*; public class Test1 extends Applet implements ActionListener{ String sA; String sB; Float fA; Float fB; Float fX; String sX; String sL; FlowLayout Flgleichung = new FlowLayout(); TextField TfA = new TextField(5); TextField TfB = new TextField(5); TextField TfX = new TextField(5); Label LbA = new Label("a:"); Label LbB = new Label("b:"); Label LbX = new Label("x:"); Button Btrechne = new Button("Rechne"); public void init() { add(LbA); add(TfA); add(TfB); add(TfB); add(Btrechne); add(LbX); add(TfX); Btrechne.addActionListener(this);} public void actionPerformed(ActionEvent e) { sA = TfA.getText(); sB = TfB.getText(); if (fA==0) { sL = "keine Loesung";} else fX = (-1*sB)/sA; fA = Float.parseFloat(sA); fB = Float.parseFloat(sB); sX = String.valueOf(fX); TfX.setText(sL); }}
Der Sachverhalt dürfte klar sein: Hilfe!
-
1. Es fehlt eine geschweifte Klammer.
2. Du versuchst einen int mit einem String zu multiplizieren und das kann natürlich nicht gehen.
Hier mal ne funktionierende Version:import java.awt.*; import java.applet.*; import java.awt.event.*; public class Test1 extends Applet implements ActionListener { String sA; String sB; float fA; float fB; float fX; String sX; String sL; FlowLayout Flgleichung = new FlowLayout(); TextField TfA = new TextField(5); TextField TfB = new TextField(5); TextField TfX = new TextField(5); Label LbA = new Label("a:"); Label LbB = new Label("b:"); Label LbX = new Label("x:"); Button Btrechne = new Button("Rechne"); public void init() { add(LbA); add(TfA); add(TfB); add(TfB); add(Btrechne); add(LbX); add(TfX); Btrechne.addActionListener(this); } public void actionPerformed(ActionEvent e) { sA = TfA.getText(); sB = TfB.getText(); if (fA==0) sL = "keine Loesung"; else fX = (-1*Float.parseFloat(sB))/Float.parseFloat(sA); fA = Float.parseFloat(sA); fB = Float.parseFloat(sB); sX = String.valueOf(fX); TfX.setText(sL); } }
-
Danke.
Jetzt bekomme ich nur noch "keine Loesung" ausgegeben.
-
Das liegt daran das fA immer 0 ist. Die zuweisung an fA findet erst später statt und somit erhälst du immer keine Lösung
-
IchHabNeFrage schrieb:
Dies ist der Code für ein kleines Schulprogramm, welches die Gleichung a*x - b = 0, unter der Angabe von a und b, lösen soll. ( x = -b/a).
Hui, das solltest du aber nochmal überdenken. ...nachher verläßt sich noch jemand auf dein Programm.
-
fA, fB und fX sollten nicht vom Typ Float sein, sondern vom Typ float. Java achtet auf Groß- und Kleinschreibung und Float ist da etwas anderes als float.