Advertisement
vssm

MT 2017-1 - vssm

Aug 23rd, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. double absolute(double x)
  5. {
  6.     if(x >= 0)
  7.         return x;
  8.     else
  9.         return -x;
  10. }
  11.  
  12. double pot(double base, int expoente)
  13. {
  14.     double pot = 1;
  15.     int k;
  16.     for(k = 1; k <= expoente; ++k)
  17.         pot *= base;
  18.  
  19.     return pot;
  20. }
  21.  
  22. int menor(int x, int y)
  23. {
  24.     if(x <= y)
  25.         return x;
  26.     else
  27.         return y;
  28. }
  29.  
  30. int serie1()
  31. {
  32.     //double resposta = 0.785398163;
  33.     int n = 0;
  34.     double termo = 0;
  35.     double soma = 0;
  36.     do
  37.     {
  38.         termo = 4*pot(-1, n)/(2*n + 1);
  39.         soma += termo;
  40.         ++n;
  41.     }while(absolute(termo) >= 0.0001);
  42.     //na serie 1 podemos consider apenas uma precisão de 0.0001 para mostrar que ela é a menos eficiente
  43.     //visto que, mesmo nessa precisao, precisa de mais ciclos que as outras.
  44.     //**precisões maiores tornam o processo lento demais
  45.     return n;
  46. }
  47.  
  48. int serie2()
  49. {
  50.     int n = 0;
  51.     double termo = 0;
  52.     double soma = 0;
  53.     do
  54.     {
  55.         termo = 4*((double)2/((4*n +1)*(4*n + 3)));
  56.         soma += termo;
  57.         ++n;
  58.     }while(absolute(termo) >= 1e-8);
  59.  
  60.     return n;
  61. }
  62.  
  63. int serie3()
  64. {
  65.     int n = 0;
  66.     int x = 2;
  67.     double soma = 3;
  68.     double termo = 0;
  69.     do
  70.     {
  71.         termo = (pot(-1, n)*4)/((x)*(x+1)*(x+2));
  72.         soma += termo;
  73.         ++n;
  74.         x += 2;
  75.     }while(absolute(termo) >= 1e-8);
  76.  
  77.     return n;
  78. }
  79.  
  80. int main()
  81. {
  82.     int s1 = serie1();
  83.     int s2 = serie2();
  84.     int s3 = serie3();
  85.  
  86.     printf("serie 1: %ld\nserie 2: %ld\nserie 3: %ld\n", s1, s2, s3);
  87.  
  88.     int rapida = menor(s3,menor(s2,s1));
  89.     if(rapida == s3)
  90.         printf("logo vemos que a serie 3 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
  91.     else if(rapida == s2)
  92.         printf("logo vemos que a serie 2 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
  93.     else if(rapida == s1)
  94.         printf("logo vemos que a serie 1 eh a mais rapida, precisando de apenas %ld ciclos.\n" ,rapida);
  95.  
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement