Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <iostream>;
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- double x0 = 0;
- double x1 = 0;
- double e = 1;
- bool isIncorrect;
- string inputLine = "";
- do
- {
- isIncorrect = false;
- cout << "Введите необходимую точность\n";
- getline(cin, inputLine);
- try
- {
- e = stod(inputLine);
- }
- catch (invalid_argument ex)
- {
- cerr << "Точность должна быть числом\n";
- isIncorrect = true;
- }
- catch (out_of_range ex)
- {
- cerr << "Вы ввели слишком большое число\n";
- isIncorrect = true;
- }
- if (e < 0 && !isIncorrect)
- {
- isIncorrect = true;
- cerr << "Точность должна быть больше 0\n";
- }
- } while (isIncorrect);
- do
- {
- isIncorrect = false;
- cout << "Введите первое приближение\n";
- getline(cin, inputLine);
- try
- {
- x1 = stod(inputLine);
- }
- catch (invalid_argument ex)
- {
- cerr << "Первое приближение должно быть числом\n";
- isIncorrect = true;
- }
- catch (out_of_range ex)
- {
- cerr << "Вы ввели слишком большое число\n";
- isIncorrect = true;
- }
- } while (isIncorrect);
- do
- {
- x0 = x1;
- x1 = 9.33*sin(6.977*x0) / 7.25;
- } while (abs(x0 - x1) > e);
- printf("Корень равен %10.4f", x1);
- }
Add Comment
Please, Sign In to add comment