Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 7
1

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

19.01.2014, 15:05. Просмотров 2655. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2014, 15:05
Ответы с готовыми решениями:

Найти все целые корни уравнения ax3+bx2+cx+d=0
Здравствуйте! Помогите, пожалуйста, решить задачу: &quot;Вводятся целые значения для a, b, c, d. Найти...

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

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

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

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
5
569 / 537 / 280
Регистрация: 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
837 / 495 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
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. Если корней нет, дать сообщение об этом.
Ну так в чем проблема?
Делайте замену:
https://www.cyberforum.ru/cgi-bin/latex.cgi?x^2 = t
Решаете кв. уравнение:
https://www.cyberforum.ru/cgi-bin/latex.cgi?at^2+bt+c = 0
Находите t
Затем возвращаетесь к замене и находите x.
Решите на листочке, потом программу проще будет написать

Добавлено через 4 минуты
cooller_94, так ведь уравнение биквадратное
1
569 / 537 / 280
Регистрация: 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
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
569 / 537 / 280
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 19:15

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

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

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

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

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


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

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

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