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

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

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

Помогите написать прогу,которая будет решать биквадратные уравнения,желательно с использованием ООП.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2012, 21:38
Ответы с готовыми решениями:

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

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

Составить уравнения высот треугольника, если известны уравнения его сторон
составить уравнения высот треугольника, если известны уравнения его сторон: 2x-y+3=0 , x+5y-7=0 ,...

Полное исследование квадратного уравнения ax2 + bx + c = 0 и биквадратного уравнения ax4 + bx2 + c = 0
Создание простейших приложений for Windows. Полное исследование квадратного уравнения ax2 +...

9
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
18.07.2012, 21:54 2
А input какой?
GUI/нет?
0
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
18.07.2012, 22:04  [ТС] 3
Цитата Сообщение от Hi4ko Посмотреть сообщение
А input какой?
GUI/нет?
Нет.Обычный.
0
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
18.07.2012, 22:07 4
Цитата Сообщение от Elwy Посмотреть сообщение
Нет.Обычный.
Коэффициенты просто вводятся?
0
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
18.07.2012, 22:10  [ТС] 5
Ну да,через консоль.
0
74 / 74 / 12
Регистрация: 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;
}
1
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 4
19.07.2012, 16:49  [ТС] 7
Большое спасибо.
0
1 / 1 / 1
Регистрация: 25.11.2011
Сообщений: 11
19.07.2012, 21:52 8
Цитата Сообщение от Hi4ko Посмотреть сообщение
if(D < 1e-9) return 0;
Можно поинтересоваться почему не вот так?
C++
1
 if (D == 0) return 0;
0
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
19.07.2012, 22:03 9
Цитата Сообщение от imamatory Посмотреть сообщение
Можно поинтересоваться почему не вот так?
C++
1
 if (D == 0) return 0;
причина в хранении вещественных чисел в компьютере.
В компьютере число будет храниться с некоторой погрешностью, т.е. D, равное нулю, может лежать в интервале https://www.cyberforum.ru/cgi-bin/latex.cgi?\left( 0; 10^{-n} \right). Конечно, в некоторых средах/компиляторах эта погрешность учитывается автоматом, но лучше прописать, я думаю)
1
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 22
10.12.2013, 14:26 10
Подскажите пожалуйста, а как привязать этот код к Windows Forms?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2013, 14:26

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

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

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

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

Составить уравнения сторон треугольника, зная вершину и уравнения высоты и медианы проведенных из одной вершины
Составить уравнения сторон треугольника, зная одну его вершину A(−3; 2) и уравнения высоты 3x − 2y...


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

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

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