Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Mario Rubio
- */
- #include <stdio.h>
- #include <math.h>
- #include <ctype.h>
- //Funcion encargada de realizar el factorial
- int factorial(int num){
- int fac=1;
- if(num==0) return 1;
- while(1){
- if(num==1) return fac;
- else fac=fac*num--;
- }
- return fac;
- }
- //Funcion encargada de convertir un angulo de entrada a radianes
- double to_rad(int deg){
- return ((M_PI*deg)/180);
- }
- //Funcion encargada de calcular el coseno con un precision de n sumandos
- double coseno(float rad,int sumandos){
- int i;
- double cos=0;
- for(i=0;i<=sumandos;++i){
- cos=cos+(((pow(-1,i)*pow(rad,2*i))/(factorial(2*i))));
- }
- return cos;
- }
- int main(){
- int deg; //Variable de grados
- float rad; //Variable de radianes
- int sumandos; //Variable de los sumandos del sumatorio
- char rep;
- while(1){
- //Solicita los angulos al usuario y comprueba que esten entre 0 a 360
- printf("Escriba el angulo. >");
- scanf("%d",°);
- if(deg<0||deg>=360){
- printf("El angulo introducido no es valido.");
- continue;
- }
- rad=to_rad(deg); //De angulos a radianes
- printf("%d angulos son %.2lf radianes\n\n",deg, rad);
- printf("Escriba el numero de sumandos a utilizar. >");
- scanf("%d",&sumandos); //Se pide el numero de sumandos
- //Se muestra el resultado
- printf("El coseno de %.2lf (%d grados) es de %.3lf.\n",rad,deg,coseno(rad,sumandos));
- //Se pide si se quiere repetir el proceso
- while(1){
- printf("Escriba S para repetir los calculos o N para cerrarlo. >");
- fflush(stdin);
- scanf("%c",&rep);
- rep=tolower(rep); //De mayusculas minusculas <ctype.h>
- if((rep=='n')||(rep=='s')) break;
- else continue;
- }
- if(rep=='n') break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement