Синус гиперболический в С++
Функция синуса гиперболического может быть представлена в виде разложения в ряд по формуле:
$$sh\left(x \right)=x+x^{3}/3!+x^{5}/5!+x^{7}/7!+...$$
В программе ниже определено два варианта функции - т.е. функция перегружена. В первом варианте аргументом функции является переменная х, а граница ряда определяется как константа. Во втором случае количество слагаемых ряда передается вторым аргументом функции.
#include#include using namespace std; //Верхний предел суммы по умолчанию: const int N=100; //Функция с одним аргументом: double sh(double z){ int n; double s=z,q=z; for(n=1; n <= N; n++){ q*=z*z/(2*n)/(2*n+1); s+=q;} return s;} //Функция с двумя аргументами: double sh(double z,int m){ int n; double s=z,q=z; for(n=1; n <= m; n++){ q*=z*z/(2*n)/(2*n+1); s+=q;} return s;} int main(){ //Аргумент для функции: double x; //Индексная переменная и предел для суммы: int i,m=9; //Ввод аргумента: cout << "Enter x = "; cin >> x; //Значения ряда для разного числа слагаемых: for(i=1;i<=m;i++){ cout << i << " : sh(" << x << ") = " << sh(x,i) << endl;} cout << "--------------------\n"; //Верхняя граница индексной переменной ряда равна N: cout << N << ": sh(" << x << ") = " << sh(x) << endl; //Вызов встроенной функции: cout << "Test value: " << sinh(x) << endl; return 0;}