С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47

решение квадратного уравнения С++

23.11.2011, 20:00. Показов 9913. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Задача заключается в следующем: необходимо решить квадратное уравнение вида ax^2+bx+c=0 с учетом вводимых данных.
Собственно вот код написанный мною:
Code
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
#include <iostream>
#include <math.h>
#include <complex>
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"Russian");
    double a, b, c, x_1, x_2, D;
    cout<<"Введите a:"<<" "<<endl; 
    cin>>a;
    cout<<"Введите b:"<<" "<<endl;
    cin>>b;
    cout<<"Введите c:"<<" "<<endl;
    cin>>c;
 
    if (a==0)
        {
        x_1=-(c/b);
        cout<<"-------------------"<<endl;
        cout<<"Значение a="<<a<<". Уравнение принимиает вид линейного."<<endl<<"X="<<x_1<<endl;
        cout<<"-------------------"<<endl;
        }
    else
    {
        D=b*b-4*a*c;
        if (D>=0)
            {
                if (D==0)
                    {
                    x_1=((-b)+sqrt(D))/(2*a);
                    cout<<"-------------------"<<endl;
                    cout<<"D=0, уравнение имеет единственный корень: "<<endl<<x_1<<endl;
                    cout<<"-------------------"<<endl;
                    }
                else
                {
                    x_1=((-b)+sqrt(D))/(2*a);
                    x_2=((-b)-sqrt(D))/(2*a);
                    cout<<"-------------------"<<endl;
                    cout<<"D="<<D<<". Корни уравнения: "<<endl<<"X1="<<x_1<<endl<<"X2="<<x_2<<endl;
                    cout<<"-------------------"<<endl;
                }
        }
        else
        {
            cout<<"-------------------"<<endl;
            cout<<"D<0"<<endl;
            cout<<"-------------------"<<endl;
        }
    }
    
}
У меня возникла трудность в случае когда "D<0". В таком случае решения будут комплексными, необходимо использовать <complex.h>, но вот разобраться как это сделать не получается. Помогите с этим разобраться.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2011, 20:00
Ответы с готовыми решениями:

Решение квадратного уравнения
Здравствуйте. Тут такое дело, что дали написать программку с использованием классов решения квадратного уравнения, и вот вроде бы сделали,...

Решение квадратного уравнения
ax2+bx+c=0 решение зависит от значения дискриминанта D=b2-4ac :  D &gt; 0, 2 разных корня;  D = 0, 1 корень;  D...

Решение квадратного уравнения
Нужно сделать программу для решения уровнения Оно имеет вид a*x^2+b*x+c&gt;0 ---------------------- #include &lt;vcl.h&gt; ...

5
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.11.2011, 15:50
Alexpm, я узнаю свой код
У меня только один вопрос для комплексных чисел вводить отдельный класс или можно работать со структурой
C++
1
2
3
4
5
struct complex  
{
       double Re;
       double Im;
};
0
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
24.11.2011, 16:54  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
я узнаю свой код
Этот код я написал за 15 минут на паре, в понедельник. Если он чем то похож на ваш, то это не значит что я его у вас скопировал... уравнение решается стандартным способом.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
У меня только один вопрос для комплексных чисел вводить отдельный класс или можно работать со структурой
Это вы у меня спрашиваете?
Я вот нашел в гугле: http://msdn.microsoft.com/ru-r... mplex.aspx
Только вот применить её к задаче пока не получилось..
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.11.2011, 17:09

Не по теме:

Цитата Сообщение от Alexpm Посмотреть сообщение
Этот код я написал за 15 минут на паре, в понедельник. Если он чем то похож на ваш, то это не значит что я его у вас скопировал... уравнение решается стандартным способом.
- прошу прощения если обознался кодом (я ж без претензий к Вам), ок смотрю статейку на мсдн-е;)Ещё раз извините - если обидел!



Добавлено через 2 минуты
Alexpm, я спрашивал больше - Вам по простому решать или через класс CComplex который под силу написать каждому Стандартный класс complex.
0
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
24.11.2011, 21:49  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вам по простому решать или через класс CComplex
Думаю лучше по простому, чтоб понятнее было.. я просто без понятия, как с комлексными числами вообще обращаться...
В задаче получается, что комплексные числа необходимо использовать только с момента вычисления корня из "D" (отрицательного числа), но вот как и что.. простенький пример бы посмотреть, чтоб разобраться.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.11.2011, 14:55
Лучший ответ Сообщение было отмечено как решение

Решение

Alexpm, ну если совсем просто то вот
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
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
 
int main()
{
    double a,b,c,D;
    do
    {
        cout<<"Solving a*x^2 + b*x + c = 0\n";
        cout<<"a = ";cin>>a;
        cout<<"b = ";cin>>b;
        cout<<"c = ";cin>>c;
        D = pow(b,2) - 4*a*c;
        if(0 <= D)
        {
            cout<<"x1 = "<<(-b - sqrt(D))/2*a<<endl;
            if(0 < D)
                cout<<"x2 = "<<(-b + sqrt(D))/2*a<<endl;
        }
        else
        {
            cout<<"Equation has complex answer\n";
            //sqrt(D) = 0 + j*val
            //0 + j*val + re = re + j*val
            D = fabs(D);
            cout<<"x1 = "<<-b/2*a<<" - j*"<<sqrt(D)/2*a<<endl;
            cout<<"x2 = "<<-b/2*a<<" + j*"<<sqrt(D)/2*a<<endl;
        }
        cout<<"Press Y - for new input\n";
    }
    while(toupper(getch()) == 'Y');
    system("pause");
    return 0;
}
Миниатюры
решение квадратного уравнения С++  
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2011, 14:55
Помогаю со студенческими работами здесь

Решение квадратного уравнения
Ребят, нужен пример квадратного уравнения с условиями: 1.&quot;Некорректный ввод данных 2.Уравнение имеет бесконечное множество корней ...

Решение квадратного уравнения
как можно решить следующее уравнение: x=(a+b)*(a+b)*(a+b)-7.4*a*a*b+4*a+6 при любых значениях а и b, не хватает как говорится прямоты...

Решение квадратного уравнения
Вообщем задание. Написать программу для решения квадратного уравнения, где инкапсулированный метод вычисления х1 и х2... Я вот написал...

Решение квадратного уравнения
ввести с клавиатуры коэффициенты квадратного уравнения a,b,c.напечатать корни x1 и x2 или сообщение о том,что корней не...

Решение квадратного уравнения
Сделал программу для решения квадратного уравнения, вроде все правильно, а ответ выдает не верный, в чем дело не понимаю. #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru