fork(1) download
  1. #include <iostream>
  2. #include <math.h>
  3. int main()
  4. {
  5. double E, x, dife, left, right = 0.0, u = 1.0 ; int n = 0;//Описание переменных для хранения входных данных.//
  6. scanf("%lf %lf", &x, &E); //Чтение из стандартного потока ввода.//
  7. left = ( pow (M_E , x) + pow (M_E , -x) ) / 2; //Расчет левой части равенства.
  8. if (E != 0) //Критерий, при котором программа может быть выполнена//
  9. {
  10. do //Цикл программы (для подсчета правой части равенства).
  11. {
  12. n ++;
  13. right += u ;
  14. u *= x * x / ( (2 * n - 1) * 2 * n );
  15. dife = left - right; //Вычисление разности значения левой части и правой части//
  16. }
  17. while(dife > fabs(E)); //Конечный критерий, при котором цикл останавливается//
  18. //Вывод окончательных результатов на экран//
  19. printf("Левая часть равна = %.10lf \nПравая часть равна = %.10lf \n",left,right);
  20. printf("После n=%d исследуемое выражение отличается от левой части менее, чем на %.10lf, ",n,fabs(E));
  21. printf("а именно на %.10lf \n",fabs(dife));
  22. }
  23. else
  24. { //Вывод оповещения о неправильном вводе данных (при несоответствии начальному критерию).//
  25. if (fabs(E) == 0)
  26. {
  27. printf("Погрешность равна 0, тогда правая часть стремится к левой %.10lf (n=бесконечность)",left);
  28. }
  29. }
  30. return 0;
  31. }
Success #stdin #stdout 0s 3344KB
stdin
-5.77 -0.000545
6 0
11.33 0.0000314
3 0.00005
stdout
Левая часть равна = 160.2704262024 
Правая часть равна = 160.2703734968 
После n=11 исследуемое выражение отличается от левой части менее, чем на 0.0005450000, а именно на 0.0000527056