Zunächst mal: Sorry, aber durch deinen Code blicke ich nicht durch, da du keine klaren Bezeichner verwendest. Bitte nutze aussagekräftige Variablennamen und nicht x,y,z,a,b usw. Du hast ja anscheinend schon selbst gemerkt, dass das zu Unklarheiten führt, wie man an deinem Kommentar „{Z=DELTA, NOT C!!!}“ sieht.
Dann nenn die Variable doch einfach Delta! (wobei ich mir jetzt ehrlich gesagt unter Delta auch nichts vorstellen kann).
Aber immerhin sind deine Funktionsnamen englisch, dafür schon mal ein Lob
Also wir haben in der Schule immer mit der PQ-Formel gerechnet und nicht mit der ABC-Formel. Die PQ-Formel erhält man einfach, indem man durch a dividiert. Damit wird die Rechnung übersichtlicher:
x^2 + p*x + q = 0
x1 = -p/2 + sqrt((p/2)^2 - q) = -p/2 + sqrt(D);
x2 = -p/2 - sqrt((p/2)^2 - q) = -p/2 - sqrt(D);
mit D = (p/2)^2 - q
Folgendes ist ja denke ich klar:
Wenn D<0, gibt es keine Lösung.
Wenn D=0, gibt es eine Lösung.
Wenn D>0, gibt es mehrere Lösungen.
Und jetzt kannst du dir z.B. eine Tabelle machen, wann x1 und x2 positiv oder negativ sind. Hier mal exemplarisch für x1:
Code:
-p/2>0 -p/2<0
sqrt(D)>p/2 + +
sqrt(D)<p/2 + -
Das musst du jetzt nur noch in Code überführen, was eine leichte Übung sein sollte.