0% ont trouvé ce document utile (0 vote)
91 vues2 pages

Atelier 4

Le document présente 8 exercices de programmation en C++ utilisant des concepts avancés comme les classes, les objets, les opérateurs, les STL. Les exercices portent sur des nombres complexes, la manipulation de chaines, les containers List et Set, la gestion d'exceptions et la représentation de classes sous forme de diagrammes UML.

Transféré par

Zaoui Hanane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
91 vues2 pages

Atelier 4

Le document présente 8 exercices de programmation en C++ utilisant des concepts avancés comme les classes, les objets, les opérateurs, les STL. Les exercices portent sur des nombres complexes, la manipulation de chaines, les containers List et Set, la gestion d'exceptions et la représentation de classes sous forme de diagrammes UML.

Transféré par

Zaoui Hanane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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++.

Vous aimerez peut-être aussi