Gepostet: |
quadratische Gleichung lösen | ||||||||||
Hallo, die Funktion soll die quadratische Gleichung nach Eingabe a b c lösen. Aber es funktionier nicht weil es in der Funktion zu viele \"=\" gibt :Hugs> \"Syntax error in expression (unexpected `=\')\"
|
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hier erst mal der Code, der beide Lösungen - so vorhanden - als Paar ausgibt. Natürlich gibt es Fehler, wenn die Wurzel imaginär ist.
Haskells Umgang mit - ist etwas hakelig, da ein Operator nicht gleichzeitig unär und binär sein kann. Also verwendet man entweder die negate-Funktion, oder schreibt wie ich einfach eine Null davor. Zu Zahlen in Haskell solltest du dir mal http://www.haskell.org/tutorial/numbers.html anschauen (da werden auch komplexe Zahlen erwähnt, so dass man diese Aufgabe auch für imaginäre Wurzeln lösen könnte). |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Wenn ich deine Funktion im Hugs compeliere , dann kriege ich den Fehler Main> quadratGleichung 5 3 5 \"( Program error: argument out of range\" Und wenn ich für a Null eingebe, dann sind p und q auch Null......... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Das Programm funktioniert so wie es ist in GHC, Hugs habe ich nicht installiert. Die 0.0 kann man doch weglassen, habe ich gerade gemerkt. Wenn a == 0 ist, handelt es sich nicht mehr um ein Polynom zweiten Grades, und damit ist die Formel nicht mehr anwendbar (p und q werden NaN, nicht 0). Und die von dir eingegebene Gleichung 5x² + 3x + 5 == 0 hat keine reellen Wurzeln, sondern komplexe, muss also bei Berechnung mit reellen Zahlen einen Fehler liefern (das passiert beim Wurzelziehen aus einer negativen Zahl). Schau es dir selbst an: http://www.wolframalpha.com/input/?i=5x%C2%B2+%2B+3x+%2B+5+%3D+0 |
|||||||||||
Zum Seitenanfang | |||||||||||