Advertisement
Guest User

szereg

a guest
Jul 1st, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     double x,a,b,dx,y,epsilon;
  7.     int M,i,d;
  8.  
  9.     double szereg(double x, double epsilon, int M, int*ilosc_wyrazow, int*dokladnosc);
  10.  
  11.     printf("Podaj wartosc poczatkowa a: \n");
  12.     scanf("%lf", &a);
  13.     printf("Podaj wartosc koncowa b: \n");
  14.     scanf("%lf", &b);
  15.     printf("Podaj wartosc kroku dx: \n");
  16.     scanf("%lf", &dx);
  17.     printf("Podaj wartosc epsilona: \n");
  18.     scanf("%lf", &epsilon);
  19.     printf("Podaj MAX  M: \n");
  20.     scanf("%d", &M);
  21.  
  22.     b=b+0,5*dx;
  23.  
  24.     for(x=a; x<=b; x+=dx)
  25.     {
  26.         y=szereg(x,epsilon,M,&i,&d);
  27.         printf("\n X: %lf \n Suma szeregu: %lf \n Wartosc funkcji: %lf \n Ilosc wyrazow: %d \n Czy osiagnieto dokladnosc: %d \n", x,y,(1/((1+x)*(1+x))),i,d);
  28.     }
  29.     system("Pause");
  30. }
  31.  
  32. double szereg(double x, double epsilon, int M, int*ilosc_wyrazow, int*dokladnosc)
  33. {
  34.     double suma_szeregu, wyraz;
  35.     int suma_wyrazow;
  36.  
  37.     suma_wyrazow=1;
  38.     suma_szeregu=1;
  39.     wyraz=1;
  40.     *dokladnosc=1;
  41.  
  42.     do
  43.     {
  44.         suma_wyrazow+=1;
  45.         wyraz=wyraz*(-(1+x)*(1+x));
  46.         suma_szeregu+=wyraz;
  47.  
  48.         if(suma_szeregu>M)
  49.         {
  50.             *dokladnosc=0;
  51.             break;
  52.         }
  53.     }
  54.     while (fabs(wyraz)>epsilon);
  55.     *ilosc_wyrazow=suma_wyrazow;
  56.  
  57.     return suma_szeregu;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement