SlideShare a Scribd company logo
1 of 4
Download to read offline
[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.
[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);
[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;
[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

More Related Content

What's hot

C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simplesPethrvs
 
Seance 2 - Programmation en langage C
Seance 2 - Programmation en langage CSeance 2 - Programmation en langage C
Seance 2 - Programmation en langage CFahad Golra
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage CFahad Golra
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programmeBaghdadi Wajih
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programmeBaghdadi Wajih
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage cEbrima NJIE
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021Dalila Chouaya
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 

What's hot (20)

Chapitre 04 : les fonctions
Chapitre 04 : les fonctionsChapitre 04 : les fonctions
Chapitre 04 : les fonctions
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simples
 
Seance 2 - Programmation en langage C
Seance 2 - Programmation en langage CSeance 2 - Programmation en langage C
Seance 2 - Programmation en langage C
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Seance 1 - Programmation en langage C
Seance 1 - Programmation en langage CSeance 1 - Programmation en langage C
Seance 1 - Programmation en langage C
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programme
 
Examen 2011 exo 4
Examen 2011 exo 4Examen 2011 exo 4
Examen 2011 exo 4
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programme
 
Chapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et InstructionsChapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et Instructions
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage c
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021
 
Ch10
Ch10Ch10
Ch10
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 

Viewers also liked

Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Fabio Hernandez
 
Inheritance chapter-6-computer-science-with-c++ opt
Inheritance chapter-6-computer-science-with-c++ optInheritance chapter-6-computer-science-with-c++ opt
Inheritance chapter-6-computer-science-with-c++ optdeepakskb2013
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2Beligh HAMDI
 
C Plus Plus demo
C Plus Plus demoC Plus Plus demo
C Plus Plus demopadnot
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMALoic Yon
 

Viewers also liked (11)

Cours linux
Cours linuxCours linux
Cours linux
 
Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++
 
Inheritance chapter-6-computer-science-with-c++ opt
Inheritance chapter-6-computer-science-with-c++ optInheritance chapter-6-computer-science-with-c++ opt
Inheritance chapter-6-computer-science-with-c++ opt
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2
 
C Plus Plus demo
C Plus Plus demoC Plus Plus demo
C Plus Plus demo
 
Introduction à C++
Introduction à C++Introduction à C++
Introduction à C++
 
Cours c++
Cours c++Cours c++
Cours c++
 
Reseaux td1
Reseaux td1Reseaux td1
Reseaux td1
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Serie5
Serie5Serie5
Serie5
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMA
 

Similar to TP3 Atelier C++/ GL2 INSAT / Tunisie

Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...abdelghani04
 
passage tdi 2015 v1
passage tdi 2015 v1passage tdi 2015 v1
passage tdi 2015 v1abdelghani04
 
Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015exelibnet
 
1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docxkhawla sdid
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...abdelghani04
 
les fondamentaux sur la matrice et les tableux .pdf
les fondamentaux sur la matrice et les tableux .pdfles fondamentaux sur la matrice et les tableux .pdf
les fondamentaux sur la matrice et les tableux .pdfLamissGhoul1
 
Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Rahma Boufalgha
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Laurent BUNIET
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Aziz Darouichi
 
Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Laurent BUNIET
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
Rappel_Structure programmatio. 2 smi.ppté
Rappel_Structure programmatio.  2 smi.pptéRappel_Structure programmatio.  2 smi.ppté
Rappel_Structure programmatio. 2 smi.pptéJihadKhalili
 
Chapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdfChapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdfShiniGami0o0
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 

Similar to TP3 Atelier C++/ GL2 INSAT / Tunisie (20)

Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-1-o...
 
passage tdi 2015 v1
passage tdi 2015 v1passage tdi 2015 v1
passage tdi 2015 v1
 
Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015
 
1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
 
les fondamentaux sur la matrice et les tableux .pdf
les fondamentaux sur la matrice et les tableux .pdfles fondamentaux sur la matrice et les tableux .pdf
les fondamentaux sur la matrice et les tableux .pdf
 
Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02
 
Serie
SerieSerie
Serie
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Rappel_Structure programmatio. 2 smi.ppté
Rappel_Structure programmatio.  2 smi.pptéRappel_Structure programmatio.  2 smi.ppté
Rappel_Structure programmatio. 2 smi.ppté
 
Chapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdfChapitre 8 - Les tableaux et les pointeurs.pdf
Chapitre 8 - Les tableaux et les pointeurs.pdf
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Memo java
Memo javaMemo java
Memo java
 

More from Mariem ZAOUALI

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Cours 4 intergiciels orientes messages jms
Cours 4 intergiciels orientes messages  jmsCours 4 intergiciels orientes messages  jms
Cours 4 intergiciels orientes messages jmsMariem ZAOUALI
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures repartiesMariem ZAOUALI
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabMariem ZAOUALI
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursiveMariem ZAOUALI
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Mariem ZAOUALI
 

More from Mariem ZAOUALI (14)

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
TP2 RMI
TP2 RMITP2 RMI
TP2 RMI
 
Cours 4 intergiciels orientes messages jms
Cours 4 intergiciels orientes messages  jmsCours 4 intergiciels orientes messages  jms
Cours 4 intergiciels orientes messages jms
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec Matlab
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursive
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia
 

Recently uploaded

Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptxTxaruka
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseTxaruka
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfOssamaLachheb
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbainesSocratis Vasiopoulos
 
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLS
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLSCours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLS
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLSdocteurgyneco1
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024frizzole
 
Bonnes pratiques biomédicales en établissement de soins : Guide
Bonnes pratiques biomédicales en établissement de soins  : GuideBonnes pratiques biomédicales en établissement de soins  : Guide
Bonnes pratiques biomédicales en établissement de soins : Guidebemorad
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptxTxaruka
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsTechnologia Formation
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"ArchivesdeLyon
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfDafWafia
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Pedago Lu
 

Recently uploaded (12)

Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLS
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLSCours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLS
Cours-Sur-l'-IP-Multiprotocol-Label-SwitchingMPLS
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
Bonnes pratiques biomédicales en établissement de soins : Guide
Bonnes pratiques biomédicales en établissement de soins  : GuideBonnes pratiques biomédicales en établissement de soins  : Guide
Bonnes pratiques biomédicales en établissement de soins : Guide
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctions
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 

TP3 Atelier C++/ GL2 INSAT / Tunisie

  • 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. [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. [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. [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