# Programmation C++/Les structures de contrôles/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 de contrôle
### EXERCICE 1

Écrire un programme qui demande à l'utilisateur de taper un entier et qui affiche GAGNE si l'entier est entre 56 et 78 bornes incluses PERDU sinon.
Cet exercice a pour but de vérifier les points techniques suivants :
* La notion de variables et leur déclaration.
* L'utilisation de cin et de cout.
* Le choix d'une structure de contrôle adaptée au problème !
Voici le fichier source :

### EXERCICE 2

Écrire un programme qui affiche tous les entiers de 8 jusqu’à 23 (bornes incluses) en utilisant un for.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation rudimentaire d'un for.
Voici le fichier source :

### EXERCICE 3

Même exercice mais en utilisant un while.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation rudimentaire d'un while.
Voici le fichier source :

### EXERCICE 4

Écrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche leur somme.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation d'un for.
* Étude d'un algorithme usuel : calcul d'une somme.
Voici le fichier source :

### EXERCICE 5

Écrire un programme qui demande à l’utilisateur de taper 10 entiers et qui affiche le plus petit de ces entiers.
Voici le fichier source :

### EXERCICE 6

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule la somme des cubes de 5^3 à N^3.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation simple du for.
* Étude d'un algorithme usuel : calcul d'une somme.
* Modélisation d'un problème simple issu des mathématiques.
Voici le fichier source :

### EXERCICE 7

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par :
u(0)=3 u(n+1)=3.u(n)+4
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation simple du for.
* Étude d'un algorithme usuel : calcul des termes d'une suite récurrente.
* Modélisation d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 8

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par : u(0)=1 u(1)=1 u(n+1)=u(n)+u(n-1)
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation simple du for.
* Étude d'un algorithme usuel : calcul d'une suite récurrente.
* Modélisation d'un problème simple issu des mathématiques.
Voici le fichier source :

### EXERCICE 9

Écrire un programme qui demande à l’utilisateur de taper un entier N entre 0 et 20 bornes incluses et qui affiche N+17. Si on tape une valeur erronée, il faut afficher "erreur" et demander de saisir à nouveau l'entier.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation simple du while.
* Validation des données saisies par l'utilisateur.
Voici le fichier source :

### EXERCICE 10

Écrire un programme qui permet de faire des opérations sur un entier (valeur initiale à 0). Le programme affiche la valeur de l'entier puis affiche le menu suivant :
1. Ajouter 1 2. Multiplier par 2 3. Soustraire 4 4. Quitter
Le programme demande alors de taper un entier entre 1 et 4. Si l'utilisateur tape une valeur entre 1 et 3, on effectue l'opération, on affiche la nouvelle valeur de l'entier puis on réaffiche le menu et ainsi de suite jusqu'à ce qu'on tape 4. Lorsqu'on tape 4, le programme se termine.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation du while.
* Utilisation du switch.
* Gestion d'un programme à l'aide d'un menu.
* Modélisation d'un problème simple sous forme informatique.
Voici le fichier source :

### EXERCICE 11

Écrire un programme qui demande à l'utilisateur de taper des entiers strictement positifs et qui affiche leur moyenne. Lorsqu'on tape une valeur négative, le programme affiche ERREUR et demande de retaper une valeur. Lorsqu'on tape 0, cela signifie que le dernier entier a été tapé. On affiche alors la moyenne. Si le nombre d'entiers tapés est égal à 0, on affiche PAS DE MOYENNE.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation d'un while de difficulté moyenne.
* Étude d'un algorithme usuel : calcul d'une moyenne.
Voici le fichier source :

### EXERCICE 12

Écrire un programme qui demande à l'utilisateur de taper un entier N et qui calcule u(N) défini par : u(0)=3 u(1)=2 u(n)=n.u(n-1)+(n+1).u(n-2)+n
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation d'un for.
* Étude d'un algorithme usuel : calcul d'une suite récurrente assez difficile.
* Modélisation d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 13

Écrire un programme qui demande de saisir 10 entiers et qui affiche le nombre d'occurrences de la note la plus haute.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation d'un for.
* Étude d'un algorithme usuel de difficulté moyenne : calcul du nombre d’occurrence d'une valeur.
Voici le fichier source :

### EXERCICE 14

Écrire un programme qui demande de saisir un entier N et qui affiche N!.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation du for.
* Étude d'un algorithme usuel : calcul d'une factorielle.
* Modélisation d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 15

Écrire un programme qui demande de saisir un entier et qui indique si cet entier est premier ou non.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation d'un while de difficulté moyenne.
* Étude d'un algorithme usuel assez difficile : primarité d'un entier.
* Modélisation d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 16

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le nombre de nombres premiers inférieurs ou égaux à N.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation des boucles for et while.
* Imbrication de boucles.
* Lire précisément un énoncé.
* Modélisation assez complexe d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 17

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche le N-ième nombre premier.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation des boucles for et while.
* Imbrication de boucles assez complexe.
* Lire précisément un énoncé.
* Modélisation assez complexe d'un problème issu des mathématiques.
Voici le fichier source :

### EXERCICE 18

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.
et ainsi de suite
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation des boucles for.
* Imbrication de boucles assez complexe.
Voici le fichier source :

### EXERCICE 19

Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.
et ainsi de suite.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation des boucles for.
* Imbrication de boucles.
* Voici le fichier source :

### EXERCICE 20

On considère la suite hongroise : u(0)=a (a entier) si u(n) pair alors u(n+1)=u(n)/2 sinon u(n+1)=3*u(n)+1
Pour toutes les valeurs a, il existe un entier N tel que u(N)=1 (conjecture admise).
a) Écrire un programme qui demande à l'utilisateur de taper a et qui affiche toutes les valeurs de u(n) de n=1 à n=N.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation du while.
* Lire précisément un énoncé.
* Modélisation assez complexe d'un problème issu des mathématiques.
Voici le fichier source :
b) Écrire un programme qui demande à l'utilisateur de taper un entier M puis qui cherche la valeur de a comprise entre 2 et M qui maximise la valeur de N. On appelle A cette valeur. Le programme doit afficher la valeur A et la valeur N correspondante.
Cet exercice a pour but de vérifier les points techniques suivants :
* Utilisation du while et du for.
* Imbrication de boucles.
* Lire précisément un énoncé.
* Modélisation assez complexe d'un problème issu des mathématiques.
Voici le fichier source :