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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.79
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
#1

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

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

Добрый день.
Задача заключается в следующем: необходимо решить квадратное уравнение вида ax^2+bx+c=0 с учетом вводимых данных.
Собственно вот код написанный мною:
Код
#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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 20:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос решение квадратного уравнения С++ (C++):

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

Решение квадратного уравнения - C++
Написать программу решение квадратного уравнения. Программа должно проверять правельность исходных данных и в случае, если коэффициент при...

Решение квадратного уравнения - C++
Всем доброго время суток. Написать программу для решения квадратного уравнения общего вида a*{x}^{2}+ b*x + c = 0. Параметры a, b и c...

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

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

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

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

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
У меня только один вопрос для комплексных чисел вводить отдельный класс или можно работать со структурой
Это вы у меня спрашиваете?
Я вот нашел в гугле: http://msdn.microsoft.com/ru-ru/library/system.numerics.complex.aspx
Только вот применить её к задаче пока не получилось..
1
-=ЮрА=-
Заблокирован
Автор FAQ
24.11.2011, 17:09 #4

Не по теме:

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



Добавлено через 2 минуты
Alexpm, я спрашивал больше - Вам по простому решать или через класс CComplex который под силу написать каждому Стандартный класс complex.
0
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
24.11.2011, 21:49  [ТС] #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вам по простому решать или через класс CComplex
Думаю лучше по простому, чтоб понятнее было.. я просто без понятия, как с комлексными числами вообще обращаться...
В задаче получается, что комплексные числа необходимо использовать только с момента вычисления корня из "D" (отрицательного числа), но вот как и что.. простенький пример бы посмотреть, чтоб разобраться.
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.11.2011, 14:55 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
Миниатюры
решение квадратного уравнения С++  
25.11.2011, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2011, 14:55
Привет! Вот еще темы с ответами:

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

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

Решение квадратного уравнения - C++
Доброго времени суток, форумчане! Не могу разобраться, что у меня не так, если не сложно отзовитесь =) Задача простая по сути: &quot;Найти...

Решение линейного и квадратного уравнения - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; double Lin_riv(double a, double b); double Kvad_riv(double a,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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