Université Abdelmalek Essaadi
Faculté ses Sciences et techniques de Tanger
Département Génie Informatique
LST GI S5 - POO C++
2022/2023
Atelier 4
Objectif : Pratiquer les STL et les concepts avancés en C++.
Exercice 1 : Effectuer les opérations arithmétiques sur des données complexes à l'aide d'une classe et d'un objet cette
fois il faut redéfinir les opérateurs. Le programme doit demander la partie réelle et imaginaire de deux nombres com-
plexes et afficher les parties réelle et imaginaire de l’opération demandée.
Exercice 2 : Soit une chaîne de caractères contenant une date (JJ/MM/AAAA) et une heure (HH:NN) sous la
forme JJMMAAAAHHNN. Par exemple 010920091123 représente la date du 1er septembre 2009 à 11h23. Créer un
programme permettant d'extraire les différents champs et de les afficher.
Exercice 3 : Écrire un programme qui fait entrer des entiers a l'utilisateur, qui les met au fur et à mesure dans une liste
(conteneur List de la STL), qui trie cette liste puis qui affiche la liste triée.
Ecrire trois méthodes pour trier cette liste selon les algorithmes : tri a bull, tri par sélection et tri par insertion.
Exercice 4 : Écrire un programme qui fait entrer des personnes « nom, prénom, âge », qui les met au fur et à mesure
dans une liste (conteneur List de la STL), qui trie cette liste selon l’ordre alphabétique nom et prénom puis qui affiche
la liste triée.
Exercice 5 :
1. Créer un set paramètre pour le type int que vous remplirez avec tous les entiers de 1 a 100.
2. Écrire une fonction de recherche qui renvoie un booléen pour indiquer si une valeur donnée est présente
ou non dans un set que vous passerez en paramètre avec la valeur à rechercher.
3. Modifiez cette fonction en lui passant maintenant en paramètres 2 littérateurs de set<int>(début et fin) ainsi
que la valeur à rechercher.
4. Passer la fonction en Template de façon à ce qu'elle marche peu importe le type d'itérateur qui lui est
fourni (itérateur de liste, de vecteur, d'ensemble, ...).
Donner un exemple d'appel sur : un vecteur de string, une liste d'entiers, un tableau 'classique' de float.
Exercice 6 : Complétez le programme suivant pour que les erreurs susceptibles de se produire soient gérées jusqu’à
ce qu’un calcul soit effectivement mené à bout, le cas de déclanchement d’une exception il faut arrêter le programme.
#include <iostream>
using namespace std;
class Test{
public:
static int tableau[] ;
public :
static int division(int indice, int diviseur){
return tableau[indice]/diviseur;
}
};
int Test::tableau[] = {17, 12, 15, 38, 29, 157, 89, -22, 0, 5} ;
int main() {
int x, y;
cout << "Entrez l’indice de l’entier à diviser: " << endl;
cin >> x ;
cout << "Entrez le diviseur: " << endl;
cin >> y ;
cout << "Le résultat de la division est: "<< endl;
cout <<Test::division(x,y) << endl;
return 0; }
Université Abdelmalek Essaadi
Faculté ses Sciences et techniques de Tanger
Département Génie Informatique
LST GI S5 - POO C++
2022/2023
Exercice 7 : Traduire le digramme de classe suivant en code source C++.
Exercice 8 : Traduire le digramme de classe suivant en code source C++.