Académique Documents
Professionnel Documents
Culture Documents
? 70 Exercices Corrigés en C++ & POO ??
? 70 Exercices Corrigés en C++ & POO ??
BASE DE DONNÉES PYTHON ALGORITHME (COURS) ALGORITHME (EXERCICES) LES FONCTIONS EN ALGORITHME C (EXERCICES) C (COURS) JAVA
My Airtel
200MB Avec My Airtel App
SOCIAL PLUGIN
INSTALLER
CATEGORIES
Exercice 1
Écrire un programme En C++ permettant d’afficher le message "Bonjour". (Solution)
Exercice 2
Écrire un programme en C++ permettant de saisir deux nombres et d'afficher leur
produit. (Solution)
Exercice 3
Écrire un programme en C++ qui permet d'échanger le contenu de deux entiers A et B
saisis par l'utilisateur. et afficher ces entiers après l’échange.
(Solution)
Exercice 4
Écrire un un programme en C++ qui permet d'afficher si un nombre entier saisi au
clavier est pair ou impair. (Solution)
Exercice 5
Écrire un programme en C++ qui permet d'afficher le plus grand de trois entiers saisis au
clavier. (Solution)
Exercice 6
Écrire un programme en C++ qui permet d'évaluer une note saisi au clavier (si la note
supérieur à 10 alors il affiche validé sinon non validé (NB : la note comprise entre 0 et 20
). (Solution)
Exercice 7
Écrire un programme en C++ qui demande deux nombres m et n à l’utilisateur et
l’informe ensuite si le produit de ces deux nombres est positif ou négatif. On inclut dans
le programme le cas où le produit peut être nul. (Solution)
Exercice 8
Écrire un programme en C++ qui permet de calculer la valeur absolue d'un entier saisi
par l'utilisateur. (Solution)
Exercice 9
Écrire un programme en C++ qui permet de calculer la moyenne de trois entiers saisis
par l'utilisateur. (Solution)
Exercice 10
Une boutique propose à ces clients, une réduction de 15% pour les montants d’achat
supérieurs à 200 dh. Écrire un programme en C++ permettant de saisir le prix total HT et
de calculer le montant TTC en prenant en compte la réduction et la TVA=20%. (Solution)
Exercice 11
Le centre de photocopie facture 0,25 DH pour les 10 premières photocopies, 0,20 DH les
vingt suivantes et 0,10 DH au-delà. Ecrire un programme en C++ qui demande à l’utilisateur de
saisir le nombre de photocopies effectuées et qui affiche la facture correspondante. (Solution)
Exercice 12
Écrire un programme en C++ qui demande l'âge d'un enfant et permet d'informer de sa
catégorie sachant que les catégories sont les suivantes:
"poussin de 6 a 7 ans"
"pupille de 8 a 9 ans "
"minime de 10 a 11 ans "
" cadet après 12 ans ". (Solution)
Exercice 13
Écrire un programme en C++ permettant d’afficher le mois en lettre selon le numéro saisi au clavier.
( Si l’utilisateur tape 1 le programme affiche janvier, si 2 affiche février, si 3 affiche
mars...) (Solution)
Exercice 14
Écrire un programme en C++ qui permet d'afficher le message "Bonsoir" 10 fois. Utilisant la
boucle While. (Solution)
Exercice 15
Écrire un programme en C++ permettant de calculer la somme S= 1+2+3...+ 10. Utilisant la boucle
While. (Solution)
Exercice 16
Écrire un programme en C++ qui permet de calculer la somme S =1+2+3+...+ N, où N saisi par
l’utilisateur. Utilisant la boucle While. (Solution)
Exercice 17
Écrire un programme en C++ qui permet d'afficher le message "bonjour" 10 fois . Utilisant la boucle
For. (Solution)
Exercice 18
Écrire un programme en C++ qui permet de calculer la somme S=1+2+3+...+ 10. Utilisant la
boucle For. (Solution)
Exercice 19
Écrire un programme en C++ qui permet de calculer la somme S=1+2+3+4+….+ N. où N saisi au
clavier par l'utilisateur.Utilisant la boucle For. (Solution)
Exercice 20
Écrire un programme en C++ qui permet d'afficher la table de multiplication de 5. Utilisant la boucle
For. (Solution)
Exercice 21
Écrire un programme en C++ qui permet d'afficher la table de multiplication d’un entier saisie par
l’utilisateur, Utilisant la boucle For. (Solution)
Exercice 22
Écrire un programme en C++ qui permet d'afficher "Bonjour" 10 fois. utilisant la boucle Do While.
(Solution)
Exercice 23
Écrire un programme en C++ qui calcule la somme S= 1+2+3+…+ 10. Utilisant la boucle Do While.
(Solution)
Exercice 24
Écrire un programme en C++ qui affiche la table de multiplication de 8. Utilisant la boucle Do While.
(Solution)
Exercice 25
Écrire un programme en C++ permettant de saisir 10 entiers et de les stocker dans un tableau
nommé Tableau, puis les afficher. (Solution)
Exercice 26
Écrire un programme en C++ permettant de saisir 10 notes et qui affiche la moyenne de ces notes.
(Solution)
Exercice 27
Écrire un programme en C++ permettant de saisir 10 entiers et qui affiche le maximum de ces
entiers. (Solution)
Exercice 28
Écrire un programme en C++ permettant de saisir 10 entiers dans un tableau, et de calculer le
nombre d'occurrences d'un élément N dans ce tableau. Où N saisi par l’utilisateur. (Solution)
Exercice 29
Écrire un programme en C++ permettant de saisir 10 entiers dans un tableau et de trier ce tableau
par ordre croissante. puis affiche ce tableau après le tri. (Solution)
Exercice 30
Écrire un programme en C++ permettant de calculer le factoriel d'un entier saisi par l'utilisateur.
par exemple N = 7 le factoriel de 7 égal à 1*2*3*4*5*6*7 =5040. (Solution)
Exercice 31
Écrire un programme en C++ permettant d'afficher les nombres paires compris entre 0 et N, où N
saisi par l'utilisateur. (Solution)
Exercice 32
Écrire un programme en C++ qui permet de calculer la somme d'entiers impaires de 1 jusqu'à un
entier N saisi par l'utilisateur. Exemple N=8 Somme = 1 +3+5+7= 16 (Solution)
Exercice 33
Écrire un programme en C++ qui permet de calculer le plus grand diviseur commun entre deux
entiers saisis par l'utilisateur. Par exemple: M= 15 et N=10 PGCD (15 , 10) = 5 (Solution)
Exercice 34
Ecrire un programme en C++ qui permet d'afficher un triangle d'entiers, selon un entier saisi par
l'utilisateur. Exemple N=4
22
333
4444
(Solution)
Exercice 35
Écrire un programme en C++ qui permet de calculer le nombre de chiffres d'un entier N saisi par
l'utilisateur. Exemple N = 10843
Exercice 36
Écrire un programme en C++ qui permet d'inverser les chiffres d'un entier N saisi par l'utilisateur.
par exemple N=35672 le résultat affiché doit être 27653 (Solution)
Exercice 37
Écrire un programme en C++ qui permet de saisir un entier N et d'afficher le triangle d'étoiles. par
exemple N = 4
***
*****
*******
(Solution)
Exercice 38
Écrire un programme en C++ qui permet de saisir 10 entiers dans un tableau. puis compter combien
y a-t-il d'éléments pairs et impairs. (Solution)
Exercice 39
Écrire un programme en C++ qui affiche si un nombre entier N saisi au clavier est Premier ou non.
(Solution)
Exercice 40
Ecrire un programme en C++ qui demande la saisie d'un tableau T de 10 entiers, et de mettre les
éléments pairs dans un tableau T1 et les éléments impaires dans un tableau T2. Puis afficher T1 et
T2 (Solution)
Exercice 41
Ecrire un programme en C++ qui permet à l'utilisateur de saisir une suite d'entiers se terminant par
0, et qui affiche à la fin le nombre d'occurrences de 5 (Solution)
Exercice 42
Ecrire un programme en C++ permettant de saisir 10 entiers et dit si ces entiers sont consécutifs ou
non. (Solution)
Exercice 43
Ecrire un programme en C++ qui permet de saisir 10 entiers et qui permet de calculer la différence
entre la somme des éléments paires et la somme des éléments impaires par exemple : 1 6 7 4 5 3
1 8 2 5
Exercice 44
Ecrire un programme en C++ permettant, à partir d'un réel x et d'une valeur entière positive n, de
calculer x puissance n (Solution)
Exercice 45
Ecrire un programme en C++ qui permet de tester l'égalité entre deux tableaux d'entiers (tailles 10).
Le programme affiche VRAI si les composants des deux tableaux sont correspondent position par
position, sinon il affiche FAUX. (Solution)
Exercice 46
Écrire un programme en C++ qui compte le nombre d'éléments en double ( deux éléments ou plus ) dans
un tableau d'entiers saisie par l'utilisateur. (Solution)
Exercice 47
Le centre de photocopie de votre établissement facture 0,25 DH pour les dix premières photocopies,
0,20 DH les vingt suivantes et 0,10 DH au-delà. Ecrire un programme en C++ qui de mande à
l'utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondant. (Solution)
Exercice 48
Écrire un programme en C++ qui permet de lire un caractère et dit s'il s'agit d'une lettre ou non , en cas
d'une lettre il dit s'il s'agit d'une lettre minuscule ou majuscule. (Solution)
Exercice 49
Écrire un programme en C++ permettant de décaler les valeurs nulles vers la fin du tableau, en gardant
l'ordre des éléments.
Exemple 1 2 0 6 9 0 0 8 0 3
Résultat 1 2 6 9 8 3 0 0 0 0 (Solution)
Exercice 50
Écrire un programme en C++ permet d'échanger ( permuter ) et afficher les valeurs
des trois entiers ( A, B et C ) saisis par l'utilisateur, selon l'ordre croissant c'est-à-dire
(A < B < C). (Solution)
Exercice 51
Écrire un programme C++ qui permet d'échanger les valeurs de deux entiers A et B saisis par
l'utilisateur, mais à condition d’utiliser seulement deux variables A et B. ( sans d'utiliser la
troisième variable auxiliaire ) (Solution)
Exercice 52
Ecrire un programme C++ qui
1)déclare un entier a
Corrigé
#include<iostream>
using namespace std;
int main()
{
int i;
int *p_i; //pointeur
p_i=&i;
return 0;
}
Exercice 53
Écrire une fonction nommée incrementer() permettant d’incrémenter la valeur d’une variable passée en
paramètre et une fonction nommée permuter() permettant d’échanger les contenus de 2 variables de type
int fournies en argument :
Corrigé
#include<iostream>
using namespace std;
//Passage par adresse
void permuter(int * x,int * y)
{
int p;
p = *x;
*x = *y;
*y = p;
}
void incrementer(int * x)
{
(*x)++;
}
int main()
{
int a, b;
incrementer(&a);
cout<<"la valeur de A : "<<a<<endl;
permuter(&a,&b);
cout<<"la valeur de A: "<<a<<endl;
cout<<"la valeur de B: "<<b<<endl;
incrementer(a);
cout<<"la valeur de A: "<<a<<endl;
permuter(a,b);
cout<<"la valeur de A: "<<a<<endl;
cout<<"la valeur de B: "<<b<<endl;
return 0;
}
POO En C++
Écrire une classe «Rectangle» ayant deux variables « a » et « b » et une fonction membre
« surface() » qui retournera la surface du rectangle.
Corrigé
#include <iostream>
using namespace std;
class Rectangle {
public:
int a,b;
int surface(){
return a*b;
}
};
int main() {
Rectangle rectangle;
cout<<"Entrez la largeur(a) du rectangle :"<<endl;
cin>>rectangle.a;
cout<<"Entrez la longueur(b) du rectangle:"<<endl;
cin>>rectangle.b;
Écrire une classe « Somme » ayant deux variables « n1 » et « n2 » et une fonction membre
« som() » qui calcule la somme. Dans la méthode principale main demandez à
l’utilisateur d’entrez deux entiers et passez-les au constructeur par défaut de la classe
« Somme » et afficher le résultat de l’addition des deux nombres.
Corrigé
#include <iostream>
using namespace std;
class Somme{
public:
int n1, n2;
int som(){
return n1 + n2;
}
};
Écrire une classe C++ appelée « Etudiant » avec les membres suivant :
nom : (de type char),
note1, note2 : (de type float)
calc_moy() : calcule la note moyenne.
afficher () : affiche le nom et la note moyenne.
Le programme principal (main) demande à l’utilisateur d’entrer le nom et les notes d'un
étudiant. et affiche leur nom et la note moyenne.
Corrigé
#include <iostream>
using namespace std;
class Etudiant {
public:
string nom;
float note1, note2;
float calc_moy(){
return (note1 + note2)/2;
}
int main(){
string nom;
int note1, note2;
cout << "Entrez le nom: ";
cin >> nom;
cout << "Entrez la première note: ";
cin >> note1;
cout << "Entrez la deuxième note: ";
cin >> note2;
Etudiant E (nom, note1, note2);
E.afficher();
return 0;
}
Réaliser une classe point permettant de manipuler un point d'un plan.on prévoira :
3) une fonction membre déplace effectuant une translation définie par ses deux
arguments dx et dy (double)
6)une fonction membre distance effectuant calculant la distance entre deux point.
7)une fonction membre milieu donnant le milieu d'un segment.
on écrira séparément:
Corrigé
#include <iostream>
#include <math.h>
class point {
double x;
double y;
public:
point();
point(double,double);
point(point &);
~point();
double get_x();
double get_y();
void affiche();
void saisir();
};
point::point(){ }
point::point(point &p) {
set_x(p.get_x());
set_y(p.get_y());
point::~point() {}
set_y(get_y()+dy);
return *this;
double p1,x1,x2;
x1=(get_x()-p.get_x())*(get_x()-p.get_x());
x2=(get_y()-p.get_y())*(get_y()-p.get_y());
//p1=sqrt(((get_x()-p.x)*((get_x()-p.x))+((get_y()-p.y)*(get_y()-p.y)));
p1=sqrt(x1+x2);
return p1;
void point::affiche()
cout<<"x="<<get_x()<<endl;
cout<<"y="<<get_y()<<endl;
void point::saisir()
cout<<"x="<<endl;
cin>>x;
cout<<"y="<<endl;
cin>>y;
point p1;
p1.x=(get_x()+p.get_x())/2;
p1.y=(get_y()+p.get_y())/2;
return p1;
int main()
point p(1,1);
point x(5,5);
point c;
p.affiche();
p.deplace(5,5);
p.affiche();
c=p.milieu(x);
c.affiche();
Écrire un programme qui simule la gestion d’un simple compte bancaire. Le compte est
créé avec un solde initial. Il est possible de déposer et de retirer des fonds, d’ajouter des
intérêts et de connaître le solde actuel. Cela devrait être implémenté dans une classe
nommée Account qui comprend:
Corrigé
#include <iostream>
class Compte {
private:
double balance = 0;
public:
Compte() : balance(0) {}
Compte(double initial_balance) : balance(initial_balance) {}
double getBalance() const { return balance; }
void deposer(double amount) { balance += amount; }
void retirer (double amount) { balance -= amount; }
void ajouter_Interet (double rate) { balance = balance*(1 + rate); }
};
int main() {
Compte compte1;
Compte compte2(3000);
compte1.deposer(100);
compte2.retirer(1000);
compte1.ajouter_Interet (0.3);
cout << compte1.getBalance() << "\n";
cout << compte2.getBalance();
return 0;
Corrigé
#include <iostream>
using namespace std;
class Temps {
private:
int heures;
int minutes;
int seconds;
public:
Temps() { setTemps(0, 0, 0); }
Temps(int h, int m, int s) { setTemps(h, m, s); }
int main() {
t1.getTemps();
t2.getTemps();
t3.ajouterTemps(t1, t2);
t3.getTemps();
}
Écrire un programme utilisant une classe rectangle dont le constructeur prend deux
paramètres, largeur et hauteur et qui offre les fonctions suivantes :
1) calcul du périmètre
2) calcul de la surface
3) affichage
Corrigé
#include<iostream>
#include <cstdlib>
class Rectangle {
private:
int largeur;
int hauteur;
public:
~Rectangle();
void afficher();
};
largeur = initLargeur;
hauteur = initHauteur;
Rectangle::~Rectangle(){ }
void Rectangle::afficher() {
}
}
int main()
Rectangle monRectangle(0,0);
int value;
while(true)
do
switch(choix)
case '1':
monRectangle.setLargeur(value); break;
case '2':
monRectangle.setHauteur(value); break;
case '3':
case '4':
monRectangle.afficher(); break;
case '5':
exit(0); break;
default:
exit(1);
}
}
return 0;
Exercice 61 : L'héritage
Écrivez un programme qui définit une classe appelée Forme avec un constructeur qui
donne de la valeur à la largeur(x) et à la hauteur(y). Définir la méthode aire() dans les
deux sous-classes Triangle et Rectangle, qui calculent l’aire. Dans la méthode principale
main, définissez deux variables, un triangle et un rectangle, puis appelez la fonction
aire() dans ces deux variables.
Notez que:
Corrigé
#include <iostream>
using namespace std;
class Forme {
protected:
float x, y;
public:
Forme(float x, float y)
{
this->x = x;
this->y = y;
}
};
float aire()
{
return (x * y);
}
};
float aire()
{
return (x * y / 2);
}
};
Écrire une classe «Personne» ayant deux variables « nom » et « âge » sont privées et un
constructeur avec paramètres, Puis écrire une fonction amie (fonction Friend) à
l'extérieur de la classe qui permet d'afficher les informations d'une personne (nom et
l'âge).
Corrigé
#include <iostream>
using namespace std;
class Personne {
private:
string nom;
int age;
public:
Personne (string n,int a)
{ nom=n ; age=a; }
friend void affiche (Personne p);
};
int main()
{ Personne p("mohamed",32);
affiche(p);
}
Corrigé
#include <iostream>
using namespace std;
class Forme{
public:
virtual void aire() {cout<<"Forme"<<endl;}
};
int main()
{
Forme * T[4];
T[0]= new Triangle(6,5);
T[1]= new Carre(5);
T[2]= new Cercle(6);
T[3]= new Rectangle(3,4) ;
T[0]->aire();
T[1]->aire();
T[2]->aire();
T[3]->aire();
return 0;
}
1)Écrire une classe A abstraite ayant 3 méthodes: deux méthodes sont des fonctions
virtuelles purs (afficher1() et afficher2() et la troisième bien définie s'appelle afficher3().
2) Écrire une classe B qui hérite de la classe A dans cette classe redéfinir les deux
fonctions virtuelles précédentes.
2) Écrire une fonction main() qui permet de déclarer un objet (b) de la classe B, puis
tester les trois méthodes sur cet objet.
Corrigé
#include <iostream>
using namespace std;
// Classe abstraite
class A {
public:
virtual void afficher1()=0; //Fonction virtuelle pure
virtual void afficher2()=0; //Fonction virtuelle pure
void afficher3()
{
cout << " C'est la méthode afficher3 de la classe mére" << endl;
}
};
class B : public A
{
public:
void afficher1()
{
cout << " C'est la méthode afficher1 de la classe fille" << endl;
}
void afficher2()
{
cout << " C'est la méthode afficher2 de la classe fille" << endl;
}
};
int main()
{
B b;
b.afficher1();
b.afficher2();
b.afficher3();
return 0;
}
L'objectif de cet exercice corrigé en C++ est de définir les opérateurs de comparaisons et les
opérateurs arithmétiques d'une classe Fraction en utilisant les fonctions membres et les
fonctions amies
6) Définir les opérateurs de comparaison (==, !=, <, >, <=, >=) sur deux fractions
Corrigé
#include <iostream>
using namespace std;
class fraction {
int num;
int den;
public:
fraction(int a = 1, int b = 1)
{
num = a;
den = b;
}
void afficher()
{
cout << num << "/" << den << endl;
}
fraction inverse()
{
fraction r;
r.num = den;
r.den = num;
return r;
}
fraction operator+(fraction f)
{
fraction s;
s.num = num * f.den + den * f.num;
s.den = den * f.den;
return s;
}
fraction operator-(fraction f)
{
fraction s;
s.num = num * f.den - den * f.num;
s.den = den * f.den;
return s;
}
fraction operator*(fraction f)
{
fraction s;
s.num = num * f.num;
s.den = den * f.den;
return s;
}
fraction operator/(fraction f)
{
return *this * (f.inverse());
}
fraction operator+(int x)
{
fraction r(x, 1);
return *this + r;
/* Ou
fraction s;
s.num = num + den * x;
s.den = den;
return s;
*/
}
fraction operator-(int x)
{
fraction r(x, 1);
return *this - r;
}
fraction operator*(int x)
{
fraction r(x, 1);
return *this * r;
}
fraction operator/(int x)
{
fraction r(x, 1);
return *this / r;
}
bool operator>(fraction f)
{
return (num * f.den > den * f.num);
}
bool operator>=(fraction f)
{
return (num * f.den >= den * f.num);
}
bool operator==(fraction f)
{
return (num * f.den == den * f.num);
}
bool operator<(fraction f)
{
return !(*this >= f);
}
bool operator<=(fraction f)
{
return !(*this > f);
}
bool operator!=(fraction f)
{
return !(*this == f);
}
};
int main()
{
fraction f1(1, 2), f2(2, 3);
cout << "Fraction F1 : ";
f1.afficher();
cout << "Fraction F2 : ";
f2.afficher();
if (f1 == f2)
cout << "Les deux fractions sont egales" << endl;
else
cout << "Les deux fractions ne sont pas egales" << endl;
/*
cout << "La fraction la plus petite: ";
if (f1 < f2)
f1.afficher();
else if(f1 > f2)
f2.afficher();
if (f1 != f2)
cout << "les deux fractions ne sont pas egales" << endl;
else
cout << "Les deux fractions sont egales" << endl;
*/
}
Tags C++ Ecrire un programme en C++ les exercices corrigés en C++ programmation C++ programmez en c++
Facebook Twitter
ENREGISTRER UN COMMENTAIRE
0 Commentaires
Saisir un commentaire