BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- Delphi Quadratische Funktion lösen (http://www.black-board.net/thread.php?threadid=5032)


Geschrieben von Alleinikov am 29.04.2002 um 17:13:

  Quadratische Funktion lösen

Hi
ich muss in Delphi ein Programm erstellen und hab nicht den geringsten Plan wie ich das anstellen soll!!
Es wäre wahnsinng toll wenn mir jemand der ein bisschen Erfahrung hat und dies drauf hat mir des kurz machen kann. Ist für den bestimmt keine grosse Sache.
Also, zum Programm:

ax²+bx+c=0
Man soll für a,b,c die Zahlen immer frei wählen dürfen. (Eingabefeld)
a soll immer ungleich 0 sein.
Jetzt soll das Programm zuerst testen ob die Aufgabe mit den bestimmten Werten überhaupt lösbar ist. Wenn ja soll es die Rechnung durchführen und ausgeben wieviele Lösungen es gibt und welche das sind. Das ist schon alles. Die unterschiedlichen Fälle müssen halt beachtet werden.

Ich hoffe mir kann jemand dabei helfen!!!
Schon mal vielen Dank.
Bye
Link



Geschrieben von Kalka am 29.04.2002 um 20:28:

 

öhh, und was sollen die x in der Formel? du meinst doch

a+b+c=0;

also soll das ergebnis immer null sein??? naja, jedenfalls musse erstmal 3 var's definieren....

var a,b,c:integer;

Augenzwinkern
so, dann prüfen, ob a=0 ist => wenn ja soll die function/procedure verlassen werden:

...
if a = 0 then exit;
...

und dann? soll das wirklich immer 0 ergeben oder haste dich vertan???

cu Kalka



Geschrieben von LX am 30.04.2002 um 00:48:

Achtung

Öööhm, das x ist die Variable, nach der aufgelöst werden soll Augenzwinkern

Es handelt sich um eine quadratische Funktion und a, b und c soll man vorher bestimmen. Mit diesen gegebenen Parametern kann man dann bestimmen ob, wieviele und welche Nullstellen es gibt.

Is' mir jetzt aber'n bisschen zu spät um mir das jetzt genauer anzuschauen. Augenzwinkern

[EDIT]:
So, nu bin ich wieder wach. Aaalso:

Richtig war schon mal, dass du am Anfang abfragst, ob a=0 ist, wenn ja soll der User gefälligst nochmal eingeben Augenzwinkern

Dann prüfst du ob b und a 0 sind, wenn ja dann gibt es nur eine Nullstelle, nämlich bei x=0 (Ergebnis).

Wenn a und c einen Wert haben, b aber 0 ist, dann liegen 2 Nullstellen bei x = +WURZEL(-c/a) und bei x = -WURZEL(-c/a) (vorher natürlich prüfen, ob -c/a größer als 0 ist, ansonsten gibt es keine Lösung).

Ansonsten nimmst du die quadratische Lösungsformel (x = - b/2a ± WURZEL[(b/a)²/4 - c/a)). Du prüfst, ob der Term unter der Wurzel [(b/a)²/4 - c/a] größer oder gleich 0 ist, wenn dem so ist dann ist x1 = -b/2a + WURZEL[(b/a)²/4 - c/a] und x2 = -b/2a - WURZEL[(b/a)²/4 - c/a] (2 Lösungen), wenn nicht, dann gibt es keine Lösung.

Der fertige Pseudocode sieht dann etwa so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
WENN (a = 0) DANN nochmal eingeben;
SONST WENN (b = 0) UND (c != 0) DANN
   WENN (-c/a > 0) DANN
      x1 = WURZEL(-c/a);
      x2 = -x1;
   SONST keine Lösung;
SONST WENN ((b/a)²/4 - c/a) >=0) DANN
   x1 = -b/2a + WURZEL((b/a)²/4 - c/a);
   x2 = -b/2a - WURZEL((b/a)²/4 - c/a);


Für Fehler übernehme ich keine Gewähr Augenzwinkern



Geschrieben von Medusa am 30.04.2002 um 18:21:

 

wir ham das zeugs grade in mathe großes Grinsen ...
die Formel is glaub net ganz richtig, ich weiß zwar net wie man die umformt, aber wahrscheinlich is se umgeformt die selbe großes Grinsen
Wie ham gelernt: x = (-b +- (WURZEL [ b² - 4ac])) / 2a



Geschrieben von LX am 30.04.2002 um 19:13:

Pfeil Re:

Zitat:
Original von Medusa
ich weiß zwar net wie man die umformt, aber wahrscheinlich is se umgeformt die selbe großes Grinsen
Wie ham gelernt: x = (-b +- (WURZEL [ b² - 4ac])) / 2a
Es ist dieselbe Formel Augenzwinkern

Die Umformung erspare ich mir an dieser Stelle mal... es sei denn es interessiert wirklich jemanden brennend *g


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH