Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Yarik199
2 / 2 / 0
Регистрация: 01.11.2013
Сообщений: 154
Завершенные тесты: 2
#1

Помогите найти ошибку в решении биквадратного уравнения - C++

25.07.2014, 11:15. Просмотров 388. Ответов 4
Метки нет (Все метки)

Здравствуйте,написал код,проблема в том,если выполняется строка 31,то и всегда будет выполнятся строка под номером 39,как это исправить? писал по алгоритму,должно быть все правильно. Программа работает хорошо,только выводит на экран пару лишних иксов. Для примера можно взять 4(x^4)- 5(x^2)+1=0. Ответ равен 1, -1, 0.5, -0.5;
у меня выбивает следующие: x1=1; x2=-1; x3=0.5; x4=-0.5; x1=-1; x2=1; - в конце еще два лишних икса.

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
#include <iostream>
#include <math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) 
{
    cout<<"25-07-2014"<<endl;
    cout<<"Bi-kwadratowe rownanie:)"<<endl;
    double a=!0, b = 0, c = 0, d = 0, y1 = 0, y2 = 0, x1 = 0, x2 = 0, x3 = 0, x4 = 0;
    cout<<"a=";
    cin>>a;
    cout<<"b=";
    cin>>b;
    cout<<"c=";
    cin>>c;
    d=b*b-4*a*c;
    if(d<0)
    {
        cout<<"Dzialanie niewykonane"<<endl;
    }
    else
    {
     y1=(-b+sqrt(d))/(2*a); 
     y2=(-b-sqrt(d))/(2*a); 
    }
    if(y1<0 && y2<0)
    {
    cout<<"Dzialanie niewykonane"<<endl;    
    }
    else if(y1>=0 && y2>=0)
    {
    x1=sqrt(y1);
    x2=-x1;
    x3=sqrt(y2);
    x4=-x3;
    cout<<"x1="<<x1<<" "<<"x2="<<x2<<" "<<"x3="<<x3<<" "<<"x4="<<x4<<endl;
    }
    else if(y1>=0)
    {
        x1=sqrt(y1);
        x2=-x1;
    }
        else
    {
        x1=sqrt(y2);
        x2=-x1;
    }
    cout<<"x1="<<x1<<" "<<"x2="<<x2<<endl;
    system("Pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2014, 11:15     Помогите найти ошибку в решении биквадратного уравнения
Посмотрите здесь:

Найти корни биквадратного уравнения - C++
Найти действительные корни биквадратного уравнения ax^4+bx^2+c=0 Входные данные Даны числа a, b и c Выходные данные Вывести...

Найти корни биквадратного уравнения - C++
а) Найти корни биквадратного уравнения Ах4+Вх2+С=0.

Найти действительные корни биквадратного уравнения - C++
Найти действительные корни биквадратного уравнения ax^4+bx^2+c=0. На входе коэффициенты a, b, c. На выходе действительные корни в порядке...

Найти все действительные решения данного биквадратного уравнения - C++
Найти все действительные решения данного биквадратного уравнения. Именуйте темы осмысленно! Название темы должно максимально полно...

найти ошибку в решении задачи! - C++
Условие: Дано натуральное число n. Вычислить: 1 + 2 + 4 + 8 + … + 2n. не могу понять,как в цикле фо задать так,что бы в формуле...

Решение биквадратного уравнения, заданного в виде строки в рантайме - C++
Как решить биквадратное уравнение вида &quot;ax^4+bx^2+c&quot;, при том что уравнение задается во время программы в виде строки &quot;2 x^4 - 3x^2+4&quot; ,...

Найти ошибку в решении задачи "Шифровка" (acmp) - C++
#include &lt;stdio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; #include...

Линейные диофантовы уравнения - найти ошибку в коде - C++
Друзья,подскажите где ошибка в этой программе... Условие задачи такое: Линейные диофантовы уравнения,т.е. уравнения вида a*x+b*y=c ,в...

Найти ошибку в программе решения квадратного уравнения - C++
Помогите, пожалуйста, выловить ошибку. Заурядное квадратное уравнение, но корни выбивает не так, как следует. #include &lt;iostream&gt; ...

Помогите найти ошибку - C++
//Даны три положительных числа а, b, c. Проверить, могут ли они быть длинами сторон треугольника. Если да, то вычислить площадь этого...

помогите найти ошибку - C++
#pragma argsused #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; const float con={{1,1,2},{3,4,5},{6,7,8}}; class...

Помогите найти ошибку - C++
Задание: Написать программу, которая считывает текст из файла и выводит в другой файл и на экран предложения, содержащие максимальное...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6280 / 5883 / 1904
Регистрация: 18.12.2011
Сообщений: 15,083
Завершенные тесты: 1
25.07.2014, 12:18     Помогите найти ошибку в решении биквадратного уравнения #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Отформатировал Ваш код добавлением скобок.
Думаю, теперь сами догадаетесь, в чем дело:
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
int main(int argc, char** argv) 
{
    cout<<"25-07-2014"<<endl;
    cout<<"Bi-kwadratowe rownanie:)"<<endl;
    double a=!0, b = 0, c = 0, d = 0, y1 = 0, y2 = 0, x1 = 0, x2 = 0, x3 = 0, x4 = 0;
    cout<<"a=";
    cin>>a;
    cout<<"b=";
    cin>>b;
    cout<<"c=";
    cin>>c;
    d=b*b-4*a*c;
    if(d<0)
    {
        cout<<"Dzialanie niewykonane"<<endl;
    }
    else
    {
        y1=(-b+sqrt(d))/(2*a); 
        y2=(-b-sqrt(d))/(2*a); 
    }
    if(y1<0 && y2<0)
    {
        cout<<"Dzialanie niewykonane"<<endl;    
    }else
    {
        if(y1>=0 && y2>=0)
        {
            x1=sqrt(y1);
            x2=-x1;
            x3=sqrt(y2);
            x4=-x3;
            cout<<"x1="<<x1<<" "<<"x2="<<x2<<" "<<"x3="<<x3<<" "<<"x4="<<x4<<endl;
        }else
        {
            if(y1>=0)
            {
                x1=sqrt(y1);
                x2=-x1;
            }else
            {
                x1=sqrt(y2);
                x2=-x1;
            }
        }
    }
    cout<<"x1="<<x1<<" "<<"x2="<<x2<<endl;
    system("Pause");
    return 0;
}
Yarik199
2 / 2 / 0
Регистрация: 01.11.2013
Сообщений: 154
Завершенные тесты: 2
25.07.2014, 12:41  [ТС]     Помогите найти ошибку в решении биквадратного уравнения #3
спасибо большое,теперь понятно.

Добавлено через 14 минут
Цитата Сообщение от zss Посмотреть сообщение
Отформатировал Ваш код добавлением скобок.
Думаю, теперь сами догадаетесь, в чем дело:
компилятор опять выбил 6 иксов,должно 4 быть,не помогло(
zss
Модератор
Эксперт С++
6280 / 5883 / 1904
Регистрация: 18.12.2011
Сообщений: 15,083
Завершенные тесты: 1
25.07.2014, 13:31     Помогите найти ошибку в решении биквадратного уравнения #4
1.После 15 и 24 строк дальнейшее выполнение программы бессмысленно.
Надо добавить return 1;
2. 47 строку переносим и ставим после 44-ой
Yarik199
2 / 2 / 0
Регистрация: 01.11.2013
Сообщений: 154
Завершенные тесты: 2
25.07.2014, 13:37  [ТС]     Помогите найти ошибку в решении биквадратного уравнения #5
как поменял строки все заработало,Спасибо.
Yandex
Объявления
25.07.2014, 13:37     Помогите найти ошибку в решении биквадратного уравнения
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru