News Ticker

Menu

Exercices C++



Exercice 1 :
Soit une classe vecteur3d ayant 3 données membres privées, de type entier, les composantes du vecteur (x,y,z). Elle a un constructeur permettant d’initialiser les données membres.
Ecrire une fonction indépendante, coincide, amie de la classe vecteur3d, permettant de
savoir si 2 vecteurs ont mêmes composantes.
Si v1 et v2 désignent 2 vecteurs de type vecteur3d, écrire le programme qui permet de
tester l’égalité de ces 2 vecteurs.
Exercice 2 :
Créer 2 classe (dont les membres données sont privés) :
-          l’une nommée vect, permettant de représenter des vecteurs à 3 composantes de type double ;
-          elle comportera un constructeur et une fonction membre affiche.
-          L’autre nommée matrice, permettant de représenter des matrices carrées de dimension 3x3 ;
-          elle comportera un constructeur avec un argument (adresse d’un tableau de 3x3 valeurs)
-          qui initialisera la matrice avec les valeurs  correspondantes.
Réaliser une fonction indépendante prod permettant de fournir le vecteur correspondant au produit d’une matrice par un vecteur.
Ecrire un programme de test.
Fournir les 2 déclarations de chacune des classes, leurs définitions, la définition de prod et le programme de test.
Exercice 3 :
Créer une classe personnel comprenant 3 données membres (nom, position, salaire),
un constructeur initialisant les données membres et une fonction affiche_personnel
qui affiche les informations sur le personnel.
Créer une classe patron dérivant publiquement de la classe personnel et ayant 2
données membres (bonus_annuel, marque de voiture de fonction) , un constructeur
initialisant les données membres et une fonction affiche_patron qui affiche les
informations sur le patron (entant que membre du personnel et patron).
Créer un programme permettant de tester ces classes.
Exercice 4 :
a) Modifier les classes définies dans l’exercice 1 en utilisant la fonction affiche dans
la classe de base et la classe dérivée.
Modifier le programme pour tester les modifications.
b) Créer dans le programme principal un pointeur sur la classe personnel et un objet
de la classe patron. Le pointeur sur la classe de base contient l’adresse de la classe
dérivée. Appeler la fonction affiche en utilisant le pointeur sur la classe de base (il
faut qu’elle affiche les informations sur la classe dérivée).
Exercice 5 :
Créer une classe nombre formée d’une unique variable entière et d’une méthode
affiche_nombre, puis définir 3 classes dérivées afin d’afficher la variable aux formats
hexadécimal, octal et décimal à l’aide d’une méthode affiche_nombre.

Correction 




Exercice 1:
#include <iostream.h>
class vecteur3d{
int x;int y;int z;
public:
vecteur3d(int a=0,int b=0, int c=0);
friend void coincide (vecteur3d p, vecteur3d q);};
vecteur3d::vecteur3d(int a,int b,int c){
x=a;y=b;z=c;
}
void coincide(vecteur3d p, vecteur3d q){
if(p.x==q.x && p.y==q.y && p.z==q.z){
cout<<"Les 2 vecteurs sont égaux"<<endl;}
else cout<<"FOIREUX"<<endl;}
void main(){
vecteur3d v1(3,2,5);
vecteur3d v2(3,4,5);
coincide(v1,v2);}

Exercice 2:
#include <iostream.h>
#include <string.h>
class matrice;
class vect{
double x;double y;double z;
public:
vect(double a=0,double b=0,double c=0);
void affiche();
friend vect prod(matrice b, vect a);};
class matrice{
double tableau[3][3];
public :
//friend class a;
matrice(double tab[3][3]=0);
friend vect prod(matrice b, vect a);
};
vect::vect(double a,double b, double c){
x=a;y=b;z=c;
}
void vect::affiche(){
cout<<"X= "<<x<<endl;
cout<<"Y= "<<y<<endl;
cout<<"Z= "<<z<<endl;
}
matrice::matrice(double tab[3][3]){
tableau[3][3]=tab[3][3];
tableau[0][0]=1;
tableau[0][1]=2;
tableau[0][2]=3;
tableau[1][0]=4;
tableau[1][1]=5;
tableau[2][1]=6;
tableau[0][2]=7;
tableau[1][2]=8;
tableau[2][2]=9;
}
vect prod(matrice b, vect a){
vect c;
c.x=(b.tableau[0][0]*a.x)+(b.tableau[0][1]*a.y)+(b.tableau[0][2]*a.z);
c.y=(b.tableau[1][0]*a.x)+(b.tableau[1][1]*a.y)+(b.tableau[1][2]*a.z);
c.z=(b.tableau[2][0]*a.x)+(b.tableau[2][1]*a.y)+(b.tableau[2][2]*a.z);
cout<<"le résultat de la multiplication est
:"<<c.x<<","<<c.y<<","<<c.z<<endl;
return c;}
void main(){
vect vecteur(1,1,1);
matrice mat;
vect res;
res=prod(mat,vecteur);
}

