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

Класс квадратных уравнений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Преобразование чисел http://www.cyberforum.ru/cpp-beginners/thread391902.html
Доброго времени! Господа, есть функция или оператор в C++ которая берет с регистра или памяти значение переменной и выводит его двоичной системе. Преобразование числа в двоичный код по формуле не...
C++ Перевод из десятизначной системы исчисления в трёхзначную Как наибыстрейшим образом перевести число из десятизначной системы исчисления в трёхзначную? Все числа целые. http://www.cyberforum.ru/cpp-beginners/thread391895.html
"Резиновый" массив C++
Доброго времени суток. Помогите реализовать идею. Мне надо сделать, так сказать, "резиновый" массив. Т.е. точный размер массива не задан, а зависит от того, сколько символов введёт пользователь....
Как записать на С 8*10^(-7)? C++
8*10^(-7) =
C++ Перевод числа в другую систему счисления http://www.cyberforum.ru/cpp-beginners/thread391874.html
Напишите функцию, которая принимает длинное целое беззнаковое число, интерпретирует его как двоичное (т.е. число содержит только 0 и 1) и возвращает соответствующее десятичное число. ...
C++ Как перенаправит из консоли в txt (ворд). Как записать из консоли в txt.В досе есть пере направление ну типа того. Как вывести матрицу 4х4 красиво. я замучился вот код #include <iostream> #include <stdlib.h> #include <conio.h> ... подробнее

Показать сообщение отдельно
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269

Класс квадратных уравнений - C++

26.11.2011, 12:54. Просмотров 1166. Ответов 5
Метки (Все метки)

Всем привет. Написал класс квадратных уравнений и программу, которая его использует (решает их).
Все работает, но по возможности проверьте, пожалуйста и не скажите, где и почему я не прав. Желательно не только по поводу самим способов решения задач, и по поводу остальных вещей вроде форматирования кода и т. д. Заранее спасибо.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class QuadraticEquations
{
public:
    QuadraticEquations( double = 1, double = 0, double = 0,  
                        double = 0, double = 0 );   
    
    void setValues( double, double, double );          
    
    bool solve();             // решает уравнение. возвращает 0 в случае "НЕТ КОРНЕЙ"
                              // и 1 в случае успешного решения
    double getX1() const;                             
    double getX2() const;
       
private:
    double a;
    double b;
    double c;
    
    double x1, x2;
    
    double findDiscrim();                                      
};
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 <cmath>
#include "QuadraticEquations.h"
 
#define SUCCESS 1
#define FAIL    0
 
QuadraticEquations::QuadraticEquations( double aa, double bb, double cc,
                                        double xx1, double xx2 )
                                        : a( aa ), b( bb ), c( cc ), x1( xx1 ), x2( xx2 )
{
                                        
}
 
void QuadraticEquations::setValues( double aa, double bb, double cc )
{
    a = aa;
    b = bb;
    c = cc;
}
 
bool QuadraticEquations::solve()
{
    double d = findDiscrim(); 
     
    if( a != 0 && d >= 0 ) {
        x1 = ( -b + ( sqrt( d ) ) ) / ( 2 * a );
        x2 = ( -b - ( sqrt( d ) ) ) / ( 2 * a );
        
        return SUCCESS;
    }
    else if( a == 0 || d < 0 )
        return FAIL;
}
 
double QuadraticEquations::getX1() const
{
    return x1;
}
 
double QuadraticEquations::getX2() const
{
    return x2;
}
 
double QuadraticEquations::findDiscrim()
{
    return ( b * b ) - ( 4 * a * c );
}
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
#include <conio.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include "QuadraticEquations.h"
 
void askKoefficients( double *, double *, double * );
void showRoots( QuadraticEquations );
 
int main()
{
    double a, b, c;
    askKoefficients( &a, &b, &c );
    
    QuadraticEquations equation( a, b, c );
    
    if( !equation.solve() )
        cout << "No real roots." << endl;
    else
        showRoots( equation );
    
    getch();
    return 0;
}
 
void askKoefficients( double *a, double *b, double *c )
{
    cout << "Enter A, B, C: ";
    cin >> *a >> *b >> *c;
}
 
void showRoots( QuadraticEquations equation )
{
    double x1 = equation.getX1(), 
           x2 = equation.getX2();
           
    if( x1 != x2 )
        cout << "x = " << x1 << " or x = " << x2 << ".";
    else
        cout << "x = " << x1 << ".";
}
Добавлено через 14 часов 58 минут
Проверьте кто-нибудь, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru