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:
/************************************************************ * Author: VNCODING * History * 2014/04/02 first create VNCODING *************************************************************/ #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ả:
Nhap vao so do goc (do) = -60 cos(-60.000000) = 0.500000
Leave a Reply
You must be logged in to post a comment.