Quadratische Gleichung lösen

Hallo.
muss für die schule ein C++ programm schreiben, dass quatratische gleichungen lösen kann.
also:
0=x² + px + q

nur hab ich leider keine ahnung wie ich das machen soll…

kann mir da jemand helfen?

danke!!!

Hallo,
dafür gibt es doch eine geschlossene Formel:

x1=-p/2+sqrt(p^2/4-q), x2=-p/2-sqrt(p^2/4-q)

Zu überprüfen wäre lediglich, daß p^2/4-q>=0 resp. p^2>=4*q.

Gruss
Enno

danke erstmal.
aber leider klappt das alles nicht so ganz bei mir. Vielleicht fehlt auch was, ich weiß es nicht, bin noch totaler anfänger, hab erst ein paar stunden gehabt :wink:.
vielleicht findet ja jemand den fehler, mein quelltext:

//---------------------------------------------------------------------------

#include
#include
#pragma hdrstop

#include „Unit1.h“
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource „*.dfm“
TForm1 *Form1;
int P, Q, X1, X2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
// A = StrToInt (Edit1 -> Text);
P = StrToInt (Edit2 -> Text);
Q = StrToInt (Edit3 -> Text);

X1 = -P/2+sqrt(P^2/4-Q);
X2 = P/2-sqrt(P^2/4-Q);

Label6 -> Caption = X1;
Label8 -> Caption = X2;

}
//---------------------------------------------------------------------------

Kleine Aenderung führen zum Ziel
Hallo ,
beim betrachten fallen mir 2 Kleinigkeiten auf:

  • die Eingabewerte und Endergebnisse P,Q,X1,X2 deklarierst Du als int. Ich denke, float oder double ist angebracht, da die Berechnung meist zu Gleitkommazahlen führen
  • die Quadratfunktion in C ist nicht das ^ , das ist das Exklusiv-Oder. Ein Quadrat bildest Du mit der Fkt. pow(P,2)
    -die Abfrage, ob der Wurzelinhalt zu negativen Werten führt, wäre angebracht

Viel Erfolg
Hans

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]