Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
#1

Написать программу решения кубического уравнения - C++

16.05.2014, 09:16. Просмотров 1773. Ответов 12
Метки нет (Все метки)

Написать программу решения уравнения
ax^3+bx=0
для произвольных a и b.Зарание спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2014, 09:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу решения кубического уравнения (C++):

Код решения кубического уравнения
Нужно написать в С++ код решения уравнения типа: A*x^3+B*x^2+C*x+D, кто знает,...

Функция для решения кубического уравнения с комплексными коэффициентами
Помогите пожалуйста написать функцию для решения кубического уравнения...

Написать программу решения уравнения
X (x+a) (x+b) (x+a+b) =c написать программу решения этого уравнения.

Написать программу решения квадратного уравнения.
Всем привет! Ребят, прошу помощи. помогите пожалуйста написать программу: ...

Написать программу для решения уравнения на С++
Всем привет!!) Помогите с написанием программы для решения уравнения на C++....

Написать программу решения линейного уравнения.
Написать программу решения линейного уравнения. Входные данные поступают с...

12
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 10:16 #2
и в чем проблема?
Что-то пытались сами сделать?

Добавлено через 58 минут
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
//---------------------------------------------------------------------------
 #include <iostream.h>
#include <vcl.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
#pragma argsused
int main(int argc, char* argv[])
{int a=0, b=0, x1=0;
double x2=0, x3=0;
cout<<Rus("Решение уравнения: ax^3+bx=0 ")<<endl;
cout<<Rus("Введите a")<<endl;
cin>>a;
cout<<Rus("Введите b")<<endl;
cin>>b;
if (a>0 && b>0) {x2=sqrt(b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"i; x3="<<x3<<"i"<<endl;}
else {x2=sqrt(-b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"; x3="<<x3<<endl;}
system("PAUSE");
    return 0;
}
//---------------------------------------------------------------------------
Нужно проверить. По крайней мере с
a=1 и b=9 вывел правильный ответ
0
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 10:45  [ТС] #3
Я писал сам.Проблема в том что он должен писать когда корней нет.Допустим если я подставлю в уравнение ваши значения a=1 и b=9 то
1x^3+9x=0
Это выражение не будет равно 0.
вот моя программа.
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
#include"stdafx.h"
#include<iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
double a,b,x1,x2,x3;
setlocale (LC_ALL,"Russian");
cout«"Введите a";
cin»a;
cout«"Введите b";
cin»b;
if((a>0)&&(b>0))
{ if ((a<0)&&(b<0))
cout«"Нет корней";
else
{
x1=sqrt(abs(b/a));
x2=-x1;
x3=0;
cout«"x1= "«x1«endl;
cout«"x2= "«x2«endl;
cout«"x3= "«x3«endl;
}}
_getch();
return 0;
}
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 11:32 #4
gamer-wer, У вашего уравнения всегда будет минимум одно решение. при x=0, уравнение обращается в ноль.
C++
1
2
3
if((a>0)&&(b>0))
{ if ((a<0)&&(b<0))
cout«"Нет корней";
Это что такое? Вы сначала проверяете, что a b положительные, а потом, что они отрицательные. Зачем? Нужно проверять и то и другое сразу. (Про отрицательные числа я забыл)
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
//---------------------------------------------------------------------------
 #include <iostream.h>
#include <vcl.h>
#include <locale.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main(int argc, char* argv[])
{int a=0, b=0, x1=0;
double x2=0, x3=0;
cout<<Rus("Решение уравнения: ax^3+bx=0 ")<<endl;
cout<<Rus("Введите a")<<endl;
cin>>a;
cout<<Rus("Введите b")<<endl;
cin>>b;
if ((a>0 && b>0 )|| (a<0 && b<0 )) {x2=sqrt(b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"i; x3="<<x3<<"i"<<endl;}
else {x2=sqrt(-b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"; x3="<<x3<<endl;}
system("PAUSE");
    return 0;
}
//---------------------------------------------------------------------------
То, что вы не знаете, что такое мнимая единица, не обозначает, что решение неправильное.
ну если хотите, то замените
C++
1
2
if ((a>0 && b>0 )|| (a<0 && b<0 )) {x2=sqrt(b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"i; x3="<<x3<<"i"<<endl;}
на
C++
1
if ((a>0 && b>0 )|| (a<0 && b<0 )) {cout<<"x="<<x1<<endl;}
То что на белом фоне, решено с помощью MathCad
0
Миниатюры
Написать программу решения кубического уравнения  
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 11:45  [ТС] #5
а вот в решении написано x=-=3i а что значит i?а И и есть мнимая единица)я прочитал)
Вот только осталось
а случаи если нет корней ?
надо чтобы он писал что их нет)

Добавлено через 8 минут
а вот в решении написано x=-=3i а что значит i?а И и есть мнимая единица)я прочитал)
Вот только осталось
а случаи если нет корней ?
надо чтобы он писал что их нет)
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 11:46 #6
Лучший ответ Сообщение было отмечено gamer-wer как решение

Решение

gamer-wer, Я же написал, что хотя бы один корень будет всегда. x=0.
Любое число умноженное на 0 дает 0 и 0 в любой степени равен 0.
a*0+b*0=0
найдите такие a b, что бы уравнение не стало равно 0. По крайней мере, я такого не знаю.
Должно быть либо 1, либо 3 вещественных решения.
0
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 11:53  [ТС] #7
при проверки корней. мы подставляем их в уравнение
вот при 1 и 9
уравнение равно 0 же не будет.вот в чём проблема этим препод достал.он или дурак или я не понимаю чего то
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 12:07 #8
ок.
x^3+9x=0
при 0 0+0==0
при 3i -27i+27i, что тоже равно 0. i^2=-1
при -3i 27i-27i, что тоже равно 0.

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
//---------------------------------------------------------------------------
 #include <iostream.h>
#include <vcl.h>
#include <locale.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
int main(int argc, char* argv[])
{int a=0, b=0, x1=0;
double x2=0, x3=0;
cout<<Rus("Решение уравнения: ax^3+bx=0 ")<<endl;
cout<<Rus("Введите a")<<endl;
cin>>a;
cout<<Rus("Введите b")<<endl;
cin>>b;
if ((a>0 && b>0 )|| (a<0 && b<0 )) {cout<<"x="<<x1<<endl;}
else {x2=sqrt(-b/a); x3=-x2;
cout<<"x1="<<x1<<"; x2="<<x2<<"; x3="<<x3<<endl;}
system("PAUSE");
    return 0;
}
//---------------------------------------------------------------------------
Когда, я понял, что мнимую единицу, вы не проходили, написал заменить
Этот код при 1 9, а также при -1 и -9 выведет только один корень. x=0
0
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:11  [ТС] #9
и ещё я хотел уточнить в чём разница между
system("PAUSE");
и
getch();
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 12:18 #10
Вообще разница есть, но в данном контексте никакой. Обе используем для того, что бы увидеть результат.
с помощью system(); можно не только останавливать программу, смотря, что писать в скобках.
Ну а getch считывает нажатия клавиши.
0
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:20  [ТС] #11
Т.е мобильней писать system так ?
0
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
16.05.2014, 12:23 #12
Вроде, лучше getch, но я привык к system
0
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:24  [ТС] #13
Большое спасибо за помощь и консультацию
0
16.05.2014, 12:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 12:24
Привет! Вот еще темы с решениями:

Написать программу для решения уравнения
y=sin(2x+1) х от -3 до 1 го, шаг 0,2 нужно решить функцию нужно на этой...

Написать программу для решения уравнения на С++
Всем привет!!) Помогите с написанием программы для решения уравнения на C++....

Написать программу решения квадратного уравнения
1) Написать программу решения квадратного уравнения. Корни только...

Написать программу для решения математического уравнения
Сделать блок-схему и написать программу данного математического выражения, ввод...


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

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

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