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

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

Войти
Регистрация
Восстановить пароль
 
Elwy
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
#1

Биквадратные уравнения - C++

18.07.2012, 21:38. Просмотров 649. Ответов 9
Метки нет (Все метки)

Помогите написать прогу,которая будет решать биквадратные уравнения,желательно с использованием ООП.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2012, 21:38     Биквадратные уравнения
Посмотрите здесь:

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

биквадратные уравнения - Turbo Pascal
Задано биквадратные уравнения ах4 + bx2 + c = 0. Найти корни уравнения.

Решить биквадратные уравнения - Алгебра
Помогите ,пожалуйтса, как можно скорее решить два этих уравнения: 1){({x}^{2}+2x)}^{2} - 2{(x+1)}^{2} = 1 2){({x}^{2}-2x)}^{2} +...

Составление дифференциального уравнения движения системы. Уравнения Лагранжа 2 рода - Физика
Здравствуйте! Имеется вот такая задачка: Составить Д.У. движения системы, выбрав кординату, определяющую положение тела 1, за...

Алгоритмизация решения уравнения для банковского IT-шника (или просто решение уравнения) - Численные методы
Добрый день. Нужна помощь (в идеале) с алгоритмизацией решения уравнения или (тоже отлично) способом численного решения уравнения для...

Определить тип уравнения, указать метод решения, общее решение дифференциального уравнения - Дифференциальные уравнения
дано дифференциальное уравнение первого порядка: (x+y+1)dx+(x-y2+3)dy=0. Определить тип уравнения, указать метод решения, общее решение...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
18.07.2012, 21:54     Биквадратные уравнения #2
А input какой?
GUI/нет?
Elwy
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
18.07.2012, 22:04  [ТС]     Биквадратные уравнения #3
Цитата Сообщение от Hi4ko Посмотреть сообщение
А input какой?
GUI/нет?
Нет.Обычный.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
18.07.2012, 22:07     Биквадратные уравнения #4
Цитата Сообщение от Elwy Посмотреть сообщение
Нет.Обычный.
Коэффициенты просто вводятся?
Elwy
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
18.07.2012, 22:10  [ТС]     Биквадратные уравнения #5
Ну да,через консоль.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
19.07.2012, 11:06     Биквадратные уравнения #6
biquadratic_equation.h :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef BIQUADRATIC_EQUATION_H
#define BIQUADRATIC_EQUATION_H
 
class biquadratic_equation
{
private:
 
    double a,b,c,D;
 
public:
 
    biquadratic_equation(double x,double y,double z);
 
    int aboutD();
 
    void solve();
 
};
 
#endif // BIQUADRATIC_EQUATION_H
biquadratic_equation.cpp
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
#include "biquadratic_equation.h"
#include <iostream>
#include <cmath>
 
using namespace std;
 
biquadratic_equation::biquadratic_equation(double x, double y, double z) : a(x) , b(y) , c(z){
    D = b*b - 4*a*c;
}
 
int biquadratic_equation::aboutD(){
    if(D < 0) return -1;
    if(D < 1e-9) return 0;
    return 1;
}
 
void biquadratic_equation::solve(){
    cout << "answer: " << endl;
    switch(aboutD()){
    case -1:
            cout << "no solutions" << endl; break;
    case 0:
            if(-b/(2*a) < 0) cout << "no solutions" << endl;
            else cout << sqrt(-b/(2*a)) << " " << - sqrt(-b/(2*a)) << endl;
            break;
    case 1:
            bool solexists = false;
            if((-b + sqrt(D))/(2*a) >= 0){
            cout << sqrt((-b + sqrt(D))/(2*a)) << " " << - sqrt((-b + sqrt(D))/(2*a)) << endl;
            solexists = true;
}
            if((-b - sqrt(D))/(2*a) >= 0){
            cout << sqrt((-b - sqrt(D))/(2*a)) << " " << - sqrt((-b - sqrt(D))/(2*a)) << endl;
            solexists = true;
}
            if(!solexists)
            cout << "no solutions" << endl; break;
}
}
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "biquadratic_equation.h"
using namespace std;
 
int main(){
    double a,b,c;
    cout << "Enter the coefficients of your biquadratic equaton: " << endl;
    cin >> a >> b >> c;
    biquadratic_equation x(a,b,c);
    x.solve();
    //system("pause") для остановки экрана в Windows
    return 0;
}
Elwy
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
19.07.2012, 16:49  [ТС]     Биквадратные уравнения #7
Большое спасибо.
imamatory
1 / 1 / 0
Регистрация: 25.11.2011
Сообщений: 11
19.07.2012, 21:52     Биквадратные уравнения #8
Цитата Сообщение от Hi4ko Посмотреть сообщение
if(D < 1e-9) return 0;
Можно поинтересоваться почему не вот так?
C++
1
 if (D == 0) return 0;
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
19.07.2012, 22:03     Биквадратные уравнения #9
Цитата Сообщение от imamatory Посмотреть сообщение
Можно поинтересоваться почему не вот так?
C++
1
 if (D == 0) return 0;
причина в хранении вещественных чисел в компьютере.
В компьютере число будет храниться с некоторой погрешностью, т.е. D, равное нулю, может лежать в интервале http://www.cyberforum.ru/cgi-bin/latex.cgi?\left( 0; 10^{-n} \right). Конечно, в некоторых средах/компиляторах эта погрешность учитывается автоматом, но лучше прописать, я думаю)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 14:26     Биквадратные уравнения
Еще ссылки по теме:

Уравнения мелкой воды (уравнения Сен-Венана) - C#
Добрый день ! Я написал программу на языке C# в Visual Studio 2010, которая решает уравнение мелкой воды (уравнение Сен-Венана)....

Какова вероятность того что корни уравнения будут разных знаков, если коэффициенты уравнения выбираются наугад - Теория вероятностей
1. Какова вероятность того, что корни уравнения x^2+a*x+c=0 будут разных знаков, если коэффициенты а и с уравнения выбираются наугад из...

Уравнения первого порядка. Однородные уравнения - Дифференциальные уравнения
Найти общее решение уравнения y'=e^{\frac{y}{x}}+\frac{y}{x}

Найти корни квадратного уравнения,заданного своими коэфицентами А,В,С коэфицентами (коэфицент А не равен 0), если известно,что дискриминант уравнения - Delphi
Найти корни квадратного уравнения A*x2+B*x+C-0,заданного своими коэфицентами A,B,C коэфицентами (коэфицент A не равен 0), если известно,что...


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

Или воспользуйтесь поиском по форуму:
Alex_45
Сообщений: n/a
10.12.2013, 14:26     Биквадратные уравнения #10
Подскажите пожалуйста, а как привязать этот код к Windows Forms?
Yandex
Объявления
10.12.2013, 14:26     Биквадратные уравнения
Ответ Создать тему
Опции темы

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