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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.79
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
23.11.2011, 20:00     решение квадратного уравнения С++ #1
Добрый день.
Задача заключается в следующем: необходимо решить квадратное уравнение вида 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>, но вот разобраться как это сделать не получается. Помогите с этим разобраться.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 20:00     решение квадратного уравнения С++
Посмотрите здесь:

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

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

Не по теме:

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



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

Текущее время: 23:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru