en;}
else {cout << «»;}
}
j=stepen - 1;
for (i=j; i>=1; i -)
{ if (koof [i]> 0)
{Cout << «+» << koof [i] << «x ^» << i;}
else
{If (koof [i] <0) {Cout << koof [i] << «x ^» << i;}
else {cout << «»;}}
}
if (koof [0]> 0)
{Cout << «+» << koof [0] << endl;}
else
{If (koof [0] <0) {Cout << koof [i] << endl;}
else {cout << endl;}
}
}
}
Алгоритм складання двох многочленів
Визначаємо більший з введених многочленів них за ступенем;
Обнуляємо в меншому многочлене коефіцієнти при
x ;
У новому масиві, який призначений для збереження результату, коефіцієнти робимо рівними нулю;
· За допомогою циклу складаємо коефіцієнти, при однакових ступенях x ;
· Присвоюємо отриманому многочлену ступінь, більшого з віднімаються;
· Повертаємо отриманий многочлен.
Алгоритм вирахування двох многочленів
Визначаємо більший з введених многочленів них за ступенем;
Обнуляємо в меншому многочлене коефіцієнти при
x ;
У новому масиві, який призначений для збереження результату, коефіцієнти робимо рівними нулю;
· За допомогою циклу віднімаємо коефіцієнти, при однакових ступенях x ;
· Присвоюємо отриманому многочлену ступінь, більшого з віднімаються;
· Повертаємо отриманий многочлен.
Алгоритм множення двох многочленів
· Присвоюємо многочлену, призначеному для збереження результату ступінь дорівнює сумі ступенів множимо многочленів;
У новому масиві, який призначений для збереження результату, коефіцієнти робимо рівними нулю;
· У подвійному циклі по черзі множимо всі коефіцієнти за правилами наведеними вище;
· Наводимо подібні;
· Повертаємо отриманий результат.
mnogochlen mnogochlen :: operator * (mnogochlen m)
{mnogochlen d;
int i, j, k;
k=stepen + m.stepen;
for (i=0; i <= k; i + +)
{ d.koof [i]=0; }
for (i=0; i <= stepen; i + +)
{ for (j=0; j <= m.stepen; j + +) {
d.koof [i + j] +=koof [i] * m.koof [j]; }}
d.stepen=m.stepen + stepen;
return d; }
Алгоритм перевірки на рівність двох многочленів
· Порівнюємо ступеня двох многочленів, якщо вони не рівні, то, отже, не рівні і многочлени. Це означає, що подальші дії можна не виконувати. Інакше продовжуємо виконання;
· У циклі порівнюємо коефіцієнти при x ;
· Якщо коефіцієнти, при якому або x НЕ збігаються, перериваємо порівняння. Багаточлени не рівні. Інакше продовжуємо його виконання.
· Виводимо значення булевої змінної, яка і буде вказувати: чи рівні многочлени або немає.
bool mnogochlen :: operator == (mnogochlen m)
{bool priznak;
int i;
if (stepen!=m.stepen) {priznak=0;}
else {for (i=0; i <= stepen; i + +)
{
if (koof [i]!=m.koof [i]) {priznak=0; break;}
else {priznak=1;}
}}
return priznak;
}