Classes et objets en c++

Contenu du snippet

Utilisation de l'Objet à travers la Classe Calcul qui dérive une fonction polynomiale : Y(X) = A X^n + B et utilise la Librairie "math.h".

Rappel : Soit Y'(X) la dérivée de Y(X) alors Y'(X) = A n X^(n-1)

Source / Exemple :


//Librairies
#include <...>
#include <math.h>

//Variables Globales
float a,b,c;
char rep;

//Definition de l'objet calcul soit une fonction ax^c+b ou a,b,c sont connus
class calcul
{ float a,b,c;  //DECLARATION DES FONCTIONS MEMBRES
  public: calcul(float,float,float);//constructeur
          void deriver();           //Traitement->derive l'objet fonction
          void afficher();         //Traitement->affichage l' objet fonction
          ~calcul();              //destructeur
};
// DEFINITION DES FONCTIONS MEMBRES
calcul::calcul(float nb1, float nb2,float nb3)
{ a=nb1;
  b=nb2;
  c=nb3;
  }
void calcul::afficher()
{float val;
//Faire un switch !
  if((a==0)&&(b==0))
   {cout<<"FONCTION SAISIE NULLE : Y(X) = 0 ";
    cout<<"\a";
    }else if((b==0)&&(c==0))
     {cout<<"FONCTION SAISIE : Y(X) = "<<a;
      }
       else if(a==0)
       {cout<<"FONCTION SAISIE : Y(X) = "<<b;
        }else if(b==0)
         {cout<<"FONCTION SAISIE : Y(X) = "<<a<<" X^"<<c;
          }else if(c==0)
           {val=a+b;
            cout<<"FONCTION SAISIE : Y(X) = "<<val;
            }else
             {if(b<0)
              {val=b*-1;
               cout<<"FONCTION SAISIE : Y(X) = "<<a<<" X^"<<c<<" - "<<val;
               }else
                { cout<<"FONCTION SAISIE : Y(X) = "<<a<<" X^"<<c<<" + "<<b;
                 }
              }
 }
void calcul::deriver()
{float val1;
  if(a!=0)
  { cout<<"FONCTION DERIVEE : Y'(X) = ";
    if (c==0)
    {cout<<"0";
     }else if(c==1)
           {cout<<a;
            }else
                {val1=c-1;
                 cout<<a*c<<" X^"<<val1;
                 }
   }else{cout<<"FONCTION DERIVEE NULLE : Y'(X) = 0";}
}
calcul::~calcul()
{
}

//Definition de l'objet point
class point
{  int x,y;
  public: point(int,int); /* Constructeur */
          void deplacer(int,int);
          void afficher();
          ~point();    /* Destructeur */
};

// Déclaration des fctions membres appartenant a l'objet point
point::point(int abs,int ord)
{ x=abs;
  y=ord;
}
void point::deplacer(int pas_x,int pas_y)   /*pasx pasy pour le pas
                                             de deplacement de l' objet*/
{ x=x+pas_x;
  y=y+pas_y;
}
void point::afficher()
{ gotoxy(x,y);

}
point::~point()
{
 }

//Fonctions et procedures generales
void menu(point p)
{ cout<<"--------------------------------------------------------------------------------\n";
  p.deplacer(19,1);
  p.afficher();
  cout<<" SAISIR UNE FONCTION POLYNOMIALE Y(X)  \n";
  cout<<"--------------------------------------------------------------------------------\n";
  cout<<"\n\n  Y(X) = a X^n + b\n";
  cout<<"\na : ";
  cin>>a;
  cout<<"\n";
  cout<<"n : ";
  cin>>c;
  cout<<"\n";
  cout<<"b : ";
  cin>>b;
  cout<<"\n";
 }

//PROG PRINCIPAL
void main()
{rep='o';
 while(rep=='o')
 {point p(1,1);       /*  Construction de l'objet p de deplacement de curseur
                         de type point, initialisé a
                         O(1,1) */
  p.afficher();     /* affichage du curseur a l'endroit defini a son
                      initialisation */
  menu(p);
  calcul f1(a,b,c);  //creation de la fonction 1, objet de type calcul
  p.deplacer(20,10);
  p.afficher();
  f1.afficher();
  p.deplacer(0,2);
  p.afficher();
  f1.deriver();
  cout<<"\n\nSaisir une autre fonction (o/n)?";
  cin>>rep;
  clrscr();
  }
  cout<<"\FIN";
  getch();
 }

/* Suite aux commentaires cette partie a été ajouté
mais je ne suis pas sûr que c'est le resultat attendu*/

Classe calcul{ ...
               public: virtuelle procedure derive();
};

Classe gencalc : public calcul{ ...
                                public: procedure derive();
};

calcul *calc;
gencalc *gc; 
calc->derive(); //Derive Calcul 
gc->derive(); 
calc<-gc; (calc pointe sur gc)
calc->derive();   //Derive un Calcul Général

  • /

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.