Tính cosx

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

Be the first to comment

Leave a Reply