Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. /*
  2. *
  3. *Obliczanie wartości wielomianu i jego pochodnych w punkcie x=c Schemat Hornera ,uogolniony schemat hornerna
  4. *
  5. */
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. class Horner{
  11.     private :
  12.         int stopien;
  13.         double *wspolczynniki;
  14.         double * pochodne;
  15.         double argument;
  16.         double wartoscwPunkcie;
  17.    
  18.     public:
  19.         Horner(int Stopien):stopien(Stopien){
  20.             wspolczynniki = new double [stopien+1];
  21.             pochodne = new double[stopien+1];
  22.         }  
  23.    
  24.         ~Horner(){
  25.             delete [] wspolczynniki;
  26.             delete [] pochodne;
  27.         }
  28.        
  29.         void WczytajDane(){
  30.             for(int i = 0;i<= stopien;i++){
  31.                 cout<<"Podaj wspołczynnik stojacy przy potedze "<<stopien-i<<": ";
  32.                 cin>>wspolczynniki[i];
  33.             }
  34.             cout<<"Podaj argument wielomianu (punkt)";
  35.             cin>>argument;
  36.         }      
  37.        
  38.         double WartoscWielomianuwPunkcie(){
  39.             wartoscwPunkcie = wspolczynniki[0];
  40.  
  41.             for(int i=1;i<=stopien;i++){
  42.                 wartoscwPunkcie = wartoscwPunkcie*argument + wspolczynniki[i];
  43.             }
  44.             return wartoscwPunkcie;
  45.         }
  46.        
  47.        
  48.         void Wyswietl(){
  49.             cout<<"W("<<argument<<") = "<<wartoscwPunkcie<<endl<<endl;
  50.            
  51.             cout<<"P("<<argument<<") = "<<pochodne[0]<<endl;
  52.             for(int i=1;i<=stopien;i++){
  53.                 cout<<"P("<<argument<<")stopnia "<<i<<" = "<<pochodne[i]<<endl;
  54.             }
  55.         }
  56.        
  57.         void Pochodne(){
  58.             pochodne[0]=wartoscwPunkcie;
  59.            
  60.             for(int i=0;i<stopien;i++){
  61.                 for(int j=1; j<=stopien-1;j++){
  62.                     pochodne[j] = wspolczynniki[j-1]*argument+wspolczynniki[j];
  63.                 }
  64.                
  65.             }
  66.                
  67.         }
  68.                
  69. };
  70.  
  71. int main(int argc, char** argv) {
  72.     Horner x(4);
  73.     x.WczytajDane();
  74.     x.WartoscWielomianuwPunkcie();
  75.     x.Pochodne();
  76.     x.Wyswietl();
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement