Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
1. Corriger les erreurs de syntaxe du programme suivant (attention à ne pas corriger une instruction correcte)
4 double f ( double x )
{
6 return ( x ^2 - 2 cos ( x ));
}
8
26 return 0;
}
3. Donner la commande permettant d’exécuter ce programme. Quel est le résultat attendu ? Ecrire mathémati-
quement l’algorithme codé dans la fonction secante.
Exercice 2
Le but est de calculer une approximation du cosinus en un point donné. Vous pouvez choisir d’écrire vos
programmes en C ou en C++ mais sans mélange des langages !
5. Ecrire une fonction fact calculant la factorielle d’un nombre entier positif k passé en argument.
1
7. 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.
8. Proposer, en justifiant, une façon d’améliorer les performances du programme (sans changer l’algorithme d’ap-
proximation).
Exercice 3
Le but de l’exercice est l’écriture en C++ d’une classe permettant de manipuler simplement les fractions ration-
nelles.
10. Je propose de surcharger l’opérateur + par une fonction membre de la façon suivante :
class fraction {
2 ...
public :
4 fraction operator +( fraction f ) {
f . num = num * f . den + den * f . num ;
6 f . den *= den ;
return f ;
8 }
...
10 }
Le code est-il correct ? Quel est le problème avec cette approche ? Donner un exemple.
Une autre façon de surcharger un opérateur est d’utiliser une fonction amie. Utiliser cette approche pour
surcharger les opérateurs arithmétiques +, -, *, / et l’opérateur d’injection <<.
12. Ecrire une fonction (membre ou amie) simplifie qui permet de simplifier une fraction rationnelle.