Mathematische Formel in C

hi ich würde gerne die Pq Formel in C verwenden.

x1=1/2a(-b+ WURZEL AUS b?-4ac)

Diese Formel muss verwendet werden (ist eine schulaufgabe)

a,b,c sind variablen die zuvor eingelesen wurde. Typ double. Die Wurzel hab ich bereits in einer anderen Variablen berechnet und würde diese gern in der Formel verwenden.

y1=(1/2*a)*(-b+wurzel_y1); so zum beispiel. Es kommt jedoch immer das falsche ergebnis raus. Bitte um Hilfe.
 
hmmm, hast du mal einen quelltext und was erwartest du für ergebnisse, welche bekommst du statt dessen?
 
Hier mein bisheriges Programm. Ist vielleicht etwas wüst, sorry bin halt noch anfänger und mir gehts in erster linie um ein lauffähiges programm.



#include <iostream>
#include <math.h>

using namespace std;


int main()
{
double a, b, c, y2,wurzel_y1, test, y1;

//Ausgabe
cout<<"Loesung der quadratischen Gleichung \n\n";

//Aufforderung zur Eingabe von a,b,c und anschließende Eingabe
cout<<"a = ? "; cin>>a;

//Abfangen von Division durch 0
if (a==0)
{
cout<<"Keine Loesung (Division durch Null)\n\n";
return 0;
}


cout<<"b = ? "; cin>>b;
cout<<"c = ? "; cin>>c;
cout<<"\n";

//Eingabe Daten erfolgreich, Abfangen von Div/0 erfolgreich

//Abfangen von unerlaubter negativer Wurzel

test=(b*b)-4*(a*c);

if (test<0)
{
cout<<"Keine reellen Loesungen \n\n";
return 0;

//Abfangen von unerlaubter negativer Wurzel erfolgreich
}
else
{
wurzel_y1= sqrt(test);
y1=(1/2*a)*(-b+wurzel_y1);
cout<<"\n";

cout<<y1;
}

return 0;

}
 
dein fehler scheint in der zeile y1=(1/2*a)*(-b+wurzel_y1); zu liegen. ich habe es mal in

y1=(0.5*a)*(-b+wurzel_y1);

geändert und jetzt geht es bei mir. woran das genau liegt kann ich nur vermuten. danach wäre die interpretation nicht (1/2)*a sondern 1/(2*a). habe das jetzt aber nicht weiter getestet

aber bedenke, du berechnest nur eine nullstelle, es könnte noch ne zweite geben ;)
 
ich werde es sofort ausprobieren! Danke für die Mühe.

EDIT:

Ole Ole es klappt. Nach ca. 2 Stunden läuft es endlich :D^^ Ich freu micht wien kleines Kind. Danke auf jeden Fall!
Ja klar mit der 2. Nullstelle^^ die formel hack ich jetzt auch noch rein. muss ja nur ein vorzeichen ändern.
Schönen Abend noch!
 
Original von lightsaver

geändert und jetzt geht es bei mir. woran das genau liegt kann ich nur vermuten. danach wäre die interpretation nicht (1/2)*a sondern 1/(2*a). habe das jetzt aber nicht weiter getestet

So ähnlich: Sowohl 1 als auch 2 sind intern ints also ergibt die Ganzzahl-Division 1/2=0, also a wandert nicht in den Nenner. Schreibt man 0.5 oder 1/2.0*a, so ist das Problem gelöst.
 
Zurück
Oben