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

класс, моделирующий многочлены n – го порядка - C++

Восстановить пароль Регистрация
 
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
27.12.2011, 00:54     класс, моделирующий многочлены n – го порядка #1
Разработайте класс, моделирующий многочлены n – го порядка от одной переменной. В
классе должен быть конструктор копирования и оператор присваивания. Перегрузите
оператор ~ для вычисления первой производной многочлена. Напишите тестирующую
программу, в которой задайте некоторый многочлен и вычислите его производную

помогите,пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 00:54     класс, моделирующий многочлены n – го порядка
Посмотрите здесь:

C++ Многочлены
C++ Многочлены
C++ Как можно сформировать массив кнопок, моделирующий шахматную доску?
Реализовать класс Bankomat моделирующий работу банкомата. C++
Объект внутри класса. Напишите класс Geo, моделирующий географические координаты на поверхности Земли C++
C++ Спроектируйте с использованием TDD класс CTVSet , моделирующий телевизор
Реализовать класс Bankomat, моделирующий работу банкомата C++
Разработать класс, моделирующий массив целых чисел и его обработку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
27.12.2011, 02:47     класс, моделирующий многочлены n – го порядка #2
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
 
using namespace std;
 
class Polynomial
{
private:
    double *coef;           // массив коэффициентов 
    int n;                  // степень полинома 
 
public:
    Polynomial(): n(-1), coef (NULL) {};    // пустой конструктор для инициализации
                                            //экземпляров и массивов экземпляров класса по умолчанию
    Polynomial(double c);
    Polynomial(int s, double* noef);
    // копирующий конструктор
    Polynomial( const Polynomial & p );     
    ~Polynomial();
 
    //инициализация
    void Init (const int n_, double * coef_ ); 
 
    // перваая производная полинома
    Polynomial operator ~ ();           
    //оператор присваивания
    Polynomial & operator = ( const Polynomial & p );  
 
    // ввод экземпляров класса из входного потока
    friend istream & operator >> ( istream & in, Polynomial & p );         
    // вывод в выходной поток
    friend ostream & operator << ( ostream & out, const Polynomial & p );  
};
 
// копирующий конструктор
Polynomial::Polynomial( const Polynomial & p )
{
    coef =  NULL; //помечаем как непроинициализированный
    Init( p.n, p.coef ); //инициализируем данными входящего класса
}
 
Polynomial::Polynomial(double c): n(0) //инициализация одним числом
{
    coef = new double [1];
    coef[0] = c;
}
 
Polynomial::Polynomial(int s, double* noef)
{
    coef = NULL;
    Init (s, noef);
}
 
Polynomial::~Polynomial() 
{
    if (coef!=NULL) delete [] coef; //очищаем память
}
 
// функция инициализации
void Polynomial::Init(const int n_, double * coef_)
{
    n = n_; 
    if (coef!=NULL) 
        delete [] coef; //удаляем, если что-то уже есть
    coef  = new double [n+1]; //выделяем память
    memcpy( coef, coef_, (n+1)*sizeof(double) ); //копируем данные
 
}
 
// перваая производная полинома
Polynomial Polynomial::operator ~ ()
{
    Polynomial res;
    res.n = n-1; //понижаем степень
    res.coef = new double [n]; //выделяем память
    for (int i = 1; i<n+1; i++) 
        res.coef[i-1] = coef[i]*i; //получаем новые коэффициенты путём умножения на степень
    return res;
}
 
// переопределение экземпляра класса
Polynomial & Polynomial::operator = ( const Polynomial & p )
{
    Init( p.n, p.coef); //инициаизируем входящим
    return *this;
}
 
istream & operator >> ( istream & in, Polynomial & p )
{
    int n = -1;
    cout << "please, enter the Polynomial power: ";
    while ( n < 0 )
        in >> n;
    cout << "please, enter the Polynomial coefficients: " << endl;
    double *coef = new double [n+1];
    for ( int i = n; i >= 0; i-- )
    {
        cout << "x^" << i << ":";
        in >> coef[i]; 
    }
    p.Init (n, coef);
    return in;
}
 
// вывод полинома в выходной поток
ostream & operator << ( ostream & out, const Polynomial & p )
{
    if ( p.n<0 )
    {
        out << "Not exists" << endl;
        return out;
    }
    out << "P(x) = " << p.coef[p.n] <<
        "*x^" << p.n << " + ";
    for ( int i = p.n-1; i >= 0; i-- ){
        out << p.coef[i];
        if (i!=0) out << "*x^" << i <<
            " + ";
    }
    out << endl;
    return out;
}
 
int main()
{
    Polynomial p1;
    double a[] = { 1, 2, 3, 4};
    Polynomial p2(3, a);
    Polynomial p3;
 
    cin >> p3;
    cout << "p1 = " << p1 
         << "p2 = " << p2 
         << "p3 = " << p3;
    p1 = ~p2;
    cout << "p1 = " << p1;
 
    system("PAUSE");
    return 0;
}
Yandex
Объявления
27.12.2011, 02:47     класс, моделирующий многочлены n – го порядка
Ответ Создать тему
Опции темы

Текущее время: 12:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru