Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

correc Serie N3 C++

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 16

Programmation C++

2ème année
Série d’exercices N°3

Exercice 1

Écrivez une classe ayant deux variables privées et une fonction membre qui retournera
l'aire du rectangle

Exercice 2

Écrivez un programme en C++ qui demande à l'utilisateur de saisir deux entiers dans la
fonction main. Ces entiers doivent ensuite être transmis au constructeur par défaut
d'une classe. Le programme doit calculer et afficher le résultat de l'addition de ces deux
nombres.

Exercice 3

Écrivez une classe C++ appelée 'student' avec les membres de données suivants :

• name (de type char)

• note1, note2 (de type entier)

Le programme demande à l'utilisateur d'entrer le nom et les notes. Ensuite, la fonction


calc_media() calcule la moyenne des notes et la fonction disp() affiche le nom et la
moyenne totale des notes à l'écran sur des lignes différentes, utilisé les constructeur
d’objet.

Exercice 4

Effectuez une opération d'addition sur des nombres complexes en utilisant une classe
et un objet. Le programme doit demander la partie réelle et la partie imaginaire de deux
nombres complexes, puis afficher les parties réelle et imaginaire de leur somme.

Exercice 5

Écrivez un programme qui définit une classe Shape avec un constructeur qui attribue
des valeurs à la largeur et à la hauteur. Définissez ensuite deux sous-classes, Triangle et
Rectangle, qui calculent l'aire de la forme avec la méthode area(). Dans la fonction
main, définissez deux variables, un triangle et un rectangle, puis appelez la fonction
area() sur ces deux variables.

Exercice 6
Effectuez une opération d'addition sur des nombres complexes en utilisant une classe
et un objet. Le programme doit demander la partie réelle et la partie imaginaire de deux
nombres complexes, puis afficher les parties réelle et imaginaire de leur somme.

Exercice 7

