Tja da ich mitlerweile schon die 3. Anfrage zu dem Problem hatte obwohl dies recht leicht ist aber auch schnell tricky werden kann, poste ich hier mal einen Beispielprogramm in C bzw C++ (wenn man die Typecasts entfernt gehts auch in Standart C)
#include #include int fak(int f) { if(f<=0) return 1; else return (f * fak(f-1)); } double mein_sin (double winkel_bogenmass, double summe = 0, int iteration = 0) { // Taylorreihe: x - x^3/3! + x^5/5! + ... +(-1)^(n+1)*x^(2*n+1)/(2*n+1)! double term = (pow(winkel_bogenmass, (2 * iteration + 1) )/fak(2 * iteration + 1)); if( fabs(term) >= 0.00001 ) return mein_sin(winkel_bogenmass, (summe + pow(static_cast(-1), iteration) * term), (iteration + 1)); else return ( summe + pow(static_cast(-1), iteration)*term); } int main () { double winkel_grd, winkel_bog; double berechnetersin, echtersin; // Merke input erfolgt im Gradmaß somit muss es ins Bogenmaß umgeformt werden mit der formel x = a/180 · p wobei x deinem Gradmass entspricht // Um das ganze für C Spezifisch umzuformen entweder die Konstate M_PI nutzen oder direkt angeben, sähe dann folgendermaßen aus // Wenn man M_PI benutzt kanns sein dass man das dem Compiler mittelein muss er solle doch bitte auch die Mathe Konstaten laden/einbinden // bogenmass = gradmass/180*3.1415926535; // bogenmass = gradmass/180*M_PI; // Die umrechnung in die andere richtung wäre dann // a = (x · 180)/pi sprich // gradmass = (bogenmass*180)/3.1415926535; // gradmass = (bogenmass*180)/M_PI; // Wie gesagt Variablen in diesem fall müssen als Bogenmaß übergeben werden sonst kommt nur Grütze raus! // In Anlehnung an den Taschenrechner // deg = gradmass // rad = bogenmass printf("Geben sie eine reelle Zahl ein\n"); scanf("%lf", &winkel_grd); // Umrechnen in Bogenmaß winkel_bog = winkel_grd/180*3.1415926535; berechnetersin = mein_sin(winkel_bog); echtersin = sin(winkel_bog); printf("mein sinus: %lf, echter sinus:%lf", berechnetersin, echtersin); return 0; }
ich hoffe das hilf einigen weiter
MfG Frank
Wie hoch möchtest du denn? Im Zweifel machste halt nen long draus.
Ist integer für die Fakultät nicht ein wenig klein? 🙂