Computing">
PDF 20231103 170552 0000
PDF 20231103 170552 0000
PDF 20231103 170552 0000
É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;
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;}
É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; }};
int main (){
int n1, n2;
cout<<"Entrez le premier nombre :";
cin>>n1;
cout<<"Entrez le deuxième nombre :";
cin>>n2;
Somme obj(n1,n2);
cout<<"Le résultat de l'addition est :"<< obj.som() <<"\n";
return 0;
}
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)
4)une fonction membre affiche se contentant d'afficher les coordonnées cartésiennes du point.
5)une fonction membre saisir se contentant de saisir les coordonnées cartésiennes du point.
6)une fonction membre distance effectuant calculant la distance entre deux point.
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 set_x(double x1);
void affiche();
void saisir();
point::point(){ }
point::point(point &p) {
set_x(p.get_x());
set_y(p.get_y());}
point::~point() {}
set_x(get_x()+dx);
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:
1) Un constructeur par défaut qui met le solde initial à zéro.
2) Un constructeur qui accepte une balance initial comme paramètre.
3) Une fonction getBalance qui renvoie le solde actuel.
4) Une méthode deposer pour déposer un montant spécifié.
5) Une méthode retirer pour retirer un montant spécifié.
6) Une méthode ajouter_Interet pour ajouter de l’intérêt au compte.
La méthode ajouter_Interet prend le taux d’intérêt comme paramètre et modifie le solde du
compte en solde * (1 + taux d’intérêt).
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); }
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
ainsi que les accesseurs et mutateurs triviaux (lecture et modification de la largeur et de la
hauteur).
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:
#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);};
void affiche (Personne p){
cout<<"votre nom est: "<<p.nom<<endl;
cout<<"votre âge est:"<<p.age;}int main()
{ Personne p("mohamed",32);
affiche(p);}
2) Écrire la classe triangle qui hérite de la classe Forme et comporte les attributs
3) Écrire la classe Cercle qui hérite de la classe Forme et comporte l'attribut rayon
4) Écrire la classe Rectangle qui hérite de la classe Forme et comporte les attributs
6) Écrire une fonction main() qui permet de déclarer un tableau des pointeurs de type Forme puis
remplir ce tableau avec les instances de types (Cercle, Rectangle, Triangle, Carré) et après afficher
la surface de chaque objet.
Corrigé
#include <iostream>
class Forme{
public:
{ int base;
int hauteur ;
public:
{ int rayon ;
public:
{ int cote;
public:
{ int longueur;
int largeur;
public:
int main(){
Forme * T[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>
// Classe abstraite
class A {
public:
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>
class fraction {
int num;
int den;
public:
fraction(int a = 1, int b = 1) {
num = a;
den = b; }
void afficher(){
fraction inverse() {
fraction r;
r.num = den;
r.den = num;
return r;}
fraction operator+(fraction f) {
fraction s;
return s;}
fraction s;
return s;}
fraction operator*(fraction f) {
fraction s;
return s; }
fraction operator/(fraction f) {
fraction operator+(int x) {
fraction r(x, 1);
return *this + r;
/* Ou
fraction s;
s.den = den;
return s;*/ }
return *this - r; }
fraction operator*(int x) {
return *this * r; }
return *this / r; }
bool operator>(fraction f) {
bool operator>=(fraction f) {
bool operator<(fraction f) {
return f + x;}
return f - x;}
return f * x;}
return f / x;}
int main(){
f1.afficher();
f2.afficher();
(f1 + f2).afficher();
(f1 - f2).afficher();
(f1 * f2).afficher();
(f1 / f2).afficher();
(f1 + 5).afficher();
cout << "3 * F2 = ";
(3 * f2).afficher();
if (f1 == f2)
else
cout << "Les deux fractions ne sont pas egales" << endl;
f1.afficher(); }
f2.afficher(); }
f1.afficher();
f2.afficher();
if (f1 != f2)
cout << "les deux fractions ne sont pas egales" << endl;
else