|
|
|
|
Quadratische Funktion lösen |
Alleinikov
Aufsteiger
Dabei seit: 01.04.2002
Beiträge: 47
|
|
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
__________________
Es gibt 7 Weltwunder, 6 Kontinente, 5 Ecken des Pentagons,
4 Blätter am Klee, 3 heilige Könige, 2 Augen. Doch es gibt nur 1 Mal Dich!
-=Carpe Diem=-
|
|
29.04.2002 17:13 |
|
|
Kalka
BlackBoarder
Dabei seit: 16.03.2002
Beiträge: 856
|
|
ö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;
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
__________________ In wirklichkeit sind wir alle kleine grüne Kaninchen!
|
|
29.04.2002 20:28 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Öööhm, das x ist die Variable, nach der aufgelöst werden soll
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.
[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
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
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LX: 30.04.2002 05:54.
|
|
30.04.2002 00:48 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
|
30.04.2002 19:13 |
|
|
|
|
|
|