Форум программистов, компьютерный форум, киберфорум
Наши страницы

if выполняется, не смотря на условие - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование пространства имен http://www.cyberforum.ru/cpp-beginners/thread794078.html
Написать программу, использующую описанные типы данных: инициализация переменных (ввод пользователя), выполнение действий (в зависимости от дальнейшего ввода пользователя). Задание: Тип данных ...
C++ Проверка. Все ли элементы массива имеют то или иное значение(всего их два) Всем доброго времени суток. Проблема в следующем. Пусть у нас есть двумерный массив. После некоторых пертубаций, в нем остаются только 0 и 9. все это происходит циклически. в цикле While(1). как... http://www.cyberforum.ru/cpp-beginners/thread794072.html
Найти определитель матрицы C++
Нужно найти определитель матрицы, НО числа чтобы были десятичные. Целые считает, а вот десятичные никак... #include "stdafx.h" #include <iostream> #include <cmath> double determ(int** Arr, int...
C++ Цикл подстчёта элементов
Здравствуйте. Помагите мне пожалучта написать цикл который подсчитает каличество элементов. Вот что у меня вышло... Попытка подсчитать количество элемнтов у которых accNum не равен 0. но что-то...
C++ Не могу прочитать данные http://www.cyberforum.ru/cpp-beginners/thread794046.html
Здравствуйте. Не могу прочитать данные после второго ввода (после enter a phrase). Объясните пожалуйста что не так, а то недавно начал изучать язык и сам не могу разобраться. Вот программа. ...
C++ рекурсия - перемещение по шахматной доске господа, есть задача на рекурсию: На шахматной доске определить поля, в которые может попасть конь за n ходов из указанной позиции. подумав, написал такой код #include "stdio.h" ... подробнее

Показать сообщение отдельно
konstantusha
0 / 0 / 0
Регистрация: 30.09.2012
Сообщений: 12

if выполняется, не смотря на условие - C++

24.02.2013, 22:30. Просмотров 339. Ответов 2
Метки (Все метки)

Нужно с помощью метода итераций уточнить корень уравнения 1.8*x^4-sin(10*x)=0 на промежутке [0.5;0.75]. Возникла проблема при проверке условия в теле функции, которая описывает метод: если последующее значение х не выходит за рамки промежутка, все равно выполняется заход в тело цикла. Объясните, пожалуйста, в чем ошибка.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream> 
#include <math.h>
 
int shagi,maxshagi;
double x_next,e,x_previous,a1,b1,a2,b2,x1;
 
using namespace std;
 
double iterations (int maxshagi, double e, double x0,int a,int b,double (*pf) (double))
{
    do
    {
                x1=x0;
        x0=pf(x0);
        std::cout << std::fixed<<"шаг №"<<shagi<<" "<<"x = "<<x0<<std::endl;
        shagi++;
        if((x0>b)||(x0<a))
        {
            cout<<"Новое значение х выходит за указанный промежуток"<<endl;
            break;
        }
    }
    while((fabs(x1-x0)>e)&&(shagi<maxshagi));
    return x1;
}
 
double uravnenie2(double x)
{
    return 1.8*x*x*x*x-sin(10*x)+x;
}
double proverka_uravnenie2(double x)
{
    return 1.8*x*x*x*x-sin(10*x);
}
 
 
void main()
{
    setlocale(LC_ALL,"rus");
        double proverka=0;
        сout<<"a2= ";
    cin>>a2;
    cout<<"b2= ";
    cin>>b2;
    cout<<"Введите точность = ";
    cin>>e;
    cout<<"Введите начальное х =";
    cin>>x_previous;
    cout<<"Введите максимальное количество шагов = ";
    cin>>maxshagi;
    
    double (*ukazfun2)(double);
    ukazfun2=uravnenie2;
    x_next=iterations(maxshagi,e,x_previous,a2,b2,ukazfun2);
    proverka=fabs(proverka_uravnenie2(x_next));
    cout<<"Уточненный корень х = "<<x_next<<endl;
    std::cout << std::fixed <<"Проверка: значение уравнения = "<< proverka << std::endl;*/
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.