# Programmation C++/Les classes/Exercices de développement

* Avant-propos
* Introduction
* Compilation
* Un premier programme
* Les commentaires
* Le préprocesseur
* Les types de base et les déclarations
** Exercices
* Les opérations de base
* Les entrées-sorties
* Les pointeurs
** Exercices
* Les références
* Les tableaux
** Exercices
** Exercices sur les tableaux statiques
** Exercice : Tris des tableaux à une dimension
** Solution : Tris des tableaux à une dimension
* Les structures de contrôle
** Exercices
** Exercices if...else et switch
* Les fonctions
** Exercices
* Les structures
** Exercices
* Les classes
** Exercices
** Exercices de développement
* Les espaces de noms
* Les exceptions
* Les templates
** Exercices
* Conventions d'appel
* Les fichiers
* La librairie standard
* Expressions rationnelles
* Interfaces graphiques
* Bibliographie et liens

## Anciennes pages

* Opérateurs
* Héritage
* Polymorphisme
* Avant-propos
* Introduction
* Compilation
* Un premier programme
* Les commentaires
* Le préprocesseur
* Les types de base et les déclarations
** Exercices
* Les opérations de base
* Les entrées-sorties
* Les pointeurs
** Exercices
* Les références
* Les tableaux
** Exercices
** Exercices sur les tableaux statiques
** Exercice : Tris des tableaux à une dimension
** Solution : Tris des tableaux à une dimension
* Les structures de contrôle
** Exercices
** Exercices if...else et switch
* Les fonctions
** Exercices
* Les structures
** Exercices
* Les classes
** Exercices
** Exercices de développement
* Les espaces de noms
* Les exceptions
* Les templates
** Exercices
* Conventions d'appel
* Les fichiers
* La librairie standard
* Expressions rationnelles
* Interfaces graphiques
* Bibliographie et liens

## Anciennes pages

* Opérateurs
* Héritage
* Polymorphisme
[ Modifier le sommaire ]

## Exercices
### EXERCICE 1

Écrire une classe Fraction dont le fichier d'en-tête est le suivant :
Voici le rôle de chaque fonction :
* Fraction; : le constructeur par défaut initialise la fraction à 0.
* Fraction(int); : initialise la fraction à l'entier i.
* Fraction(int num, int den); : initialise le numérateur et le dénominateur de la fraction.
* ostream & operator<<(ostream & out, const Fraction &f) : affiche à l'écran la fraction f.
* istream & operator>>(istream &in, Fraction &f) : saisit au clavier la fraction f.
* Fraction operator+(const Fraction & f); permet de faire la somme de 2 fractions.
* Fraction operator-(const Fraction & f); permet de faire la différence de 2 fractions.
* Fraction operator*(const Fraction & f); permet de faire la multiplications de 2 fractions.
* Fraction operator/(const Fraction & f); permet de faire la division de 2 fractions.
* int pgcd(int x, int y) : calcule le pgcd de 2 entiers.
* void normalise : normalise la fraction. Le dénominateur doit être positif et la fraction irréductible.
Écrire un programme principal qui saisit au clavier 2 fractions f1 et f2 et qui affiche E=(f1+3/4-f2)/(f1*f2-5/8)+4.

### EXERCICE 2

Créez une classe fonction. Elle enregistre une fonction de type f(x) = a + bx + cx² avec les champs double a, b, c. Elle dispose des méthodes suivantes:
* void saisir(double a, b, c) pour entrer les coefficients,
* double image(double x) donne l'image de x par la fonction f,
* double antécédent(double x) donne l'antécédent de x par la fonction f.