Erläuterung des Algoritmus
-
tach zusammen..... ich denke das ist etwas viel auf einmal aber ich dachte ich versuche es einfach...
Kann mir bitte einer die Erläuterung des Algoritmus aufschreiben, weil ich verstehe dieses Progi einfach nicht!
Danke schön................#include <conio.h> #include <math.h> void main(){ textattr(0x1f); clrscr(); double x_deg, //Definitionen x_rad, tempZ, tempN, xx_rad, sum, glied, xx_deg; unsigned a; int vz; cprintf("Bitte geben Sie die Gradzahl an: "); //Eingabe der Gradzahl cscanf("%lf",&x_deg) ;getch() ;clrscr(); //Zuweisung an x_deg --------------------------------Berechnung -90° < X > +90°-------------------- xx_deg = x_deg; while(xx_deg > 360.0) xx_deg = xx_deg-360.0; while(xx_deg < -360.0) xx_deg = xx_deg+360.0; if(xx_deg > 180.0){ if(xx_deg > 270.0){ xx_deg -= 360.0; } else{ xx_deg -= 180.0; xx_deg = -xx_deg; } } else if(xx_deg > 90.0){ xx_deg -= 180.0; xx_deg = -xx_deg; } if(xx_deg < -180.0){ if(xx_deg < -270.0){ xx_deg += 360.0; } else{ xx_deg += 180.0; xx_deg = -xx_deg; } } else if(xx_deg < -90.0){ xx_deg += 180.0; xx_deg = -xx_deg; } -------------------------Sinusfunktion----------------------------------------- x_rad = M_PI / 180.0 * xx_deg; xx_rad = x_rad * x_rad; cprintf("Bei einem Winkel von %lf Grad, ist Xrad=%lf\r\n",x_deg,x_rad); cprintf("\r\n"); tempZ = x_rad; tempN = 1; sum = tempZ / tempN; a = 0; vz = 1; glied = tempZ; while(fabs(glied) > 1.0e-9){ a += 2; vz = -vz; tempZ *= xx_rad; tempN *= a * (a + 1); glied = vz * (tempZ / tempN); sum += glied; cprintf("%30lf%20.15lf\r\n",tempN,glied); }//endWhile cprintf("\r\nsin(%lfø)= %lf", xx_deg, sum); getch(); }//endFunction main() ==========
<hume sagt>Code-Tags eingefügt</hume sagt>
-
Editier bitte das ganze erstmal und mach Codetags rein. Dann kann man es leichter lesen. Ich glaube das Programm macht nicht so viel. Ein wenig (sehr umständliches) rumspielen/umrechnen mit Winkeln.
-
Leider kann ich mein Beitrag aus irgend einem Grund auch immer nicht editieren!
Es funktioniert nicht! ---> doch jetzt funktioniert es :pIn diesem Programm handelt es sich um eine Sinus Kurve wo die Werte des Hauptwertebereichs zwischen -90° < X > +90° liegen/berechnet werden!
Nur den Syntax/Quellcode zu analysieren/Erläutern fällt mir schwer!!!
Danke
-
Kann mir den keiner Helfen????
-
Es wird der Sinus von Hand per Reihenenentwicklung um 0 berechnet. Wasn Quatsch
\sin (x) = \left\sum_{i=0}^{\infty}(-1)^n\frac{x^{2n+1}}{(2n+1)!}\right.Da dies eine alternierende Leibniz-Reihe ist, kann man die gewünschte Genauigkeit am n+1-Glied erkannt werden. Ist diese kleiner gleich, der gewünschten Genauigkeit, so kann die Reihe bis n als Grenzwert für das Ergebnis genutzt werden.
Bitte im dev-forum betrachten http://www.c-plusplus.net/forum/viewtopic.php?p=418193#418193