011
06.12.2003, 23:44 Uhr
Pablo
Supertux (Operator)
|
Nicht schlecht, dass du deine eigene Potenzierung Funktion machst, aber finde ich unnötig. Benutze pow von math.h. Das ist zwar kein Fehler, aber die Funktion als exp zu nennen, find eich nicht gut, denn wenn du math.h includierst, (z.b. für sqrt), dann krigst du bestimmt ne Fehlermeldung, weil es exp(double,double) schon gibt, nämlich die Exponential Funktion e^x.
Die main Funktion ist nach ANSI keine void Funktion, sondern main. Du musst also
C++: |
· int main(void) · int main() · int main(int argc, char** argv) · int main(int argc, char* argv[])
|
schreiben.
Deine erste do Schleife gefällt mir nicht, weil 1. ich nicht verstehe, wozu die ganzen fflushes. 2. wenn du floats und doubles miteindander vergleichst, solltest du mit einer EPSILON Umgeben arbeiten, wegen Rundungsfehlern 3. es mathematisch nicht korrekt ist. Die geometrische Reihe nimmt Werte im Betrag im offenen Intervall (0,1), das heißt, dass wenn q == -0.5 ==> die geo-reihe konvergiert. q liegt in offenen Intervall (-1, 1).
ich bin mir sicher, dass die 2. while-Schleife nie terminiert. Du musst, wie gesagt, in einem Schlauch arbeiten, wegen Rundungsfehlern. Ich habe aber dein Programm nicht getestet, aber wenne s terminiert, dann ist gut. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 06.12.2003 um 23:45 Uhr von Pablo Yanez Trujillo editiert. |