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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 09:16     Написать программу решения кубического уравнения #1
Написать программу решения уравнения
ax^3+bx=0
для произвольных a и b.Зарание спасибо.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
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 вывел правильный ответ
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;
}
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
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
Миниатюры
Написать программу решения кубического уравнения  
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 11:45  [ТС]     Написать программу решения кубического уравнения #5
а вот в решении написано x=-=3i а что значит i?а И и есть мнимая единица)я прочитал)
Вот только осталось
а случаи если нет корней ?
надо чтобы он писал что их нет)

Добавлено через 8 минут
а вот в решении написано x=-=3i а что значит i?а И и есть мнимая единица)я прочитал)
Вот только осталось
а случаи если нет корней ?
надо чтобы он писал что их нет)
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
16.05.2014, 11:46     Написать программу решения кубического уравнения #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
gamer-wer, Я же написал, что хотя бы один корень будет всегда. x=0.
Любое число умноженное на 0 дает 0 и 0 в любой степени равен 0.
a*0+b*0=0
найдите такие a b, что бы уравнение не стало равно 0. По крайней мере, я такого не знаю.
Должно быть либо 1, либо 3 вещественных решения.
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 11:53  [ТС]     Написать программу решения кубического уравнения #7
при проверки корней. мы подставляем их в уравнение
вот при 1 и 9
уравнение равно 0 же не будет.вот в чём проблема этим препод достал.он или дурак или я не понимаю чего то
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
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
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:11  [ТС]     Написать программу решения кубического уравнения #9
и ещё я хотел уточнить в чём разница между
system("PAUSE");
и
getch();
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
16.05.2014, 12:18     Написать программу решения кубического уравнения #10
Вообще разница есть, но в данном контексте никакой. Обе используем для того, что бы увидеть результат.
с помощью system(); можно не только останавливать программу, смотря, что писать в скобках.
Ну а getch считывает нажатия клавиши.
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:20  [ТС]     Написать программу решения кубического уравнения #11
Т.е мобильней писать system так ?
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
16.05.2014, 12:23     Написать программу решения кубического уравнения #12
Вроде, лучше getch, но я привык к system
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 12:24     Написать программу решения кубического уравнения
Еще ссылки по теме:

Код решения кубического уравнения C++
Написать программу решения уравнения C++
C++ Написать программу на C++, для решения диф. уравнения

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

Или воспользуйтесь поиском по форуму:
gamer-wer
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
16.05.2014, 12:24  [ТС]     Написать программу решения кубического уравнения #13
Большое спасибо за помощь и консультацию
Yandex
Объявления
16.05.2014, 12:24     Написать программу решения кубического уравнения
Ответ Создать тему
Опции темы

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