Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.12.2020
Сообщений: 81
1

Как найти ошибку в коде С++

07.04.2021, 19:37. Показов 521. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код. Почему в нём при сравнивании погрешности ставится знак >=. Хотя в блок схеме и по логике должно быть <=, но если поставить знак меньше в код то ответы не совподают( метод Ньюона)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
double x0, //начальное приближение
 xs, //решение на предыдущем шаге
 del, //погрешность на текущем шаге
 del0, //погрешность на предыдущем шаге
 y, //значение функции
 y1; //значение первой производной
 //проверка существования корня
 if (fx(a) * fx(b) > 0)//если функция на границе одного знака, корней нет
 return false;//выход
 x0 = 1 * (a + b); //определяем начальное приближение
 iters = 0; //обнулили счетчик итераций
 xs = x0; //присвоили начальное приближение
 del0 = fabs(fx(x0)); //присвоили значение в точке начального приближения
 cout << endl;
 cout << "Итерация №" << iters << ". x = " << xs << endl;
 do //цикл поиска корня
{
 iters++;//увеличили счетчик итераций
 y = fx(xs); //вычислили функцию
 y1 = fx1(xs); //вычислили производную
 xn = xs - y / y1; //вычисляем текущее решение
 cout << "Итерация №" << iters << ". x = " << xn << endl;
 del = fabs(xn - xs); //погрешность
 if (del >= E) //сравниваем с точностью
{
 if (del > del0) //погрешность возросла
{
 return false; //выход
}
 xs = xn;//присвоили текущее решение
 del0 = del;//запомнили погрешность
}
}
 while (del >= E);//пока не будет достигнута заданная точность
 return true;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2021, 19:37
Ответы с готовыми решениями:

Как найти ошибку в коде?
У меня при выводе решения выходит ответ 15,706, а должен выходить 15,708.У меня неправильное число...

Как найти ошибку в коде?
Всем привет! Делаю сервер для онлайн-игры на Java, консольное приложение. Он уже состоит из...

Как найти ошибку в коде вычисления выражения
Private Sub Command1_Click() Dim m As Single Dim c As Single Dim t As Single Dim F As Single m...

Глючит программа. Как найти ошибку в коде?
Среда разработки VS 2012. Я написал программу. Пишу и дома и на работе. И там и там VS 2012,...

2
440 / 283 / 183
Регистрация: 23.06.2018
Сообщений: 651
08.04.2021, 00:52 2
Я не уверен о каком именно сравнивании погрешности речь, но все которые я вижу в коде - правильные.
Цитата Сообщение от sashami Посмотреть сообщение
while (del >= E);//пока не будет достигнута заданная точность
Тут из комментария видно, что всё правильно, работает пока погрешность больше требуемой точности.
Цитата Сообщение от sashami Посмотреть сообщение
if (del >= E) //сравниваем с точностью
Как и здесь, потому что действия внутри не имеют смысла если нужная точность достигнута.
Цитата Сообщение от sashami Посмотреть сообщение
if (del > del0) //погрешность возросла
И наконец-то... Честно говоря я не помню, всегда ли это работает, но разворот знака точно сломает алгоритм.
0
0 / 0 / 0
Регистрация: 05.12.2020
Сообщений: 81
08.04.2021, 19:49  [ТС] 3
Bleach163, просто в блок схеме указано del <= E
0
08.04.2021, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2021, 19:49
Помогаю со студенческими работами здесь

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два...

Найти ошибку в коде или как поменять вид внутренней регистрации?
и снова здравствуйте! написал регистрацию для сайта который на Joomla &lt;html&gt; &lt;head&gt;...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; ...

Помогите найти ошибку в коде. Найти сумму ряда
Добрый день, помогите найти ошибку. Задача: Найти сумму ряда, вычисление ввести до тех пор пока...

Найти ошибку в коде
У меня стоит задача, в массиве из 10 чисел, который задается двумя способами, выполнить два способа...

Найти ошибку в коде
#include &quot;stdafx.h&quot; #include &lt;string.h&gt; #include &lt;ctype.h&gt; #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru