bin schon seit längerem am wälzen des forums hier und hab leider das PW meines alten accs vergessen ^^
da es hier superleute gibt, die in vielen fällen vor allem auch n00bs wie mir weiterhelfen musst ich mich gleich ma neu reggen....
ich sitz hier gerade an nem programm zum lösen quadratischer gleichungen der form:
ax² + bx + c = 0
prog funzt soweit auch, aber es berechnet leider falsch wie mir scheint. da ich mathematisch ne ziemliche null bin und mir bisher auch das proggen noch nich ganz so von der hand flutscht (und ich eigentlich schon stolz bin, daß prog soweit schon am laufen zu haben) meine frage an euch, ob ihr evtl. den fehler seht. ich komm einfach nicht dahinter, wo in der berechnungsklasse nun der fehler ist....
bin nen ziemlicher java-n00b muss ich gestehen und wie gesagt mathematisch nicht gerade hochbegabt
class MeineBerechnung { /** * Beginn der Methode für Formelberechnung * @param a * @param p * @param q * @param art * @return temp2 */ public static double PQFormeln(double a, double p, double q, String art) { double wert1 = a; double wert2 = p; double wert3 = q; double temp1; double temp2 = 0; String bereich = art; if (wert1 != 0) // Das Dividieren durch Null Problem wird ausgeschaltet { if (wert2 != 0) { wert2 = wert2 / wert1; // Der Wert wird in die PQ Form umgewandelt } if (wert3 !=0) wert3 = wert3 / wert1; // Der Wert wird in die PQ Form umgewandelt } else //Es koennte auch der Wert2 Null sein. { if (wert2 != 0) wert2 = wert2 / 2; } temp1 = hochrechnen(wert2,2); temp1 = temp1 - wert3; temp1 = Math.sqrt(temp1); // Zieht die Quadratwurzel if (bereich == "+") // Für den positiven X Bereich { temp2 = temp1 - wert2; } if (bereich == "-") { temp2 = temp1 + wert2; } if (Double.isNaN(temp2) ) // Hier wird überprüft ob es zu einem NotANumber-Fehler kommt. (Wurzel konnte nicht gezogen werden) { temp2 = 0; // Eine Null wird als Fehlerabfang gesetzt. System.out.println("Keine reele Zahl. Lösung des " + bereich+ " x Bereiches nicht möglich."); } return temp2; // Ist eine Reele Zahl oder die Null } public static double hochrechnen( double wert, int stellen) { double wert2 = wert; for (int i = 1; i <= stellen; i++) { wert2 = wert2 * wert; } return wert2; } }
wie zum henker muss ich das mistvieh umschreiben, damit der PQ-Mist endlich richtich ausgerechnet wird. ich hab seit einigen Tagen nur ? vor den augen
programm funzt, bis auf die elende berechnung der eigentlichen formel ..... und wenn das nich funzt ist mein kurs soweit erstma verkackt...
hoffe ihr könnt mir in verständlichen worten oder ideen zur codeverbesserung helfen... bin am ende meiner fähigkeiten angelangt :/
eigentlich isses ja keine große klasse, aber ich weiß nicht mehr weiter.
help
Dieser Beitrag wurde von skynetwork bearbeitet: 26. Juni 2006 - 21:08