Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. // ConsoleApplication1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #pragma warning (disable: 4996)
  5.  
  6. #include "stdafx.h"
  7. #include <math.h>
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. FILE *fw;
  12. double sz(double x, double delta, int m, char *przyczyna, int *ls);
  13.  
  14. int _tmain(int argc, _TCHAR* argv[])
  15. {
  16. double a, b, a1, b1, n, p, x, y, x1, delta, z;
  17.  
  18. int m, ls;//m-maksymalna liczba wyrazow szeregu ls-liczba sumowanych wyrazow szeregu
  19. char przyczyna;// przyczyna zakonczenia funkcji
  20.  
  21.  
  22. printf("Podaj przedzial [a,b], ilosc przedzialow n, maksymalna liczba wyrazow szeregu m oraz dokladnosc:\n");
  23. if (scanf("%lf %lf %lf %d %lf", &a, &b, &n, &m, &delta) != 5)
  24. {
  25. printf("Blad danych\n");
  26. system("pause");
  27. exit(1);
  28.  
  29. }
  30. if (!(fw = fopen("wyniki.txt", "w")))
  31. {
  32. printf("Blad otwarcia zbioru\n");
  33. exit(2);
  34. }
  35.  
  36. if (a > b)
  37. {
  38. a1 = b;
  39. b1 = a;
  40.  
  41. }
  42. else if (a == b)
  43. {
  44. printf("Blad- zle podany przedzial\n");
  45. exit(3);
  46. }
  47. else
  48. {
  49. a1 = a;
  50. b1 = b;
  51.  
  52. }
  53.  
  54. if (n <= 0)
  55. {
  56. printf("Blad- ilosc przedzialow <=0\n");
  57. exit(4);
  58. }
  59. if (fabs(a1) > 1 || fabs(b1) > 1)
  60.  
  61. {
  62. printf("Blad- wykorcznie poza dziezine");
  63. exit(5);
  64. }
  65.  
  66. p = b1 - a1;
  67.  
  68.  
  69.  
  70. for (x = a1; x <= b1 + 0.5*(p / n); x += (p / (n)))
  71. {
  72.  
  73.  
  74. y = sz(x, delta, m, &przyczyna, &ls);
  75. z = pow((1 - x), (-1. / 4));
  76. printf("x=%10.4lf\ty(x)=%10.5lf\t\t(1-x)^(-1/4)=%10.5lf\tDokladnosc osiagnieta:=%c\tls=%d\n", x, y, z, przyczyna, ls);
  77. printf("---------------------------------------------------------------------------\n");
  78. fprintf(fw, "x=%10.4lf\ty(x)=%10.5lf\t\tcos(x+c)=%10.5lf\tDokladnosc osiagnieta:=%c\tls=%d\n", x, y, z, przyczyna, ls);
  79. fprintf(fw, "---------------------------------------------------------------------------------------\n");
  80.  
  81. }
  82. fclose(fw);
  83.  
  84. system("pause");
  85.  
  86. return 0;
  87. }
  88.  
  89.  
  90.  
  91. double sz(double x, double delta, int m, char *przyczyna, int *ls)
  92. {
  93.  
  94.  
  95. double s = 0, d;
  96. int n;
  97. n = 1;
  98. d = 0;
  99. s = 0;
  100. int i;
  101. i = 1;
  102. do {
  103.  
  104. s += d;
  105. d = d*(i*x) / (4 * i);
  106. s += d;
  107. i += 4;
  108.  
  109. n++;
  110. } while ((fabs(d) >= delta) && (n < m));
  111.  
  112.  
  113.  
  114.  
  115. if ((fabs(d) <= delta))
  116. *przyczyna = 'T';
  117. else
  118. *przyczyna = 'N';
  119.  
  120. *ls = n;
  121. return s;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement