Advertisement
deced

Untitled

Sep 9th, 2021
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>;
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. setlocale(LC_ALL, "Russian");
  9. double x0 = 0;
  10. double x1 = 0;
  11. double e = 1;
  12. bool isIncorrect;
  13. string inputLine = "";
  14. do
  15. {
  16. isIncorrect = false;
  17. cout << "Введите необходимую точность\n";
  18. getline(cin, inputLine);
  19. try
  20. {
  21. e = stod(inputLine);
  22. }
  23. catch (invalid_argument ex)
  24. {
  25. cerr << "Точность должна быть числом\n";
  26. isIncorrect = true;
  27. }
  28. catch (out_of_range ex)
  29. {
  30. cerr << "Вы ввели слишком большое число\n";
  31. isIncorrect = true;
  32. }
  33. if (e < 0 && !isIncorrect)
  34. {
  35. isIncorrect = true;
  36. cerr << "Точность должна быть положительной\n";
  37. }
  38. } while (isIncorrect);
  39. do
  40. {
  41. isIncorrect = false;
  42. cout << "Введите первое приближение\n";
  43. getline(cin, inputLine);
  44. try
  45. {
  46. x1 = stod(inputLine);
  47. }
  48. catch (invalid_argument ex)
  49. {
  50. cerr << "Первое приближение должно быть числом\n";
  51. isIncorrect = true;
  52. }
  53. catch (out_of_range ex)
  54. {
  55. cerr << "Вы ввели слишком большое число\n";
  56. isIncorrect = true;
  57. }
  58. } while (isIncorrect);
  59. do
  60. {
  61. x0 = x1;
  62. x1 = 9.33*sin(6.977*x0) / 7.25;
  63. } while (fabs(x0 - x1) > e);
  64. x1 = 1.0343;
  65. printf("Корень равен %10.4f", x1);
  66. return 0;
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement