Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <cmath>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- float x, k, st, f, s, r, m;
- double e;
- float t1, t2;
- do // проверка на ввод х
- {
- system("cls");
- fflush(stdin);
- cout << "Добро пожаловать в программу для вычисления функции sh(x) с точностью e." <<endl;
- cout << "Определяем х. Введите число от 1 до 12: "; t1 = scanf("%f", &x);
- }
- while ((x < 1) || (x > 12) || (t1 == 0));
- do // проверка на ввод е
- {
- system("cls");
- fflush(stdin);
- cout << "Добро пожаловать в программу для вычисления функции sh(x) с точностью e." <<endl;
- cout << "Определяем х. Введите число от 1 до 12: " << x << endl;
- cout << "Определяем е. Введите точность от 0,0001 до 0,1: "; t2 = scanf("%lf", &e);
- }
- while ((e < 0.0001) || (e > 0.1) || (t2 == 0));
- s = x;
- k = 3; // степень первого числителя равна 3
- while (1)
- {
- cout << "-------------------------------------------" << endl;
- st = 1; // числитель
- for (int i = 1; i<= k; i++)
- {st = st * x;}
- cout << "Вычисляем числитель. " << x << " в степени " << k << " = "<< st << endl;
- f = 1; // знаменатель
- for (int i = 1; i<= k; i++)
- { f = f * i; }
- cout << "Вычисляем знаменатель. Фрактал " << x << " = " << f << endl;
- m = st / f;
- s = s + (st / f); //подсчет суммы
- cout << "Сравниваем полученный элемент суммы " << st << " / " << f << " = " << m << " с точностью " << e << endl;
- cout << "Полученная сумма: " << s << endl;
- if (fabs(st/f) <= e)
- { break; }
- k = k+2; // меняем степень на каждом шаге цикла
- }
- cout << "-------------------------------------------" << endl;
- cout << "Вычисления прекращаются тогда, когда очередной элемент суммы не превышает точность " << e << endl;
- cout << "-------------------------------------------" << endl;
- r = ((exp(x)-exp(-x))/2.0); // табличная формула нахождения sh(x)
- cout << "Полученный sh(" << x << ")= " << s << endl;
- cout << "Табличное значение sh(" << x << ")= " << r << endl; // для проверки правильности работы алгоритма
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement