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

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

Войти
Регистрация
Восстановить пароль
 
Павел I
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 7
#1

Найти вещественные корни уравнения ax4+bx2+c=0 - C++

19.01.2014, 15:05. Просмотров 817. Ответов 5
Метки нет (Все метки)

Вот условие: Даны числа a, b, с (проверить, чтобы а≠0, иначе повторить ввод). Найти вещественные корни уравнения ax4+bx2+c=0. Если корней нет, дать сообщение об этом.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>   //Для функций cin, cout
#include <math.h>       //Для функций sin, pow
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
 
 double a,b,c;
  cout<<"Input a=";
  cin>>a;
  if(a==0) cout<<"Nelzya";
  //здесь надо сделать повтор ввода а если условие выше сработало
  cout<<"Input b=";
  cin>>b;
  cout<<"Input c=";
  cin>>c;
  cout<<endl;
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 15:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти вещественные корни уравнения ax4+bx2+c=0 (C++):

Найти все целые корни уравнения ax3+bx2+cx+d=0 - C++
Добрый вечер. Есть задача : Вводятся целые числа a,b,c,d.Найти все целые корни уравнения ax3+bx2+cx+d=0 (корни искать среди делителей...

Биквадратное уравнение ax4 + bx2 + c = 0 - C++
Решить биквадратное уравнение ax4 + bx2 + c = 0. Напишите пожалуйста программу на C++

Даны действительные числа a, b, c (a ≠ 0). Полностью исследовать биквадратное уравнение ax4 + bx2 + c = 0 - C++
Даны действительные числа a, b, c (a ≠ 0). Полностью исследовать биквадратное уравнение ax4 + bx2 + c = 0, т. е. если действительных...

Отделить корни уравнения графически. Уточнить корни уравнения методом половинного деления - C++
Здравствуйте, господа программисты, помогите пожалуйста код написать, очень нужна ваша помощь) Вот задание: &quot; Отделить корни уравнения...

Найти корни уравнения - C++
f(x)=6x4+19x3-7x2-26x+12=0

Найти корни уравнения - C++
Написать программу, которая находит корни уравнения e^x=x+2 с погрешностью 10^-10. Заранее благодарен.

5
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 15:14 #2
Павел I,
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
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include<cmath>
#include<Windows.h>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int A, B, C;
    float x1, x2, d;
    cout << "Введите параметры уравнения(a,b,c):" << endl;
    cin >> A >> B >> C;
    if (A == 0)
    {
        cout << "Ошибка. А должен быть не 0!!!" << endl;
        system("PAUSE");
 
        return 0;
    }
    d = pow((float)B, 2) - 4 * A*C;
    if (d < 0)
        cout << "Нет действительных корней!\n";
    else
    {
        cout<<endl;
        cout<<A<<"x^2 + "<<B<<"x + "<<C<<" = 0\n";
        cout<<endl;
        if (d == 0)
        {
            cout.setf(ios::fixed);
            cout.precision(3);
            x1 = -B / (2 * A);
            cout << "x = " << x1<<endl;
        }
        else
        {
            cout.setf(ios::fixed);
            cout.precision(3);
            x1 = (-B - sqrt(d)) / (2 * A);
            x2 = (-B + sqrt(d)) / (2 * A);
            cout << "x1 = " << x1 << endl;
            cout << "x2 = " << x2 << endl;
        }
    }
    system("PAUSE");
 
    return 0;
}
1
MicM
822 / 480 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
19.01.2014, 15:18 #3
Цитата Сообщение от Павел I Посмотреть сообщение
проверить, чтобы а≠0, иначе повторить ввод
Лучше так сделать:
C++
1
2
3
4
5
6
do
{
    cout <<"A = ";
    cin >> a;
}
while (a==0);
Цитата Сообщение от Павел I Посмотреть сообщение
Найти вещественные корни уравнения ax4+bx2+c=0. Если корней нет, дать сообщение об этом.
Ну так в чем проблема?
Делайте замену:
http://www.cyberforum.ru/cgi-bin/latex.cgi?x^2 = t
Решаете кв. уравнение:
http://www.cyberforum.ru/cgi-bin/latex.cgi?at^2+bt+c = 0
Находите t
Затем возвращаетесь к замене и находите x.
Решите на листочке, потом программу проще будет написать

Добавлено через 4 минуты
cooller_94, так ведь уравнение биквадратное
1
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 15:43 #4
Цитата Сообщение от MicM Посмотреть сообщение
так ведь уравнение биквадратное
Упс, не заметил.
Ну ничего, згодится под основу

Добавлено через 22 минуты
Павел I, Вот набросал для биквадратного. Если что подправишь
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include<cmath>
#include<Windows.h>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int A, B, C;
    float x1, x2,x3,x4, d;
    cout << "Введите параметры уравнения(a,b,c):" << endl;
    cin >> A >> B >> C;
    if (A == 0)
    {
        cout << "Ошибка. А должен быть не 0!!!" << endl;
        system("PAUSE");
 
        return 0;
    }
    d = pow((float)B, 2) - 4 * A*C;
    if (d < 0)
        cout << "Нет действительных корней!\n";
    else
    {
        cout<<endl;
        cout<<A<<"x^2 + "<<B<<"x + "<<C<<" = 0\n";
        cout<<endl;
        x1 = (-B - sqrt(d)) / (2 * A);
        x2 = (-B + sqrt(d)) / (2 * A);
        if(x1>=0 && x2>=0)
        {
            cout.setf(ios::fixed);
            cout.precision(3);
            cout << "x1 = " << sqrt(x1) << endl;
            cout << "x2 = " << -sqrt(x1) << endl;
            cout << "x3 = " << sqrt(x2) << endl;
            cout << "x4 = " << -sqrt(x2) << endl;
        }
        else
        {
            if(x1>=0)
            {
                cout.setf(ios::fixed);
                cout.precision(3);
                cout << "x1 = " << sqrt(x1) << endl;
                cout << "x2 = " << -sqrt(x1) << endl;
            }
            if(x2>=0)
            {
                cout.setf(ios::fixed);
                cout.precision(3);
                cout << "x1 = " << sqrt(x2) << endl;
                cout << "x2 = " << -sqrt(x2) << endl;
            }
        }
 
    }
    system("PAUSE");
 
    return 0;
}
0
Павел I
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 7
19.01.2014, 19:00  [ТС] #5
Цитата Сообщение от cooller_94 Посмотреть сообщение
cout<<A<<"x^2 + "<<B<<"x + "<<C<<" = 0\n";
После этой строчки не работает
0
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 19:15 #6
Цитата Сообщение от Павел I Посмотреть сообщение
Сообщение от cooller_94
cout<<A<<"x^2 + "<<B<<"x + "<<C<<" = 0\n";
После этой строчки не работает
Если после этой строчке ничего не высвечивается значит невозможно вычислить корни. Можете добавить сообщение об этом.
Для проверки
Кликните здесь для просмотра всего текста

Введите параметры уравнения(a,b,c): -2 10 -3
Результат:
x1 = 2.16
x2 = -2.16
x3 = 0.56
x4 = -0.56
0
19.01.2014, 19:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 19:15
Привет! Вот еще темы с ответами:

Найти корни уравнения - C++
Тексты надо переписывать в тело сообщения В чем ошибка ? Помогите пожалуйста.

Найти корни уравнения - C++
Здравствуйте, хотел попросить добрых людей о помощи с написанием совсем простейшей программы, функция которой - возведение числа &quot;x&quot; в...

Найти корни уравнения - C++
найти корни уравнения f(x)=2x^3-3x^2-3x+2=0

Найти корни биквадратного уравнения - C++
Найти действительные корни биквадратного уравнения ax^4+bx^2+c=0 Входные данные Даны числа a, b и c Выходные данные Вывести...


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

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

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