Exercices corrigés C++ les classes et l’héritage – Partie 1
Avec des exercices corrigés en C++, vous pratiquerez divers concepts du langage C++. Vous commencerez par des exercices C++ de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Vous pouvez utiliser l’éditeur C++ suivant pour résoudre les exercices suivants: (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
Exercice 1:
Écrivez une classe « Rectangle » ayant deux variables « a » et « b » et une fonction membre « surface() » qui retournera la surface du rectangle.
#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; cout<<"Surface : "<< rectangle.surface(); return 0; }
Exercice 2:
Écrivez une classe « Somme » ayant deux variables « n1 » et « n2 » et une fonction membre « sum() » 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.
#include <iostream> using namespace std; class Somme{ public: int n1, n2; //constructeur par défaut Somme(int nbr1, int nbr2){ n1=nbr1; n2=nbr2; cout<<"Les nombres sont initialisés.\n"; } int sum(){ return n1 + n2; } }; int main (){ int n1, n2; cout<<"Entrez le premier nombre : \n"; cin>>n1; cout<<"Entrez le deuxième nombre : \n"; cin>>n2; //appeler le constructeur par défaut. Somme obj(n1,n2); cout<<"Le résultat de l'addition est :"<< obj.sum() <<"\n"; return 0; }
Exercice 3:
Écrivez une classe C++ appelée « Student » avec les membres suivant :
- nom (de type char),
- note1, note2 (de type int)
Le programme demande à l’utilisateur d’entrer le nom et les notes. calc_moy() calcule la note moyenne et show() affiche le nom et la note moyenne.
#include <iostream> using namespace std; class Student{ public: string nom; int note1, note2; Student(string _nom, int _note1, int _note2){ nom = _nom; note1 = _note1; note2 = _note2; } int calc_moy(){ return (note1 + note2)/2; } void show(){ cout << "Étudiant: " << nom << " \n moyenne: "<< calc_moy() << endl; } }; int main(){ string nom; int note1, note2; cout << "Entrez le nom: "; cin >> nom; cout << "Entrez les notes de deux matiéres: "; cin >> note1; cin >> note2; Student s(nom, note1, note2); s.show(); return 0; }
Exercice 4:
Effectuez une opération d’addition sur des nombres complexes à l’aide d’une classe C++ appelée « Complex ». Le programme doit demander la partie réelle et imaginaire de deux nombres complexes et afficher les parties réelle et imaginaire de leur somme.
Exemple:
Premier nombre Entrez la partie réelle: 1 Entrez la partie imaginaire: 4 Deuxième nombre Entrez la partie réelle: 2 Entrez la partie imaginaire: 3 La somme est 3 + 7i
#include <iostream> using namespace std; class Complex{ public: double real, imag; Complex(double r, double i){ real = r; imag = i; } }; int main(){ double r1, i1; cout << "Premier nombre \n"; cout << "Entrez la partie réelle: "; cin >> r1; cout << "Entrez la partie imaginaire: "; cin >> i1; //créer le nombre complexe 1 Complex c1(r1, i1); cout << "Deuxième nombre\n"; double r2, i2; cout << "Entrez la partie réelle: "; cin >> r2; cout << "Entrez la partie imaginaire: "; cin >> i2; //créer le nombre complexe 2 Complex c2(r2, i2); // calculer la somme des deux nombres complexes c1 et c2 double r = c1.real + c2.real; double i = c1.imag + c2.imag; cout << "La somme est "<< r << " + " << i << "i"; return 0; }
Exercice 5:
Créez une classe appelée « Point ». Cette classe doit avoir 2 entiers (x, y) en tant que membres privés. Le constructeur doit définir les valeurs de x et y via des paramètres. La classe doit avoir une méthode publique appelée « distance ». Cela prend un seul paramètre(Point) et renvoie la distance entre les 2 points.
Exemple:
P1 (5,6) P2 (3,2) La distance entre P1 et P2 est : 4.47214
#include <iostream> #include <math.h> using namespace std; class Point { public: Point(double _x, double _y) { x = _x; y = _y; } double getX() { return x; } double getY() { return y; } double distance(Point &p) { const double px = getX() - p.getX(); const double py = getY() - p.getY(); return sqrt(px * px + py * py); } private: double x; double y; }; int main (){ Point p1(5, 6); Point p2(3, 2); cout << " P1 (" << p1.getX() << "," << p1.getY() << ")" << endl; cout << " P2 (" << p2.getX() << "," << p2.getY() << ")" << endl; cout << "La distance entre P1 et P2 est : " << p1.distance(p2); return 0; }