# Programmation C++/Les structures/Exercices

* 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 sur les structures
### EXERCICE 1

a) Écrire une structure fraction composée de 2 entiers : un numérateur et un dénominateur.
b) Écrire une fonction PGCD de 2 entiers positifs. c) Écrire une fonction normalise qui normalise une fraction de la manière suivante : - le numérateur et le dénominateur doivent être premier entre eux - le dénominateur est positif d) Écrire une fonction saisir qui permet de saisir une fraction. e) Écrire une fonction affiche qui affiche une fraction. f) Écrire une fonction somme qui calcule la somme de 2 fractions. Le résultat doit être normalisé.
g) Écrire 3 autres fonctions : différence, multiplie et divise comme au f) h) Écrire un programme qui permet de saisir les fractions A, B, D, E et F et qui calcule (A+B)/(D-E*F) . Le résultat sera affiché à l’écran.

### EXERCICE 2

On veut gérer des produits dans un entrepôt. Un produit est défini par : • Un code (entier) • Une désignation (chaîne de caractère) • Prix de vente (réel) • Quantité (entier) Il faut gérer une liste de produits en veillant à ce qu'il n'y ait pas deux produits avec le même code produit. Bien sûr la quantité en stock ne peut pas être négative. L’entrepôt comportera au maximum 100 produits. Sous forme d’un menu, programmer les fonctionnalités suivantes : 1. Ajouter un produit (on tape le code produit et l'intitulé, la quantité est initialisée à 0). 2. Afficher la liste de produits. 3. Afficher les produits en rupture de stock. 4. Rechercher un produit en tapant le code produit. 5. Acheter un produit en tapant le code produit et la quantité achetée. 6. Vendre un produit en tapant le code produit et la quantité vendue et générer le montant à payer 7. Trier les produits par quantité. 8. 6. Quitter

### EXERCICE 3

On veut écrire un programme qui permet de gérer une liste de disques. Un disque est défini par un code référence (une chaîne de caractères par exemple "H345"), nom de chanteur, un nom de chanson et prix. Le code référence fera au maximum 9 caractères utiles, le titre du disque et le nom du chanteur feront au maximum 99 caractères utiles. On veut gérer une liste de disques grâce au menu suivant :
1. Ajouter un disque à la liste. 2. Afficher la liste. 3. Supprimer un disque grâce à son code référence. 4. Afficher tous les disques d'un chanteur donné. 5. Afficher tous les disques ayant un titre donné. 6. Quitter On veillera à bien décomposer ce problème en différents modules et à mener une réflexion sur les fonctions nécessaires dans chaque module.