Exercice 3:
#include <iostream.h>
#include <string.h>
class personnel{
char *nom;
char *position;
int salaire;
public:
personnel(char *nm, char *pos, int sal);
void affiche_personnel();
};
class patron:public personnel{/*class sousClasse: droit superClasse{};*/
int bonus_annuel;
char* marque_voiture;
public :
//constructeur
//sousClasse(liste des paramètres (avec ceux de la super classe); //déclaration
//sousClasse::sousClasse(liste de paramètres) : superClasse(paramètres pour
superClasse){} //définition
patron(int b_a, char* m_v,char *nm, char *pos, int sal);
void affiche_patron();
};
personnel::personnel(char *nm, char *pos, int sal){
cout<<"constructeur"<<endl;
salaire=sal;
nom=nm;
position=pos;
}
void personnel::affiche_personnel(){
cout<<"Nom : "<<nom<<endl;
cout<<"Position : "<<position<<endl;
cout<<"Salaire : "<<salaire<<endl;
}
patron::patron(int b_a, char* m_v,char *nm, char *pos, int sal):personnel(nm, pos,sal)
{
bonus_annuel=b_a;
marque_voiture=m_v;
}
void patron::affiche_patron(){
affiche_personnel(); //pas oublier
cout<<"bonus annuel = "<<bonus_annuel<<endl;
cout<<"Marque de voiture = "<<marque_voiture<<endl;
}
void main(){
personnel b("gerald","gérant",1250);
patron a(500,"BMW","fallon","PDG",2000);
b.affiche_personnel();
a.affiche_patron();
}

Exercice 4:
#include <iostream.h>
#include <string.h>
class personnel{
char *nom;
char *position;
int salaire;
public:
personnel(char *nm, char *pos, int sal);
void affiche();
};
class patron:public personnel{/*class sousClasse: droit superClasse{};*/
int bonus_annuel;
char* marque_voiture;
public :
//constructeur
//sousClasse(liste des paramètres (avec ceux de la super classe); //déclaration
//sousClasse::sousClasse(liste de paramètres) : superClasse(paramètres pour
superClasse){} //définition
patron(int b_a, char* m_v,char *nm, char *pos, int sal);
void affiche();
};
personnel::personnel(char *nm, char *pos, int sal){
cout<<"constructeur"<<endl;
salaire=sal;
nom=nm;
position=pos;
}
void personnel::affiche(){
cout<<"Nom : "<<nom<<endl;
cout<<"Position : "<<position<<endl;
cout<<"Salaire : "<<salaire<<endl;
}
patron::patron(int b_a, char* m_v,char *nm, char *pos, int sal):personnel(nm, pos,sal)
{
bonus_annuel=b_a;
marque_voiture=m_v;
}
void patron::affiche(){
//cout<<"Nom : "<<nom<<endl;
//cout<<"Position : "<<position<<endl;
//cout<<"Salaire : "<<salaire<<endl;
personnel::affiche();
// si on ne veut pas utiliser la résolution de portée
//on mets nos données en mode protected
cout<<"bonus annuel = "<<bonus_annuel<<endl;
cout<<"Marque de voiture = "<<marque_voiture<<endl;
}
void main(){
/*
personnel b("gerald","gérant",1250);
patron a(500,"BMW","fallon","PDG",2000);
b.affiche();
a.affiche();
*/
personnel *pe=new personnel("Fallon","PDG",2000);
peà affiche();
patron *pa=new patron(500,"PORSCHE","Toujirat","HautPDG",2250);
paàaffiche();
}

Exercice 5:
#include <iostream.h>
class nombre{
protected:
int entier;
public:
nombre(int ent);
virtual void affiche_nombre();
};
class hexa:public nombre{
public:
hexa(int ent);
void affiche_nombre();
};
class octal:nombre{
public:
octal(int ent);
void affiche_nombre();
};
class decimal:nombre{
public:
decimal(int ent);
void affiche_nombre();
};
nombre::nombre(int ent){
entier=ent;
}
void nombre::affiche_nombre(){
cout<<"voici le nombre : "<<entier<<endl;
}
hexa::hexa(int ent):nombre(ent){}
void hexa::affiche_nombre(){
cout <<" le nombre en hexa est de : "<<hex<<entier<<endl;
}
octal::octal(int ent):nombre(ent){}
void octal::affiche_nombre(){
cout <<" le nombre en octal est de : "<<oct<<entier<<endl;
}
decimal::decimal(int ent):nombre(ent){}
void decimal::affiche_nombre(){
cout <<" le nombre en décimal est de : "<<dec<<entier<<endl;
}
void main(){
nombre a(12);
a.affiche_nombre();
decimal b(12);
b.affiche_nombre();
octal c(12);
c.affiche_nombre();
hexa d(12);
d.affiche_nombre();
}




Share This:

  • To add an Emoticons Show Icons
  • To add code Use [pre]code here[/pre]
  • To add an Image Use [img]IMAGE-URL-HERE[/img]
  • To add Youtube video just paste a video link like http://www.youtube.com/watch?v=0x_gnfpL3RM