3.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. double factorial(double x){
  5. if (x == 1){ // если x равен 1, то
  6. return 1; // вернуть 1
  7. }
  8. else { // иначе
  9. return x * factorial(x - 1); // вернуть x умноженный на факториал (x - 1)
  10. }
  11. }
  12. int main(){
  13. double e; // заданная точность
  14. double x; // искомое значение
  15. double s = 0, y = 1; // s - хранит предыдущее значение функции, y - текущее
  16. double n = 1; // переменная вычисления функции
  17. double PI = 3.141592653589; // число пи для перевода x из градусов в радианы
  18. double fact; // получает значение функции factorial()
  19. cout << "Input x: ";
  20. cin >> x; // ввод x
  21. cout << "Input epsilon: ";
  22. cin >> e; //ввод точности
  23. x = (PI/180) * x; //перевод x в радианы для правильного вычисления
  24. while (abs(s - y) > e){ // Разница между предыдущим и нынешним значением заданной функции для правильного вычисления точности.
  25. s = y; // присваиваем s значение предыдущего значения y
  26. fact = factorial(2 * n);
  27. y = y + ((pow(-1, n) * pow(x, 2*n)) / fact); // вычисление функции
  28. n++; // увеличение переменной функции
  29. }
  30. // вывод проверки и результата работы программы соответственно
  31. cout << "COS fucntion: " << cos(x) << endl;
  32. cout << "Result: " << y << endl;
  33. return 0;
  34. }