Advertisement
Sanlover

Untitled

May 17th, 2022
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. double partA(const double& x, const size_t& N)
  5. {
  6. double summary = x;
  7. double numerator = 1, denominator = 1;
  8. double xScale = 1;
  9. int scale = 2;
  10. for (size_t i = 1; i < N; i++)
  11. {
  12. xScale *= -x;
  13. numerator *= (scale - 1);
  14. denominator *= scale;
  15. const double temp = numerator / denominator * xScale;
  16. summary += temp;
  17. scale += 2;
  18. }
  19. return summary;
  20. }
  21.  
  22. pair<double, size_t> partB(const double& x, const size_t& N, const double& e)
  23. {
  24. double summary = 0;
  25. if (abs(x) > abs(e))
  26. {
  27. summary += x;
  28. }
  29.  
  30. double numerator = 1, denominator = 1;
  31. double xScale = 1;
  32. int scale = 2;
  33. size_t amount = 0;
  34. for (size_t i = 1; i < N; i++)
  35. {
  36. xScale *= -x;
  37. numerator *= (scale - 1);
  38. denominator *= scale;
  39. const double temp = numerator / denominator * xScale;
  40. if (abs(temp) > abs(e))
  41. {
  42. summary += temp;
  43. amount++;
  44. }
  45. scale += 2;
  46. }
  47. return pair<double, size_t>(summary, amount);
  48. }
  49.  
  50. int main()
  51. {
  52. // Part1
  53. int nArraized[10];
  54. int N = 0;
  55. double e, x;
  56. cout << "Enter N, using 10 numbers: ";
  57. for (size_t i = 0; i < 10; i++)
  58. {
  59. cin >> nArraized[i];
  60. N += nArraized[i];
  61. }
  62. if (N <= 0)
  63. {
  64. cout << "N <= 0";
  65. return 0;
  66. }
  67.  
  68. cout << "Enter x: ";
  69. cin >> x;
  70.  
  71. cout << endl << "Result of A task is " << partA(x, N);
  72.  
  73. // part 2
  74. double eps[10];
  75. cout << endl << "Enter 10 eps: ";
  76. for (size_t i = 0; i < 10; i++)
  77. {
  78. cout << endl << "[" << i << "]: ";
  79. cin >> eps[i];
  80. pair<double, size_t> response = partB(x, N, eps[i]);
  81. cout << endl << "Result for this eps is summary = " << response.first << " with amount = " << response.second <<
  82. endl;
  83. }
  84.  
  85. // part 3
  86. double compareWith = partA(x, N);
  87. double compareTo = 1.0 / sqrt(1 + x);
  88.  
  89. cout << "Absolute difference between 1/sqrt(1+x) and row is: " << abs(compareWith - compareTo);
  90. return 0;
  91. }
  92.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement