LebenAG Geschrieben 4. Januar 2007 Teilen Geschrieben 4. Januar 2007 Folgendes Programm wurde in C geschrieben. Es soll die PQ-Formel ausrechnen. Wenn p und q positiv sind gibt er als ersten Wert eine falsche Lösung aus. /*PQ-Formel Rechner*/ #include <stdio.h> main() { double z,p,q; printf("\n\tP Q - F O R M E L - R E C H N E R \n"); for (; {printf("\nBitte p eingeben: "); scanf("%lf",&p); printf("\nBitte q eingeben: "); scanf ("%lf",&q); z=(p/2)*(p/2)-q; if (z<0){ printf("\nEs gibt keine Loesung"); } if (z==0){ printf("\nEinzige Loesung %.4lf",-(p/2)); } if (z>0) { printf("\n1.Wert : %.4lf",-(p/2)+sqrt (z)); printf("\n2.Wert : %.4lf",-(p/2)-sqrt (z)); printf("\n\n\n"); } printf("\n\tP Q -F O R M E L - R E C H N E R\n\n"); } }[/code] Villeicht könnt ihr mir helfen und mir sagen was an dem Programm falsch ist. Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 4. Januar 2007 Teilen Geschrieben 4. Januar 2007 Meldet der Compiler keine Warnung? Du hast #include <math.h> vergessen. Deine Einrückung ist übrigens furchtbar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 5. Januar 2007 Autor Teilen Geschrieben 5. Januar 2007 Ich hab die Sprache erst vor 5 Tagen gelernt. Was bewirkt denn #include <math.h>?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 5. Januar 2007 Autor Teilen Geschrieben 5. Januar 2007 Ich hab das jetzt ma mit #include <math.h> versucht. Wenn beide Werte nun positiv sind kommt das richte Ergebnis raus. Ist q allerdings negativ, ist der erste Wert falsch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 5. Januar 2007 Teilen Geschrieben 5. Januar 2007 Allgemein bewirkt das Einbinden einer Headerdatei, dass dem Compiler die darin deklarierten Variablen und Funktionen bekanntgemacht werden. Die Funktion sqrt, die du in deinem Programm benutzt, ist in math.h deklariert. Das Programm lässt sich auch ohne diese Deklaration compilieren und ausführen, aber der Compiler geht in diesem Fall davon aus, dass sqrt keine Parameter hat und int zurückgibt. Tatsächlich gibt sqrt aber double zurück, und der ist bei dir wohl größer als int. Dadurch geht ein Teil des Rückgabewertes verloren, und es kommt zu falschen Werten. Aber wie gesagt, der Compiler sollte dabei eigentlich eine Warnung ausspucken. Und du tust gut daran, Warnungen nicht zu ignorieren. Wenn beide Werte nun positiv sind kommt das richte Ergebnis raus. Ist q allerdings negativ, ist der erste Wert falsch.Nenn mal ein Beispiel. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 6. Januar 2007 Autor Teilen Geschrieben 6. Januar 2007 in meinem Programm: p = 5 q = -4 Wert1 = 0.7016 Wert2 = -5.7016 rauskommen sollte: Wert 1 = 7.016 Wert 2 = -5.7016 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 6. Januar 2007 Teilen Geschrieben 6. Januar 2007 0.7016 ist (im Rahmen der Ausgabegenauigkeit) richtig. Wie kommst du auf 7.016? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 13. Januar 2007 Autor Teilen Geschrieben 13. Januar 2007 genau das ist das Problemm ich weiß es net. Aber das ergebniss muss auf jedenfall 7.016 sein P.S. Sorry, dass ich mich so lange nicht gemeldet habe war im Urlaub. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 13. Januar 2007 Autor Teilen Geschrieben 13. Januar 2007 vielleicht sollte ich dazu sagen, dass die PQ-Formel x1/2 = -(p/2) +- Wurtzel((P/2)-q) ist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Januar 2007 Teilen Geschrieben 13. Januar 2007 Aber das ergebniss muss auf jedenfall 7.016 seinSagt wer? Das ist schlicht und einfach falsch. Setz doch für x mal 7.016 in die Gleichung ein. Da kommt irgendwas um die 80 heraus, aber sicher nicht Null. vielleicht sollte ich dazu sagen, dass die PQ-Formel x1/2 = -(p/2) +- Wurtzel((P/2)-q) ist Das ist auch falsch. Aber in deinem Programm ist die Formel richtig umgesetzt. Siehe auch hier: Quadratische Gleichung − Wikipedia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LebenAG Geschrieben 14. Januar 2007 Autor Teilen Geschrieben 14. Januar 2007 villeicht hast du recht ich habe vor einem jahr die selbe formel in basic geschrieben undd da kam dieses andere ergebnis raus könnte ja sein, dass die basiv formel falsch ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.