Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- *Obliczanie wartości wielomianu i jego pochodnych w punkcie x=c Schemat Hornera ,uogolniony schemat hornerna
- *
- */
- #include <iostream>
- using namespace std;
- class Horner{
- private :
- int stopien;
- double *wspolczynniki;
- double * pochodne;
- double argument;
- double wartoscwPunkcie;
- public:
- Horner(int Stopien):stopien(Stopien){
- wspolczynniki = new double [stopien+1];
- pochodne = new double[stopien+1];
- }
- ~Horner(){
- delete [] wspolczynniki;
- delete [] pochodne;
- }
- void WczytajDane(){
- for(int i = 0;i<= stopien;i++){
- cout<<"Podaj wspołczynnik stojacy przy potedze "<<stopien-i<<": ";
- cin>>wspolczynniki[i];
- }
- cout<<"Podaj argument wielomianu (punkt)";
- cin>>argument;
- }
- double WartoscWielomianuwPunkcie(){
- wartoscwPunkcie = wspolczynniki[0];
- for(int i=1;i<=stopien;i++){
- wartoscwPunkcie = wartoscwPunkcie*argument + wspolczynniki[i];
- }
- return wartoscwPunkcie;
- }
- void Wyswietl(){
- cout<<"W("<<argument<<") = "<<wartoscwPunkcie<<endl<<endl;
- cout<<"P("<<argument<<") = "<<pochodne[0]<<endl;
- for(int i=1;i<=stopien;i++){
- cout<<"P("<<argument<<")stopnia "<<i<<" = "<<pochodne[i]<<endl;
- }
- }
- void Pochodne(){
- pochodne[0]=wartoscwPunkcie;
- for(int i=0;i<stopien;i++){
- for(int j=1; j<=stopien-1;j++){
- pochodne[j] = wspolczynniki[j-1]*argument+wspolczynniki[j];
- }
- }
- }
- };
- int main(int argc, char** argv) {
- Horner x(4);
- x.WczytajDane();
- x.WartoscWielomianuwPunkcie();
- x.Pochodne();
- x.Wyswietl();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement