Exercices en langage C++/Les fonctions
Les fonctions.
EXERCICE 1.
Écrire une fonction distance ayant comme paramètres 4 doubles xa,ya et xb,yb qui représentent les coordonnées de deux points A et B et qui renvoie la distance AB. Tester cette fonction.
EXERCICE 2.
Écrire une fonction f ayant comme paramètres un double x et un booléen ok et qui renvoie un double par un codice_1. La fonction renvoie par un codice_1 la racine carrée de (x-1)*(2-x). La fonction renvoie par l'intermédiaire de la variable ok la valeur codice_3 si la fonction est définie au point x, codice_4 sinon. Tester cette fonction. 
EXERCICE 3.
Écrire une fonction f ayant en paramètre un entier et qui renvoie par un codice_1 un booléen : codice_3 si l'entier est premier codice_4 sinon. Tester cette fonction. 
EXERCICE 4.
Écrire une fonction f ayant comme paramètre un entier n et qui renvoie le n-ième nombre premier : cette fonction utilisera la fonction du 3). Tester cette fonction. 
EXERCICE 5.
Écrire une fonction swap ayant en paramètres 2 entiers a et b et qui échange les contenus de a et de b. Tester cette fonction.
EXERCICE 6.
Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un codice_1 un booléen b indiquant s'il existe une valeur comprise entre 0 et 10 dans les n premières cases du tableau t. Tester cette fonction. 
EXERCICE 7.
Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un codice_1 le nombre de valeurs comprises entre 0 et 10 dans les n premières cases du tableau t.Tester cette fonction. 
EXERCICE 8.
Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f possède un autre paramètre v , entier passé par référence. f doit renvoyer par un codice_1 un booléen b indiquant s'il existe une valeur comprise entre 1 et 10 dans les n premières cases du tableau t. Si f renvoie codice_3, v est égal à la valeur de la première case du tableau comprise entre 0 et 10. Tester cette fonction. 
EXERCICE 9.
Écrire une fonction f ayant en paramètres un tableau t1 de taille quelconque et un entier n indiquant la taille du tableau, ainsi qu'un tableau t2 de la même taille que t1. f doit renvoyer par un codice_1 un entier nb indiquant le nombre de valeurs comprises entre 0 et 10 dans le tableau t1. f doit mettre dans le tableau t2 les différentes valeurs comprise entre 0 et 10 qu'il a rencontrées dans le tableau t1. 
EXERCICE 10.
Écrire une fonction f ayant en paramètres un tableau t de taille quelconque et un entier n indiquant la taille du tableau. f doit renvoyer par un codice_1 un entier égal à l'indice de la première case du tableau (parmi les n premières) comprise entre 0 et 10. S'il n'existe pas de telle valeur, la fonction renvoie -1. Tester cette fonction.

Exercices en langage C++/Les classes
EXERCICE 1 : Rectangle.
Écrire un programme utilisant une classe rectangle dont le constructeur prend deux paramètres, largeur et hauteur et qui offre les fonctions suivantes :
EXERCICE 2 : Pile d'entiers.
Une pile est un ensemble dynamique d’éléments où le retrait se fait d’une façon particulière.
En effet, lorsque l’on désire enlever un élément de l’ensemble, ce sera toujours le dernier inséré qui sera retiré.
Un objet pile doit répondre aux fonctions suivantes :
Pour cela nous allons supposer que les éléments à empiler sont de type codice_1.
Le programme principal comprend la définition d'une classe pile et un programme de test qui crée deux piles p1 et p2, empile dessus des valeurs entières et les dépile pour vérifier les opérations codice_2 et codice_3.
EXERCICE 3 : Fichier.
Imaginons une application qui traite des fichiers. Ces fichiers vont être lus en mémoire, traités puis sauvegardés. Une fois lu en mémoire, un fichier a deux caractéristiques, une adresse à partir de laquelle se situe le fichier et une longueur, ce qui se concrétisera par un pointeur et une longueur en nombre d’octets. Imaginons la classe "Fichier" avec un constructeur et un destructeur et les trois méthodes suivantes :
Puis écrivons un programme maître qui instancie notre classe par new, appelle nos trois méthodes et détruit l’objet par delete.
EXERCICE 4 : Point.
Réaliser une classe point permettant de manipuler un point d'un plan.
On prévoira :
On écrira séparément :
EXERCICE 5 : Compteur.
On souhaite implémenter une classe représentant un compteur entier.
Un tel objet se caractérise par :
Il s'agit de créer une classe Compteur pour rendre le service demandé.
On écrira en outre un petit programme de test qui :
La sortie de ce programme doit donner quelque chose comme :
 0
 10
 0
EXERCICE 6 : Gestion d'étudiants.
1/ On voudrait gérer les étudiants d’une institution à l’aide d’une classe Etudiant définie par :
les attributs suivants :
- nom : nom d’un étudiant
- prénom: prénom d’un étudiant
- tabnotes : tableau contenant les notes d’un étudiant, sachant qu’un étudiant a au total 10 notes.
les méthodes suivantes :
- void saisie (), permettant la saisie d’un étudiant
- void affichage (), permettant l’affichage d’un étudiant
- float moyenne (), retourne comme résultat la moyenne des notes d’un étudiant.
- int admis (), retourne comme résultat la valeur 1, si un étudiant est admis et la valeur 0, sinon. Un étudiant est considéré comme étant 
admis lorsque la moyenne de ses notes est supérieure ou égale à 10.
- int exae_quo (Etudiant E), retourne comme résultat la valeur 1, si deux étudiants ont la même moyenne et la valeur 0, sinon.
Ecrire la classe Etudiant dans le langage C++.
2/ On voudrait maintenant représenter, à l’aide d’une nouvelle classe Etudiant_en_Maitrise, certains étudiants particuliers dans cette 
institution qui sont les étudiants en dernière année d’études. Ces étudiants possèdent en effet un attribut supplémentaire : note_memoire, 
qui représente la note de leur mémoire de fin d’études.
Les méthodes à associer à cette classe sont les suivantes :
- void saisie (), permettant la saisie d’un étudiant en maîtrise
- void affichage (), permettant l’affichage d’un étudiant en maîtrise
- float moyenne (), retourne comme résultat la moyenne des notes d’un étudiant en maîtrise
- int admis (), retourne comme résultat la valeur 1, si un étudiant est admis et la valeur 0, sinon. Un étudiant en maîtrise est considéré 
comme étant admis lorsque, d’une part, la moyenne de ses notes est supérieure ou égale à 10 et d’autre part la note obtenue pour son mémoire 
de fin d’études est supérieure ou égale à 10.
- int exae_quo (Etudiant_en_Maitrise E), retourne comme résultat la valeur 1, si deux étudiants ont d’une part la même moyenne et d’autre 
part, la même note de mémoire et retourne la valeur 0, sinon.
a) Quelles sont les méthodes qui sont à redéfinir dans la classe Etudiant_en_Maitrise ?
b) Ecrire la classe Etudiant_en_Maitrise dans le langage C++.

Exercices en langage C++/La STL
La STL.
EXERCICE 1 : La classe string.
Soit une chaîne de caractères contenant une date (JJ/MM/AAAA) et une heure (HH:NN) sous la forme codice_1. Par exemple codice_2 représente la date du 1er septembre 2009 à 11h23.
Créer un programme permettant d'extraire les différents champs et de les afficher.