Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
On considère le code suivant :
double f ( double x ) {
10 return x + 4 sin ( x ) + cos ( x );
};
12
1. Corriger les erreurs de syntaxe de ce programme (attention à ne pas corriger une instruction correcte).
Ce code provient-il d’un programme écrit en C ou en C++ ? Pourquoi ?
4. Que peut-on dire de la fonction milieu ? Donner des exemples d’appel de cette fonction avec différents types.
5. Ecrire les fonctions milieu et f sous forme de functor (ou objet fonctionnel).
Exercice 2
Le but est de calculer, en C, une approximation du cosinus en un point donné.
1. Ecrice une fonction cos_somme_partielle de prototype
double c os_somme_partielle ( double x , unsigned N )
N
X (−1)n x2n
qui effectue le calcul .
n=0
(2n)!
2. Ecrire un programme principal qui demande un nombre x à l’utilisateur et qui renvoie une approximation du
cosinus lorsque l’erreur relative est inférieure à 10−6 .
Indiquer les en-têtes nécessaires pour la compilation.
1
Exercice 3
Le but de l’exercice est l’écriture en C++ d’une classe permettant de manipuler simplement les points de R3 .
1. Ecrire la déclaration d’une classe Point3d qui contient :
– 3 champs privés : les 3 coordonnées x, y et z d’un point de R3 ,
– un constructeur par defaut initialisant les coordonnées à 0,
– un constructeur prenant 1, 2 ou 3 arguments pour initialiser respectivement x, x et y ou x, y et z (les coordonnées
non explicitement initialisées seront mises à 0).
2. Ecrire pour chaque coordonnée une fonction membre de lecture (accesseur) et une fonction membre d’écriture
(mutateur).
Expliquer la différence et l’usage du mot-clé const.
On souhaite effectuer les opérations suivantes avec des objets de la classe Point3d :
– addition / soustraction de 2 points (coordonnées par coordonnées),
– translation : ajouter / soustraire un réel à toutes les coordonnées d’un point,
– dilatation : multiplier / diviser toutes les coordonnées du point par un réel.
3. Surcharger les opérateurs + et - par des fonctions membres de la classe Point3d pour additionner et soustraire 2
points.
4. Surcharger les opérateurs +,-,* et / par des fonctions amies de la classe Point3d pour effectuer les opérations de
translation et de dilatation.
5. Surcharger les opérateurs d’injection << et d’extraction >>. Donner les en-têtes à inclure.