Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
1. Corriger les erreurs de syntaxe du programme exo1.cpp suivant (attention à ne pas corriger une instruction
correcte)
16 ostream Complex :: operator < <( ostream &o , Complex const & z ) {
if ( z . imag () = 0) return o << z . real ();
18 if ( z . imag () > 0)
return o << z . real () << " + " << z . imag () << " i " ;
20 else
return o << z . real () << z . imag () << " i " ;
22 };
return 0;
30 }
2. Donner la commande permettant de compiler ces lignes de codes en un programme exécutable test-exo1.
Comment exécuter ce programme ? Quel est le résultat attendu ?
3. Ecrire un opérateur de conversion qui convertit un objet de classe Complex en un double. La conversion se fait
en renvoyant le module du nombre complexe.
4. Ecrire l’opérateur arithmétique + pour 2 objets de la classe Complex. Indiquer précisément où vous insérez cette
fonction dans le programme exo1.cpp.
5. Ecrire un functor (objet fonctionnel) genere_complex_unif qui renvoie un objet de classe Complex dont la partie
réelle et la partie imaginaire sont initialisées aléatoirement (uniformément) sur [0, 1].
6. Compléter le programme principal en déclarant un vector (de la librairie standard) composé de 10 objets
Complex.
Vous initialiserez ce vecteur de 2 façons différentes à l’aide du functor genere_complex_unif.
Afficher le contenu du vecteur et trier ses éléments (en appelant une fonction de la librairie standard).
1
Exercice 2
L’algorithme de tri “Quicksort” peut s’écrire simplement à l’aide de 2 fonctions : une fonction récursive “quick-
sort” dont le pseudo-code est :
fonction quicksort ( tableau , left , right )
2 si left < right
index_coupe := partition ( tableau , left , right )
4 quicksort ( tableau , left , index_coupe -1)
quicksort ( tableau , index_coupe +1 , right )
7. Ecrire une fonction partition et une fonction quicksort en s’inspirant de ces pseudo-codes pour trier un tableau
de double.
8. Ecrire un programme principal qui demande à l’utilisateur un entier n (positif) et qui crée (alloue) un tableau
dynamique de taille n.
Indiquer les en-têtes nécessaires à la compilation du programme.
9. Initialiser le tableau dynamique en demandant à l’utilisateur n réels, et trier ce tableau à l’aide de la fonction
quicksort.
Afficher le tableau trié et libérer l’espace alloué par le tableau.
10. Quelle fonction de la librairie standard du C code l’algorithme du quicksort. Comment l’utiliser ?