Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. double sqr3(double a, double eps);
  7. double sqr3_appr(double a, double eps);
  8.  
  9. double our_sin(double x, double eps);
  10. double our_sin_appr(double x, double eps);
  11. void operate_choise(int x);
  12.  
  13. int main()
  14. {
  15. int i;
  16. while(true){
  17. cout << "Выберите номер варианта:\n"
  18. " 0. Выход\n"
  19. " 1. Вычислить кубический корень з выводом приближенностей\n"
  20. " 2. Вычислить корень с помомощью созданной программы\n"
  21. " 3. Вычислить кубический корень стандартным способом\n"
  22. " 4. Вычислить синус с выводом приближенностей\n"
  23. " 5. Вычислить синус с помощью созданной программы\n"
  24. " 6. Вычислить синус стандартным способом\n"
  25. "Ваш выбор\n";
  26. cin >> i;
  27. if(i == 0){
  28. break;
  29. }
  30. else{
  31. operate_choise(i);
  32. }
  33. }
  34.  
  35. return 0;
  36. }
  37.  
  38. void operate_choise(int i){
  39. double x, eps;
  40. cout << "Введите x";
  41. cin >> x;
  42. cout << "Введите eps";
  43. cin >> eps;
  44. switch (i) {
  45. case 1:
  46. sqr3_appr(x,eps);
  47. break;
  48. case 2:
  49. cout << "Значение кубического корня из" << x << " = " << sqr3(x,eps) << "\n";
  50. break;
  51. case 3:
  52. cout << "Стандартное значение кубического корня" << x << " = " << pow(x,1.0/3) << "\n";
  53. break;
  54. case 4:
  55. our_sin_appr(x,eps);
  56. break;
  57. case 5:
  58. cout << "Значение синуса для " << x << " = " << our_sin(x,eps) << "\n";
  59. break;
  60. case 6:
  61. cout << "Стандартное значение синуса для " << x << " = " << sin(x) << "\n";
  62. break;
  63. }
  64. }
  65. double sqr3(double a, double eps){
  66. double xOld, xNew = a;
  67. do{
  68. xOld = xNew;
  69. if(xOld == 0){
  70. break;
  71. }
  72. xNew = xOld - (xOld * xOld - a) / (3 * xOld * xOld);
  73. }
  74. while(abs(xNew - xOld) > eps);
  75. return xNew;
  76. }
  77. double sqr3_appr(double a, double eps){
  78. cout << "Кубический корень из " << a << "\n";
  79. cout << "Последовательная приближенность:\n";
  80. double xOld, xNew = a;
  81. do{
  82. xOld = xNew;
  83. if(xOld == 0){
  84. break;
  85. }
  86. xNew = xOld - (xOld * xOld * xOld-a)/(3.0*xOld*xOld);
  87. cout << xNew << "\n";
  88. }
  89. while(abs(xNew-xOld) > eps);
  90. return xNew;
  91. }
  92. double our_sin(double x, double eps){
  93. int i=1;
  94. double u = x, result = u;
  95. while(abs(u) > eps){
  96. i++;
  97. u = -u * x * x / (2 * i - 2) / (2 * i - 1);
  98. result += u;
  99. }
  100. return result;
  101. }
  102. double our_sin_appr(double x, double eps){
  103. int i=1;
  104. double u = x, result = u;
  105. while(abs(u) > eps){
  106. i++;
  107. u = -u * x * x / (2 * i - 2) / (2 * i - 1);
  108. result += u;
  109. cout << result << "\n";
  110. }
  111. return result;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement