12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #include <iostream>
- #include <cmath>
- using namespace std;
- double factorial(double x){
- if (x == 1){ // если x равен 1, то
- return 1; // вернуть 1
- }
- else { // иначе
- return x * factorial(x - 1); // вернуть x умноженный на факториал (x - 1)
- }
- }
- int main(){
- double e; // заданная точность
- double x; // искомое значение
- double s = 0, y = 1; // s - хранит предыдущее значение функции, y - текущее
- double n = 1; // переменная вычисления функции
- double PI = 3.141592653589; // число пи для перевода x из градусов в радианы
- double fact; // получает значение функции factorial()
- cout << "Input x: ";
- cin >> x; // ввод x
- cout << "Input epsilon: ";
- cin >> e; //ввод точности
- x = (PI/180) * x; //перевод x в радианы для правильного вычисления
- while (abs(s - y) > e){ // Разница между предыдущим и нынешним значением заданной функции для правильного вычисления точности.
- s = y; // присваиваем s значение предыдущего значения y
- fact = factorial(2 * n);
- y = y + ((pow(-1, n) * pow(x, 2*n)) / fact); // вычисление функции
- n++; // увеличение переменной функции
- }
- // вывод проверки и результата работы программы соответственно
- cout << "COS fucntion: " << cos(x) << endl;
- cout << "Result: " << y << endl;
-
- return 0;
- }
|