Advertisement
weldisalves

Lista 07 - exercício 08

Aug 11th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAX 10
  3. #define PI 3,14159265358979
  4.  
  5. /* 8. Sem usar math.h desenvolva um programa para calcular o valor de funções trigonométricas. Ofereça
  6. para o usuário um menu com as opções:
  7. -----------------------------------
  8. Escolha a função trigonométrica:
  9. 1 – seno
  10. 2 – cosseno
  11. 3 – tangente
  12. -----------------------------------
  13. Use as Séries de Taylor para realizar os cálculos do seno e cosseno. Solicite ao usuário o valor do
  14. ângulo em graus. Observe que as Séries de Taylor trabalham com os ângulos em radianos. A
  15. quantidade de interações deve ser determinada por uma constante (#define)
  16. Faça uma função para exibir o menu, e mais 3 funções, uma para cada operação. Cada uma destas 3
  17. funções deverá receber o ângulo (em radianos) e retornar o resultado da função trigonométrica.
  18. Faça também uma função para converter um ângulo de graus para radianos. A função para calcular a
  19. tangente deve usar as funções seno e cosseno já construídas. */
  20.  
  21. int menu()
  22. {
  23.     int opcao;
  24.  
  25.     printf("\n MENU\n");
  26.     printf("\n 1 - Seno");
  27.     printf("\n 2 - Cosseno");
  28.     printf("\n 3 - Tangente");
  29.     printf("\n Digite a opcao escolhida: ");
  30.     scanf("%d",&opcao);
  31.  
  32.     return opcao;
  33. }
  34.  
  35. float seno(float angulo)
  36. {
  37.     int i,j,exp=3;
  38.     float senoFinal=angulo,potencia=angulo,fatorial=1;
  39.  
  40.     for(i=0;i<MAX;i++,exp+=2)
  41.     {
  42.  
  43.     if(i%2==0)
  44.     {
  45.         for(j=0;j<exp;j++)
  46.         {
  47.             potencia *=potencia;
  48.         }
  49.         for(j=exp;j>0;j--)
  50.         {
  51.             fatorial*=j;
  52.         }
  53.  
  54.         senoFinal -= (potencia/fatorial);
  55.     }else{
  56.         for(j=0;j<exp;j++)
  57.         {
  58.             potencia *=potencia;
  59.         }
  60.         for(j=exp;j>0;j--)
  61.         {
  62.             fatorial*=j;
  63.         }
  64.  
  65.         senoFinal += (potencia/fatorial);
  66.         }
  67.     }
  68.  
  69.     return senoFinal;
  70. }
  71.  
  72. float cosseno(float angulo)
  73. {
  74.     int i,j,exp=2;
  75.     float cossenoFinal=1,fatorial=1,potencia=angulo;
  76.  
  77.     for(i=0;i<MAX;i++,exp+=2)
  78.     {
  79.         if(i%2==0)
  80.         {
  81.             for(j=0;j<exp;j++)
  82.             {
  83.                 potencia*=potencia;
  84.             }
  85.  
  86.             for(j=exp;j>0;j--)
  87.             {
  88.                 fatorial*=j;
  89.             }
  90.  
  91.             cossenoFinal-=(potencia/fatorial);
  92.         }else{
  93.             for(j=0;j<exp;j++)
  94.             {
  95.                 potencia*=potencia;
  96.             }
  97.  
  98.             for(j=exp;j>0;j--)
  99.             {
  100.                 fatorial*=j;
  101.             }
  102.  
  103.             cossenoFinal+=(potencia/fatorial);
  104.             }
  105.     }
  106.     return cossenoFinal;
  107. }
  108.  
  109. float tangente(float angulo)
  110. {
  111.     float tangenteFinal;
  112.  
  113.     tangenteFinal=(seno(angulo)/cosseno(angulo));
  114.  
  115.     return tangenteFinal;
  116.  
  117. }
  118.  
  119. float converteAngulo(float angulo)
  120. {
  121.     angulo = (angulo/180)*PI;
  122.     return angulo;
  123. }
  124.  
  125. int main()
  126. {
  127.     float angulo;
  128.  
  129.     printf("\n Digite o angulo: ");
  130.     scanf("%f",&angulo);
  131.  
  132.     angulo=converteAngulo(angulo);
  133.  
  134.     switch(menu())
  135.     {
  136.         case 1: printf("\n Seno: %f",seno(angulo));
  137.                 break;
  138.  
  139.         case 2: printf("\n Cosseno: %f",cosseno(angulo));
  140.                 break;
  141.  
  142.         case 3: printf("\n Tangente: %f",tangente(angulo));
  143.                 break;
  144.  
  145.         default : printf("\n Opcao incorreta!!!");
  146.     }
  147.  
  148.     return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement