From Round Lemur, 4 Days ago, written in C.
Embed
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int faktorijel(int n) {
  6.  
  7. int i=0;
  8. int faktorijel=1;
  9. for(i=2; i<=n; i++) {
  10.     faktorijel*=i;
  11.  
  12.  
  13. }
  14. return faktorijel;
  15.  
  16. }
  17.  
  18. int main()
  19. {
  20.     // chx - hiperbolni kosinus
  21.  
  22.  
  23.     double epsilon;
  24.     double suma=0, suma1=0, broj=0, x;
  25.     int k=0;
  26.  
  27.  
  28.  
  29.     printf("Unesite tacnost: ");
  30.     scanf("%lf", &epsilon);
  31.  
  32.     do {
  33.             printf("Unesite x: \n");
  34.         scanf("%lf", &broj);
  35.  
  36.         if(!(broj<4 && broj>-4)) {
  37.             printf("x mora biti u opsegu od -4 do 4.\n");
  38.         }
  39.  
  40.         else {
  41.             x=broj;
  42.  
  43.         }
  44.  
  45.  
  46.     } while (!(broj<4 && broj>-4));
  47.  
  48.  
  49.     // prirastaj sume, recimo neko delta x, se racuna kao suma(k+1) - suma(k),
  50.     // pri cemu k ide od 0 do beskonacnosti
  51.     // // razlika sukcesivnih(uzastopnih) vrijednossti sume je
  52.     //relativna vrijednost(greska) u merenju je
  53.     //jednaka kolicniku apsolutne greske i vrijednosti, u konkretnom
  54.     // slucaju suma(k+1)
  55.     //ODNOSNO, razlika sukcesivnih vrijednosti je u stvarnosti relativna greska(vrijednost)
  56.  
  57.     while(1) {
  58.  
  59.         suma+=  (pow(x,2*k))/faktorijel(2*k);
  60.  
  61.         suma1+=(pow(x,2*(k+1)))/faktorijel(2*(k+1));
  62.  
  63.  
  64.         if((abs(suma1-suma)/suma) <epsilon)
  65.             break;
  66.  
  67.  
  68.  
  69.  
  70.         k++;
  71.     }
  72.  
  73.         printf("\nSuma je %lf, a suma1 je %lf", suma, suma1);
  74.  
  75.  
  76.  
  77.     return 0;
  78. }
  79.