Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <cmath> // библиотека для e^x
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- cout << "Программа уточняет корень уравнения e^x - 10x = 0 на отрезке [a,b] методом хорд\n";
- int a, b;
- double xPrev, xCurr, xNext, tmp; // переменные для предпредыдущего, предыдущего и текущего значения корня и буферная
- double E; // переменная для точности
- int sum = 0;
- bool isIncorrect = false;
- string input = "";
- do {
- try {
- cout << "Введите a: ";
- getline(cin, input);
- a = stoi(input);
- if (a > -1000)
- {
- isIncorrect = true;
- }
- else {
- cout << ("Количество элементов должно быть больше нуля\n");
- isIncorrect = false;
- }
- }
- catch (exception ex) {
- cout << ("Ошибка ввода\n");
- }
- } while (!isIncorrect);
- do {
- try {
- cout << "Введите b: ";
- getline(cin, input);
- b = stoi(input);
- if (b > a)
- {
- isIncorrect = true;
- }
- else {
- cout << ("b должно быть больше a\n");
- isIncorrect = false;
- }
- }
- catch (exception ex) {
- cout << ("Ошибка ввода\n");
- }
- } while (!isIncorrect);
- do {
- try {
- cout << "Введите точность: ";
- getline(cin, input);
- E = stod(input);
- if (E > 0)
- {
- isIncorrect = true;
- }
- else {
- cout << ("Точность должна быть больше нуля\n");
- isIncorrect = false;
- }
- }
- catch (exception ex) {
- cout << ("Ошибка ввода/n");
- }
- } while (!isIncorrect);
- xPrev = a;
- xCurr = b;
- xNext = xNext = xCurr - (exp(xCurr) - 10 * xCurr) * (xPrev - xCurr) / (exp(xPrev) - 10 * xPrev - exp(xCurr) + 10 * xCurr);
- do {
- tmp = xNext;
- xNext = xCurr - (exp(xCurr) - 10 * xCurr) * (xPrev - xCurr) / (exp(xPrev) - 10 * xPrev - exp(xCurr) + 10 * xCurr);
- xPrev = xCurr;
- xCurr = tmp;
- } while (abs(xNext - xCurr) > E); // условие выхода(когда разница результатов меньше заданной точности)
- cout << "Приближенное значение корня на отрезке[" << a << "," << b << "] = " << xCurr;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement