Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 10:16   #1
OldStaR
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 11
По умолчанию Задача по C++

Трабл таков, уже 4 пару сижу не могу сделать задачу.

Задача:
Разработать программу решения уравнения ax2+bx+c=0 , где a, b, c - любые веще-ственные числа.

Два кода. 1) выводит .INF

int a,b,c;
cout << "vvedite a,b,c:" << endl;
cin >> a;
cin >> b;
cin >> c;
if (a==0 && b==0 && c==0)
{
cout << "x luboe chislo" << endl;
}
else
{

if (a==0)
{
float x=(float)(-c)/(float)b;
cout << "x raven" <<x << endl;
}
else
{
if (c==0)
{
float x1=0;
float x2=-b/a;
cout << "pervii x:" << x1<<"/tVtroi x:" << x2 << endl;
}
if(b==0)
{
float x1=+sqrt((float)(-c)/(float)a);
float x2=-sqrt((float)(-c)/(float)a);
cout << "pervii x:" << x1 << "/tVtoroi x:" << x2 << endl;
}
else
{
if (a==0 && b==0)
{
cout << "x luboe chislo" << endl;
}
if (a==0 && b==0)
{
cout << "x luboe chislo" << endl;
}
if ((a==0 && c==0)||(b==0 && b==0))
{
cout << "x raven 0" << endl;
}

if (a!=0 && b!=0 && c!=0)
{
float d = b*b - 4*a*c;
if ( d>0)
{
float x1 =(-b+sqrt(d))/(2.0*a);
float x2 =(-b-sqrt(d))/(2.0*a);
cout << "pervii x:" << x1 << "/tVtoroi x:" << x2 << endl;
}
else
{
cout << "kornei net" << endl;
}
}
}
}
}

2) Решает не правельно и выводит .inf
double a,b,c,d;
cout << "vvedite a,b,c:" << endl;
cin >> a;
cin >> b;
cin >> c;
if (a==0 && b==0 && c==0)
{
cout << "x luboe chislo" << endl;
}
else
{

if (a==0)
{
float x=(float)(-c)/(float)b;
cout << "x raven" << x << endl;
}
else
{
d = b*b-4*a*c;
if(d >=0 )
{
float x1 =(-b+sqrt(d))/(2.0*a);
float x2 =(-b-sqrt(d))/(2.0*a);
cout << "pervii x:" << x1 << "/tVtoroi x:" << x2 << endl;
}
else
{
cout << "kornei net" << endl;
}
}
}
Вот мужики в чём трабл. Реально уже выбешивает этот код.
OldStaR вне форума Ответить с цитированием
Старый 20.05.2009, 14:20   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

int a,b,c; //обьявили целое??
(float)(-c)/(float)b; //теперь дробные?
Не проще
float a,b,c; и дальше возле них убрать все float
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 21.05.2009, 21:50   #3
OldStaR
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 11
По умолчанию

Всё конечно классно но только я не понял, а как код будет в целом то выглядить после этогО?
OldStaR вне форума Ответить с цитированием
Старый 22.05.2009, 10:48   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

float a,b,c,x1,x2,result;
cout << "vvedite a,b,c: "<< endl;
cin >> a;
cin >> b;
cin >> c;



if ((a==0) && (b==0) && (c==0)
{
cout << "x luboe chislo" << endl;
}


if ((a==0)&&(b==0)&&(c!=0))
cout << "net rescheniy" << endl;

if ((a==0) && (b!=0) && (c==0)
{
cout << "X1=X2=0" << endl;
}

if ((a==0) && (b!=0) && (c!=0)
{
x1= (-c)/b;
cout << "X1=X2=" <<x1<< endl;
}

else
{
result=sqrt(abs(pow(b)-4*a*c));
if ((pow(b)-4*a*c)>0)
{
x1=(((-b)+result)/(2*a));
x2=(((-b)-result)/(2*a));
cout<<"X1=: "<<x1<<endl;
cout<<"X2=: "<<x2<<endl;
}
else
{
cout<<"X1=: "<<=(-b)/(2*a)<<"+"<<(result/(2*a))<<"i'<<endl;
cout<<"X2=: "<<=(-b)/(2*a)<<"-"<<(result/(2*a))<<"i'<<endl;

}
}
// Остальное - библиотеки, функцию main добавите сами.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 24.05.2009, 00:44   #5
OldStaR
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 11
По умолчанию

Спасибо огромное вам!
OldStaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц