ďťż

Ładny brzuch

musze sobie poradzić z takim problemem i nie mam żadnego pomysłu jeśli ktoś wie w jaki sposób to ugryźć prosze o pomoc.



wylicz to z szeregu Taylora...
polecam to ;) Bo nie chce mi się tu przepisywać wzoru ;)
Użytkownik Atal edytował ten post 05 styczeń 2008, 12:59
Dzięki, zrobiłem już ten program tylko nie mam pojęcia czemu przy wartościach x bliskich 3,14 wychodzi niedokładnie :/ jeśli komuś chciałoby się to sprawdzić to wklejam kod programu
#include<stdio.h> #define X 7 long silnia(int n) { long sil=1; int i; for(i=1;i<=n;i++) { sil=sil*i; } return sil; } /*****************************************/ float potega(float x, int n) { int i=0; float pot=1; for(i=0;i<n;i++) { pot=pot*x; } return pot; } /*******************************************/ int znak(int n) { if(n % 2 == 0) return 1; else return (-1); } /*****************************************/ float cosinus(float x) { float cosx=0.0; int n; for(n=0;n-1<X;n++) { cosx=cosx+((float)znak(n)/(float)silnia(2*n))*(float)potega(x,2*n); /*printf("%f ", cosx+((znak(n)/(float)silnia(2*n))*(float)potega(x,2*n))); printf("%f ",(float)znak(n)); printf("%f ",(float)silnia(2*n)); printf("%f\n ",(float)potega(x,2*n));*/ } return cosx; } /************************************************/ int main(void) { float x,cosx; printf("podaj kat w rad\n"); scanf("%f",&x); if (x>3.14 && x<-3.14) { if(x>=0) { while(x>0) x=x-3.14159; } else { while(x<0) x=x+3.14159; } } cosx=cosinus(x); printf("cos(%.2f)=%.3f\n",x,cosx); return 0; }

Jeżeli mnie pamięć nie myli - 3,14 to "prawie" liczba Pi, więc cosinus powinien być >bliski< wartości -1. Raczej wartości równej -1 (bez zaokrąglania) nigdy nie osiągniesz, więc daruj sobie, jeżeli odchylenia są niewielkiego stopnia.



I jeszcze mała rada na przyszłość: rób wcięcia w kodzie, bo się pogubisz ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •