Guest User

Untitled

a guest
Feb 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. /* Projekt nr 1.9, autor - Adamowicz Pawel grupa 1I2. Program do obliczania i porownania wartosci funkcji cos(x)
  2. z rozwiniecia szeregu a takze z funkcji bibliotecznej*/
  3.  
  4. #include <stdio.h>
  5. #include <math.h>
  6.  
  7. /* ###### FUNKCJA DO LICZENIA SILNII ###### */
  8.  
  9. long double silnia(int i)
  10. {
  11. long double silnia;
  12. int c;
  13. silnia=1;
  14. for(c=2;c<=i;c++)
  15. {
  16. silnia=silnia*c;
  17. }
  18. return silnia;
  19. }
  20.  
  21. /* ###### FUNKCJA DO LICZENIA WARTOSCI Z ROZWINIECIA SZEREGU ###### */
  22.  
  23. double cosx(double x, int n)
  24. {
  25. int i;
  26. double wynik = 1;
  27. for(i=1;i<=n;i++)
  28. {
  29. wynik = wynik + (pow(-1,i)/silnia(2*i))*pow(x,2*i);
  30. }
  31. return wynik;
  32. }
  33.  
  34. /* ###### FUNKCJA GLOWNA ###### */
  35.  
  36. int main()
  37. {
  38. double kat, wynik, blad;
  39. int dokl;
  40. printf("\n\nProjekt nr 1.9, autor - Adamowicz Pawel grupa 1I2*. Program do obliczania i porownania wartosci funkcji cos(x) z rozwiniecia szeregu a takze z funkcji bibliotecznej\n\n");
  41. printf("Podaj dokladnosc (w postaci liczby naturalnej>0), z jaka chcesz obliczyc wartosc funkcji\n");
  42.  
  43. scanf("%d", &dokl);
  44.  
  45. while(dokl<=0) /*Co, jesli podana dokladnosc <=0 */
  46.  
  47. {
  48. printf("Niepoprawna wartosc, wprowadz ponownie:\n");
  49. scanf("%d", &dokl);
  50. }
  51.  
  52. printf("\nPodaj kat, dla jakiego chcesz obliczyc wartosc cosinusa (w stopniach)\n");
  53. scanf("%lf", &kat);
  54.  
  55. kat = fabs(kat); /*Pobranie wartosc bezwzglednej z x*/
  56. kat = fmod(kat,360); /*Sprowadzenie kata do wartosci <-360,360>*/
  57. kat = kat*(3.142/180); /*Zamiana stopni na radiany; przyjecie wartosci pi jako 3.142*/
  58.  
  59. wynik=cosx(kat, dokl); /*Obliczenie wyniku w zaleznosci od podanych wartosci*/
  60.  
  61. printf("\nObliczona wartosc z rozwiniecia szeregu to: %f\n\n", wynik); /*Wyswietlenie wynikow*/
  62. printf("Obliczona wartosc korzystajac z funkcji bibliotecznej wynosi: %f\n\n", cos(kat));
  63.  
  64. blad = ((wynik-cos(kat))/cos(kat))*100;
  65. blad = fabs(blad);
  66.  
  67. printf("Zatem wartosc bledu wzglednego w przyblizeniu wynosi: %f %%\n", blad);
  68. return 0;
  69. }
Add Comment
Please, Sign In to add comment