Text: |
ФІО = Горбаченко В.А.
Запитання:/* Горбаченко В.А. 29 04 2011 08 47
* Визначити клас, який реалізує поліном.
* Поліном визначається поядком та масивом коефіцієнтів.
* Передбачитит методи обчислення значення полінома у
* заданій точці, знаходження похідної та первісної
*/
#include <iostream>
#include <cstring>
#include <math.h> // УВАГА! Підключаний math.h. Впадло переписувати pow, але для даного випадку це - дуже просто
using namespace std;
class polynom{ // Клас полінома
public:
int n; // Порядок
double *p_koef; // Вказівник масив коефіцієнтів. Поки що пам'ять для нього не виділена
void EnterN(){ // функція просить користувача ввести порядок полінома
do{
cout<<" -> Vvedit poryadok [n>=2]: ";
cin>>n;
} while (n<2); // не пропускаємо n<2
n++;
}
void EnterKoef(){ // Вводимо коефіцієнти полінома
for (int i=n-1 ; i >=0 ; i--){
cout<<"Enter [ "<<i<<" ] = ";
cin>>*(p_koef+i);
}
}
void ShowPoly(){ // вивести поліном на екран
for (int i=n-1 ; i >=1 ; i--){
cout<<"("<<*(p_koef+i)<<")"<<"*x^"<<i<<" + ";
}
cout<<"("<<*(p_koef)<<")";
cout<<endl;
}
double EnterX(){// Ввести X
double x;
cout<<" -> Enter X : ";
cin>>x;
return x;
}
double CalculatePoly(double x){ // порахувати поліном
double sum=0;
for (int i=n-1 ; i >= 0 ; i--){
sum+=*(p_koef+i)*pow(x,i);
}
return sum;
}
void CalculatePoh(){ // похідна
cout<<" -> Pohidna = ";
int i=n-1;
for (i ; i > 1 ; i--){
cout<<"("<<i*(*(p_koef+i))<<")"<<"*x^"<<i-1<<" + ";
}
cout<<"("<<i*(*(p_koef+i))<<")";
cout<<endl;
return ;
}
void CalculatePer(){ // первісна
cout<<" -> Pervisna = ";
int i=n-1;
for (i ; i >= 1 ; i--){
cout<<"("<<(*(p_koef+i))/(i+1)<<")"<<"*x^"<<i+1<<" + ";
}
cout<<"("<<(*(p_koef+i))<<")*x";
cout<<endl;
return ;
}
polynom(){// конструктор
EnterN();
p_koef=new double [n];// виділяємо місце під пам'ять
EnterKoef();
}
~polynom(){
delete(p_koef); // звільнюємо виділену пам'ять
}
};
int main()
{
polynom p1; // створюємо поліном, запускається конструктор,
// який заповлює його
p1.ShowPoly(); // Показатии введений поліном
cout<<endl;
p1.CalculatePoh(); // Вивести похідну
p1.CalculatePer(); // Вивести первысну
cout<<endl;
cout<<" |-> CalculatePoly = "<<p1.CalculatePoly(p1.EnterX())<<endl;
// Функція рахує значення полінома.
// функція CalculatePoly приймає значення x і повертає рахунок
// функція EnterX повертає число, яке користувач ввів з клавіатури
system("PAUSE");
return 0;
}
====================================
|