TP3 Atelier C++/ GL2 INSAT / Tunisie

344 vues

Publié le

TP3 Atelier C++/ GL2 INSAT / Tunisie

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
344
Sur SlideShare
0
Issues des intégrations
0
Intégrations
16
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

TP3 Atelier C++/ GL2 INSAT / Tunisie

  1. 1. [TP N°3 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 1 Prof : Mariem ZAOUALI – Niveau : GL2 1. Objectif de la séance Le but de la séance est de manipuler les notions suivantes :  Références et pointeurs  Le constructeur de recopie  Les STL 2. Références & pointeurs - 2ème partie a. Trouver la ligne de code incorrecte : N° Propositions N° Propositions 1 int x, *ptr; &x = ptr; 6 float level; int fptr = &level; 2 int x, *ptr; *ptr = &x; 7 int ivalue=1; int *iptr = &ivalue; 3 int x, *ptr; ptr = &x; ptr = 100; // Store 100 in x cout << x << endl; 8 void doubleVal(int val) { *val *= 2; } 4 int numbers[] = {10, 20, 30, 40, 50}; cout << "The third element in the array is "; cout << *numbers + 3 << endl; 9 const int array[] = {1,2,3} ; int *ptr = array ; 5 double books[20], brochure[20]; double *dptr; dptr = books; dptr = brochure; books = brochure; brochure = dptr; 10 int pint ; pint = new int ; b. Manipulation des tableaux Une association de charité a reçu les sommes d’argents suivants dans l’ordre suivant 100 DT 520 DT 30 DT 70 DT 90 DT 25 DT 60 DT 50 DT 45 DT 65 DT Cette association veut trier les sommes qu’elle a reçues, dans un ordre croissant, sans pour autant perturber l’ordre de réception des sommes d’argent.
  2. 2. [TP N°3 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 2 Ecrivez une classe (proposez sa nomination) et proposez deux méthodes permettant de trier le tableau des sommes d’argent dans l’ordre croissant. Affichez le tableau avec les sommes non triées et le tableau avec les sommes triées. 3. Le constructeur de recopie C’est quoi l’intérêt d’un constructeur par recopie ? Soit le constructeur par recopie de la classe Point suivant : Point :: Point (const Point &pt){ …} C’est quoi l’intérêt du passage par référence et l’utilisation du terme const ? Ajouter à l’exercice précédent un constructeur de recopie, permettant de recopier le contenu du tableau de donation. 4. Les STL – utilisation du vecteur a. On va reprendre l’exercice de la gestion des étudiants du TP précédent et on va remplacer l’utilisation des tableaux par l’utilisation de la classe vector. Remplacez le tableau « Etudiants» par le vector.  Modifier le constructeur.  Modifier la méthode affichage de la classe matière où vous parcourez les étudiants et vous affichez les objets de type étudiants  Ajouter une méthode pour vider le vecteur des étudiants  Ajouter la méthode trouver Etudiant par Numéro téléphone. 5. Homework : Map a. Travail demandé (voir Annexe pour comprendre la notion de Map) On se propose de développer un programme qui permettra d’ajouter, pour chaque année, l’évènement/les évènements correspondant(s). Pour ce faire, on utilisera une structure de données adaptée, c’est la map. Chaque événement est stocké dans une plusieurs std::string, donc si les évènements auront lieux pour la même année, pensez à faire une concaténation.  Ecrivez une classe pour résoudre cet exercice (à vous de choisir son nom)  Développez la méthode add_event pour rajouter un évènement (vous utiliserez pair<iterator, bool> insert(const value_type& x);
  3. 3. [TP N°3 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 3  Développez la méthode find_event_by_date pour afficher les évènements de cette année. L’affichage doit être de cette manière : (exemple de 3 évènements à l’an 2000) 2000 : Event 1 2000 : Event 2 2000 : Event 3  Développez la méthode modify_event pour modifier l’événement à une date donnée. (Pensez à résoudre le problème où vous avez plusieurs évènements pour une seule date) b. Annexe : Map  Les éléments du conteneur « Map » sont une paire formée d’une clé jumelée à une valeur  Les éléments sont triés selon leur clé.  Chacune des clés ne peut exister qu’une fois  On rajoute « #include<map> » pour pouvoir utiliser ce conteneur.  Exemple 1 d’insertion dans la map  Exemple 2 d’insertion avec la méthode « insert »  Pour parcourir les éléments d’un conteneur de type map, nous aurons besoin d’un itérateur. #include <iostream> #include <map> int main () std::map<std::string,unsigned> map_mois_idx; map_mois_idx["janvier"] = 1; map_mois_idx["février"] = 2;
  4. 4. [TP N°3 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 4 { std::map<char,int> mymap; mymap['b'] = 100; mymap['a'] = 200; mymap['c'] = 300; // show content: for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it) //First refers to the Key & Second refers to the Value std::cout << it->first << " => " << it->second << 'n'; return 0; }  Pour déterminer d’autres fonctions pouvant être appelées sur le conteneur map, visitez ce site : http://www.cplusplus.com/reference/map/map/#types

×