Seite 1 von 1

Hausübung 1 Aufgabe 8

Verfasst: 31. Okt 2006 20:51
von kechler
N'abend,

ich habe ein Problem bei der PQ-Formel Aufgabe. Ich war auch schon in der Sprechstunde, habe aber das Problem aber leider immer noch nicht lösen können:

In der quad-equation-Prozedur frage ich erst ab, ob das übergebene symbol x1 oder x2 ist und dann will ich mithilfe der discriminant-Prozedur den dazugehörigen Wert ausrechnen. Danach frage ich erst ab, ob die discriminant-Prozedur das Symbol 'negative_squareroot zurückgegebn hat, falls die Diskriminante<0 ist.

Jetzt habe ich das Problem, dass wenn ich in der discriminant-Prozedur p=0 oder p^2/4 < q abfrage, die Prozedur mir das Symbol 'negative_sqaureroot zurückgibt, womit ich einen Fehler in meiner ersten Abfrage in der quad-equation bekomme, da discriminant ja eigentlich nen Wert und kein Symbol zum berechnen des entsprechenden x1 oder x2 - Wertes braucht.

Ich habe quasi ein Problem in meiner Abfrage drin, ob discriminant ein Symbol oder eine number zurückgibt. Vielleicht hat ja einer nen Tipp!

Ich hoffe, ich habe es nicht zu schwierig formuliert, wollte aber keinen Code psoten, da das sonst immer Ärger bringt...

Verfasst: 31. Okt 2006 22:21
von rick
also wenn ich's richtig verstanden habe, bekommste nen fehler in quad-equation, wenn discriminant 'negative_squareroot zurückgibt und quad-equation dann damit versucht, eine der beiden lösungen zu berechnen.

Warum fragst Du dann nicht ZUERST, ob discriminant 'negative_squareroot zurückgibt und berechnest eine der beiden Lösungen nur, wenn das nicht der Fall ist?

Verfasst: 1. Nov 2006 00:05
von Can
ja, genau, du musst deine quad-equation erst überprüfen lassen, ob es sich bei der Auswertung aus deinem discriminant um ein Symbol handelt,
falls ja, lässt du gleich die Fehlermeldung ausgeben, wenn nicht, dann lässt du
die Berechnung durchführen ;)

Verfasst: 1. Nov 2006 12:34
von kechler
Danke für die schnellen Antworten, jetzt ist bei mir der Groschen gefallen und alles läuft so wie es soll :wink:

Verfasst: 3. Nov 2006 11:26
von marlic
In der Aufgabenstellung sind meiner Meinung nach widersprüchliche Aussagen über den Fall, dass:

Das eingegebene Symbol nicht 'x1 oder 'x2 ist

UND

Die Diskriminante nicht reell ist.

Was sagt ihr dazu?
'InvalidInput oder 'NoRealSolution ausgeben?

Sinnvoller wäre wohl 'InvalidInput ... Aber leichter zu realisieren ist bei mir 'NoRealSolution, weil ich zuerst die Diskriminante überprüfe.

Verfasst: 3. Nov 2006 12:58
von banshee
ich denke mal wenn du 'no_real_solution ausgibst muss man davon ausgehen, dass für den eingegebenen wert kein ergebnis ermittelt werden konnte, die eingabe aber korrekt war. und wenn man dann zum beispiel 'eiernacken eingibt...

:D

Verfasst: 3. Nov 2006 13:53
von kechler
Genau dasselbe Problem hatte ich auch, aber du darfst nicht nach dem speziellen symbol 'negative_solution nachfragen, sondern ob dir die Prozedur discriminant überhaupt ein symbol zurückgibt. Also einfach ein "=" und ein "'negative_solution" weniger und es sollte laufen...