Écrivez un programme avec une classe mère Animal. À l'intérieur, définissez des
variables pour le nom et l'âge, ainsi qu'une fonction set_value(). Ensuite, créez deux
classes dérivées Zebra et Dolphin qui affichent un message indiquant l'âge, le nom et
fournissant des informations supplémentaires (par exemple, le lieu d'origine).

Exercice 8

Créez une classe MobilePhone avec des attributs tels que la marque, le modèle, le prix
et la durée de vie de la batterie. Implémentez des méthodes pour vérifier si le téléphone
est abordable en fonction d'un budget donné.

Pour résoudre ces exercices :

1. Commencez par concevoir la structure de la classe avec des attributs et des


méthodes.

2. Implémentez des constructeurs pour initialiser les objets.

3. Définissez des fonctions membres pour effectuer diverses opérations sur les
objets.

4. Testez vos classes en créant des objets dans la fonction main() et en appelant les
méthodes.
Exercice1

#include <iostream>

using namespace std;

class Rectangle {

private:

double longueur; // Variable privée pour stocker la longueur du rectangle

double largeur; // Variable privée pour stocker la largeur du rectangle

public:

// Constructeur pour initialiser longueur et largeur

Rectangle(double l, double w) : longueur(l), largeur(w) {}

// Fonction membre pour calculer et retourner l'aire du rectangle

double calculerAire() const {

return longueur * largeur;

};

int main() {

double longueur, largeur;

// Demander à l'utilisateur d'entrer la longueur et la largeur

cout << "Entrez la longueur du rectangle : ";

cin >> longueur;

cout << "Entrez la largeur du rectangle : ";

cin >> largeur;

// Création de l'objet Rectangle avec les valeurs saisies par l'utilisateur

Rectangle rect(longueur, largeur);


// Affichage de l'aire du rectangle

cout << "L'aire du rectangle est : " << rect.calculerAire() << endl;

return 0;

Exercice 2 :

#include <iostream>

using namespace std;

class Addition {

private:

int a; // Premier entier

int b; // Deuxième entier

public:

// Constructeur par défaut qui initialise les membres

Addition(int x, int y) : a(x), b(y) {}

// Fonction membre pour calculer la somme

int calculerSomme() const {

return a + b;

};

int main() {

int nombre1, nombre2;


// Demande à l'utilisateur d'entrer deux entiers

cout << "Entrez le premier entier : ";

cin >> nombre1;

cout << "Entrez le deuxième entier : ";

cin >> nombre2;

// Création de l'objet Addition avec les valeurs saisies par l'utilisateur

Addition addition(nombre1, nombre2);

// Affichage du résultat de l'addition

cout << "La somme de " << nombre1 << " et " << nombre2 << " est : " <<
addition.calculerSomme() << endl;

return 0;

Exercice 3 :

#include <iostream>
#include <string>
using namespace std;

class Student {
string name; // Utilisation de std::string au lieu d'un tableau de caractères
int note1;
int note2;
public:
// Constructeur pour initialiser le nom et les notes
Student(const string& n, int n1, int n2) {
name = n;
note1 = n1;
note2 = n2;
}
// Fonction pour calculer la moyenne des notes
float calc_media() const {
return (note1 + note2) / 2.0;
}
// Fonction pour afficher le nom et la moyenne
void disp() const {
cout << "Nom : " << name << endl;
cout << "Moyenne : " << calc_media() << endl;
}
};

int main() {
string nom;
int n1, n2;

// Demande de l'entrée de l'utilisateur


cout << "Entrez le nom de l'étudiant : ";
getline(cin, nom); // Utilisation de getline pour lire un std::string
cout << "Entrez la première note : ";
cin >> n1;
cout << "Entrez la deuxième note : ";
cin >> n2;

// Création de l'objet Student


Student etudiant(nom, n1, n2);

// Affichage des informations de l'étudiant


etudiant.disp();
return 0;
};

Exercice 4 :

#include <iostream>

using namespace std;

class Complex {

private:

double real;

double imag;

public:

// Constructeur avec paramètres

Complex(double r, double i) : real(r), imag(i) {}

// Fonction pour ajouter un autre nombre complexe

Complex add(const Complex& other) const {

return Complex(real + other.real, imag + other.imag);

// Fonction pour afficher le nombre complexe

void display() const {

cout << real << " + " << imag << "i" << endl;

};
int main() {

double real1, imag1, real2, imag2;

// Demande de l'utilisateur pour le premier nombre complexe

cout << "Entrez la partie réelle du premier nombre complexe: ";

cin >> real1;

cout << "Entrez la partie imaginaire du premier nombre complexe: ";

cin >> imag1;

// Demande de l'utilisateur pour le deuxième nombre complexe

cout << "Entrez la partie réelle du deuxième nombre complexe: ";

cin >> real2;

cout << "Entrez la partie imaginaire du deuxième nombre complexe: ";

cin >> imag2;

// Création des deux objets Complex

Complex num1(real1, imag1);

Complex num2(real2, imag2);

// Calcul de la somme des deux nombres complexes

Complex sum = num1.add(num2);

// Affichage du résultat

cout << "La somme des deux nombres complexes est : ";

sum.display();

return 0;

}
Exercice 5

#include <iostream>

using namespace std;

// Classe de base Shape

class Shape {

protected:

float width; // Largeur

float height; // Hauteur

public:

// Constructeur

Shape(float w, float h) : width(w), height(h) {}

// Méthode virtuelle pour calculer l'aire

virtual float area() = 0; // Méthode virtuelle pure

};

// Sous-classe Triangle

class Triangle : public Shape {

public:

// Constructeur

Triangle(float w, float h) : Shape(w, h) {}

// Implémentation de la méthode area()

float area() override {

return (width * height) / 2; // Aire du triangle

};
// Sous-classe Rectangle

class Rectangle : public Shape {

public:

// Constructeur

Rectangle(float w, float h) : Shape(w, h) {}

// Implémentation de la méthode area()

float area() override {

return width * height; // Aire du rectangle

};

int main() {

// Création d'un triangle avec une base de 5 et une hauteur de 10

Triangle triangle(5, 10);

cout << "Aire du triangle : " << triangle.area() << endl;

// Création d'un rectangle avec une largeur de 4 et une hauteur de 6

Rectangle rectangle(4, 6);

cout << "Aire du rectangle : " << rectangle.area() << endl;

return 0;

Exercice 6

#include <iostream>

using namespace std;


// Classe mère

class Mere {

public:

// Méthode pour afficher un message de la classe mère

void display() {

cout << "Message de la classe mère." << endl;

};

// Classe fille qui hérite de la classe mère

class Fille : public Mere {

public:

// Méthode pour afficher un message de la classe fille

void display() {

cout << "Message de la classe fille." << endl;

};

int main() {

// Création d'un objet de la classe fille

Fille maFille;

// Appel de la méthode display() sur l'objet de la classe fille

maFille.display();

return 0;

}
Exercice 7

#include <iostream>

#include <string>

using namespace std;

// Classe mère Animal

class Animal {

protected:

string name;

int age;

public:

// Constructeur de la classe mère

Animal(const string& name, int age) : name(name), age(age) {}

// Méthode pour afficher les informations

void display() const {

cout << "Name: " << name << ", Age: " << age << "." << endl;

};

// Classe dérivée Zebra

class Zebra : public Animal {

public:

// Utilisation du constructeur de la classe mère


Zebra(const string& name, int age) : Animal(name, age) {}

};

// Classe dérivée Dolphin

class Dolphin : public Animal {

public:

// Utilisation du constructeur de la classe mère

Dolphin(const string& name, int age) : Animal(name, age) {}

};

// Fonction principale

int main() {

string zebra_name, dolphin_name;

int zebra_age, dolphin_age;

// Saisie des informations pour le zèbre

cout << "Enter the name of the Zebra: ";

getline(cin, zebra_name);

cout << "Enter the age of the Zebra: ";

cin >> zebra_age;

cin.ignore(); // Nettoyer le buffer

// Saisie des informations pour le dauphin

cout << "Enter the name of the Dolphin: ";

getline(cin, dolphin_name);

cout << "Enter the age of the Dolphin: ";

cin >> dolphin_age;

// Création des objets Zebra et Dolphin

Zebra z(zebra_name, zebra_age);

Dolphin d(dolphin_name, dolphin_age);


// Affichage des informations

cout << "\nDisplaying information:" << endl;

cout << "Zebra: ";

z.display();

cout << "Dolphin: ";

d.display();

return 0;

Exercice 8

#include <iostream>

#include <string>

using namespace std;

// Définition de la classe MobilePhone

class MobilePhone {

private:

string brand; // Marque du téléphone

string model; // Modèle du téléphone

float price; // Prix du téléphone

int batteryLife; // Durée de vie de la batterie en heures

public:

MobilePhone(const string& b, const string& m, float p, int bl) : brand(b), model(m),


price(p), batteryLife(bl) {}

// Méthode pour vérifier si le téléphone est abordable

bool isAffordable(float budget) const {

return price <= budget;


}

// Méthode pour afficher les détails du téléphone

void displayDetails() const {

cout << "Marque: " << brand << endl;

cout << "Modèle: " << model << endl;

cout << "Prix: " << price << " €" << endl;

cout << "Durée de vie de la batterie: " << batteryLife << " heures" << endl;

};

// Fonction main pour tester la classe

int main() {

// Création d'un objet MobilePhone

MobilePhone phone1("Samsung", "Galaxy S21", 799.99, 24);

MobilePhone phone2("Apple", "iPhone 13", 899.99, 20);

cout << "Détails du téléphone 1:" << endl;

phone1.displayDetails();

// Vérifier si le téléphone est abordable avec un budget de 800 €

float budget = 800.0;

if (phone1.isAffordable(budget)) {

cout << "Le téléphone 1 est abordable." << endl;

} else {

cout << "Le téléphone 1 n'est pas abordable." << endl;

cout << endl; // Ligne vide pour la séparation


// Afficher les détails du deuxième téléphone

cout << "Détails du téléphone 2:" << endl;

phone2.displayDetails();

// Vérifier si le téléphone est abordable avec un budget de 800 €

if (phone2.isAffordable(budget)) {

cout << "Le téléphone 2 est abordable." << endl;

} else {

cout << "Le téléphone 2 n'est pas abordable." << endl;

return 0;

Vous aimerez peut-être aussi