Advertisement
Guest User

С++ Лаб 5.1

a guest
May 29th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. /*1. Написать программу вычисления значения гиперболического синуса вещественного аргумента х с
  2.      заданной погрешностью eps с помощью разложения в бесконечный ряд.
  3.      Sh(х) = x + х3/3! + х5/5! + х7/7! + ...
  4.    
  5.     Предусмотреть возможность принудительного выхода, если ряд расходится.
  6.      Для этого с помощью константы задать ограничение на количество итераций.
  7.      Включите в программу файл math.h.
  8.      Написать функцию для вычисления факториала.
  9. */
  10. #include <iostream>
  11. #include <cmath>
  12. using namespace std;
  13.  
  14.  
  15. //Верхний предел суммы по умолчанию:
  16. const int N = 10;
  17. //Функция с одним аргументом:
  18.  
  19. double sh(double z)
  20. {
  21.  
  22.     double s = z, q = z;
  23.  
  24.     for (int i = 1; i <= N; i++)
  25.     {
  26.         q *= z*z / (2 * i) / (2 * i + 1);
  27.         s += q;
  28.     }
  29.     return s;
  30. }
  31.  
  32. //Функция с двумя аргументами:
  33. double sh(double z, int m)
  34. {
  35.     double s = z, q = z;
  36.  
  37.     for (int i = 1; i <= m; i++)
  38.     {
  39.         q *= z*z / (2 * i) / (2 * i + 1);
  40.         s += q;
  41.     }
  42.     return s;
  43. }
  44.  
  45.  
  46. int main()
  47. {
  48.     setlocale(LC_ALL, "");
  49.  
  50.     //Аргумент для функции:
  51.     double x;
  52.     //Индексная переменная и предел для суммы:
  53.     int i, m = 15;
  54.     //Ввод аргумента:
  55.     cout << "Введите  x = ";
  56.     cin >> x;
  57.     //Значения ряда для разного числа слагаемых:
  58.     for (i = 1; i <= m; i++)
  59.     {
  60.         if (i > N)
  61.         {
  62.             break;
  63.         }
  64.  
  65.         cout << i << " : sh(" << x << ") = " << sh(x, i) << endl;
  66.     }
  67.     cout << "--------------------\n";
  68.  
  69.     //Верхняя граница индексной переменной ряда равна N:
  70.     cout << N << ": sh(" << x << ") = " << sh(x) << endl;
  71.     //Вызов встроенной функции:
  72.     cout << "Тестовое значение : " << sinh(x) << endl;
  73.  
  74.  
  75.     system("pause");
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement