0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 10
1

Ввести класс для работы с объектом «полином». Реализовать операции:

02.06.2019, 10:15. Показов 1347. Ответов 0

Author24 — интернет-сервис помощи студентам
а) умножение полинома на число (операция &);

б) вычисление значения полинома в заданной точке Х (операция |).

Нашёл на просторах данного форума одну программу, которая должна была хоть немного облегчить мне жизнь, но она не работает по причине "undefined referance to "WinMain@16" и в ней, по-идее нету пункта б, помогите пожалуйста
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <memory.h>
using namespace std;
 
//класс Polynom
class Polynom{
private:
    unsigned int deg; //степень полинома
    double *koef; //указатель на массив коэффициентов полинома
                  //koef[i] - коэффициент при i-й степени,
                  //koef[0] - коэффициент при нулевой степени
    void CorrectDeg(); // функция корректировки степени полинома
 
public:
    Polynom(); //конструктор без параметров
    Polynom(unsigned int, double*); //конструктор с параметрами
    Polynom(const Polynom &); //копирующий контсруктор
    ~Polynom(); //деструктор
 
    unsigned int GetDeg(); //функция получения степени полинома
    double GetKoef(unsigned int); //функция получения коэффициента при i-й степени
    unsigned int SetKoef(double, unsigned int); //функция задания коэффициента при i-й
                                                //степени, возвращает степень полинома
    friend Polynom MultConst(double, Polynom &); //дружественная функция умножения полинома
                                              //на константу
    void InputPolynom();    //функция ввода полинома
    void OutputPolynom();   //функция вывода полинома
};
 
// конструктор без параметров: создается полином нулевой степени
// с коэффициентом при нулевой степени равным нулю
Polynom::Polynom(){
    deg=0;
    koef=new double[deg+1];
    koef[0]=0.0;
}
 
// конструктор с параметрами
// new_deg - степень создаваемого полинома
// newkoef - указатель на new_deg+1 - элементный массив с коэффициентами
//           полинома, где newkoef[i] - коффициент при i-й степени
//           и newkoef[0] - коэффициент при нулевой степени
// В результате степень полинома будет наибольшим номером ненулевого
// элемента массива new_koef и меньше или равна new_deg (по определению степени полинома)
Polynom::Polynom(unsigned int new_deg, double *new_koef){
    deg=0;
    for(int i=0;i<=new_deg;i++)
        if(new_koef[i]!=0) deg=i;   //инициализация переменной степени
    koef=new double[deg+1];
    for(int i=0;i<=deg;i++)
        koef[i]=new_koef[i]; //инициализация массива коэффициентов
}
 
//копирующий конструктор
Polynom::Polynom(const Polynom &f){
    deg=f.deg;
    koef=new double[deg+1];
    for(int i=0;i<=deg;i++)
        koef[i]=f.koef[i];
}
 
//деструктор
Polynom::~Polynom(){
    delete[] koef;
}
// функция получения степени полинома
unsigned int Polynom::GetDeg(){
    return deg;
}
 
// функция получения коэффициента при i-й степени
double Polynom::GetKoef(unsigned int i){
    if(i<=deg)
        return koef[i];
    else
        return 0.0;
}
 
// функция задания коэффициента при i-й степени
unsigned int Polynom::SetKoef(double new_koef, unsigned int i){
    if(i<=deg) koef[i]=new_koef;
    else return deg;
    CorrectDeg();
    return deg;
}
//оператор умножения полинома на число
Polynom operator * (Polynom &t, double K){
    return MultConst(K,t);
}
 
//функция реализующая умножение полинома на число
Polynom MultConst(double K, Polynom &t){
    if(K==0){
        Polynom result;
        return result;
    }
    else{
        int deg=t.deg;
        double *tmp_koef=new double[deg+1];
        for(int i=0;i<=deg;i++)
            tmp_koef[i]=K*t.koef[i];
        Polynom result(deg,tmp_koef);
        delete[] tmp_koef;
        return result;
    }
}
 
// функция корректировки степени полинома: коэффициент
// при максимальной степени должен быть ненулевым
void Polynom::CorrectDeg(){
    if(koef[deg]==0){
        do{
            deg--;
        }while(deg && koef[deg]==0);
    }
}
 
//функция ввода полинома
void Polynom::InputPolynom(){
    cout << "Input degree: ";
    cin >> deg;
    delete[] koef;
    koef=new double[deg+1];
    for(int i=0;i<deg;i++){
        cout << "K" << i << " = ";
        cin >> koef[i];
    }
    do{
        cout << "K" << deg << " = ";
        cin >> koef[deg];
        if(koef[deg]==0)
            cout << "K" << deg << " must not be zero!!!\n";
    }while(!koef[deg]);
}
 
void Polynom::OutputPolynom(){
    if(koef[deg]==1)
        cout << "X^" << deg;
    else if(koef[deg]==-1)
        cout << "-X^" << deg;
    else
        cout << koef[deg] << "X^" << deg;
 
    for(int i=deg-1;i>0;i--){
        if(koef[i]>0){
            if(koef[i]==1)
                cout << " + " << "X^" << i;
            else
                cout << " + " << koef[i] << "X^" << i;
        }else if(koef[i]<0)
            if(koef[i]==-1)
                cout << " - " << "X^" << i;
            else
                cout << " - " << (-1)*koef[i] << "X^" << i;
    }
 
    if(koef[0]>0)
        cout << " + " << koef[0] << "\n";
    else if(koef[0]<0)
        cout << " - " << (-1)*koef[0] << "\n";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2019, 10:15
Ответы с готовыми решениями:

Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц
Кто-нибудь подскажите, пожалуйста написать программу в С++. Ввести класс для работы с...

Ввести класс для работы с объектом "рациональная дробь"
Ввести класс для работы с объектом &quot;рациональная дробь&quot;.Реализовать: а)сложение(вычитание) двух...

Ввести класс для работы с объектом "многочлен"
Здравствуйте. Помогите пожалуйста с кодом программы: Ввести класс для работы с объектом...

Ввести класс для работы с объектом "множество целых чисел"
6)Ввести класс для работы с объектом &quot;множество целых чисел&quot;.Реализовать: 1)пересечение двух...

0
02.06.2019, 10:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2019, 10:15
Помогаю со студенческими работами здесь

15. Создать класс LongLong для работы с целыми числами. Число должно быть представлено двумя полями.Реализовать арифметические операции
Добрый вечер,вот задание: Создать класс LongLong для работы с целыми числами из 64 бит. Число...

Разработать Java класс(ы) для работы с математическим объектом согласно варианта
Квадратная матрица

Разработать Java класс для работы с математическим объектом: комплексное число
Задание Разработать Java класс(ы) для работы с математическим объектом согласно варианта. ...

Разработать Java класс(ы) для работы с математическим объектом согласно варианта
Здравствуйте нужна помощь. Друг рекомендовал этот форум сказали что помогут. Задание:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru