/*
 * Arquivo: q3.c
 * -------------------
 * Este programa é uma solução da Questao 3 da primeira prova. 
 */
#include <stdio.h>
#include "genlib.h"
#include "simpio.h"

#include <math.h>

double cos_aprox(double x, int n);

/* Programa teste. */

main()
{
    int n;
    double x;

    printf("n = ");
    n = GetInteger();
    printf("x = ");
    x = GetReal();
    printf("cos %g (%d parcelas) = %g [math.h: cos %g = %g]\n",
	   x, n, cos_aprox(x, n), x, cos(x));
}

/* A implementacao da funcao que se pedia. */

double cos_aprox(double x, int n)
{
    double soma = 1, termo = 1;
    int k;
    for (k = 1; k <= n; k++) {
	termo *= (-1) * x * x / (2 * k * (2 * k - 1));
	soma += termo;
    }
    return soma;
}
