Yêu cầu:
Nhập một số c>0 (ví dụ c = 0.0001) và một số thực x rồi tính: cos(x)= 1 – x^2/2! + x^4/4! – …+(-1)^n.x^(2n)/(2n)!
Tổng được tính với n đủ lớn sao cho bất đẳng thức: |x^(2n)/(2n)!| <= c thỏa mãn
Thuật toán:
– Dùng vòng lặp for để tính biểu thức cosx.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/************************************************************ #include "stdio.h" #include "conio.h" #include "math.h" #define E 0.0001 #define PI 3.141592654 long giaithua(int N); void main() { float angle; // goc float e = 1; // sai so int n = 0; float cosx = 0; printf("\n Nhap vao so do goc (do) = "); scanf("%f", &angle); while(e > E) { e = pow(float(angle*PI/180), (2*n))/giaithua(2*n); // tinh sai so printf("\n e = %f", e); if(n%2 == 0) { cosx = cosx + e; } else { cosx = cosx - e; } n++; } printf("\n cos(%f) = %f", angle, cosx); getch(); } long giaithua(int N) { if(N == 0 || N == 1) return 1; else return N*giaithua(N-1); } |
Kết quả:
1 2 |
Nhap vao so do goc (do) = -60 cos(-60.000000) = 0.500000 |
Leave a Reply