SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
[TP N°2 : 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 :
 Les constructeurs, mutateurs et accesseurs
 La création des objets dynamiques
 Les pointeurs, références et tableaux
 Passage de paramètres
2. Notions du pointeur, référence et tableau
Question 1 : Donnez les valeurs de A,B,C, P1 et P2 suite à ce main
int A =1, B=2, C=3 ;
int *P1, *P2 ;
P1=&A
P2=&C
*P1=(*P2)++
P1=P2
P2=&B
*P1-=*P2
++*P2
*P1*=*P2
A=++*P2**P1
P1=&A
*P2=*P1/=*P2
Question 2 : Un pointeur et une référence
 Déclarez un tableau d'entiers A de dimension 10
 Développez deux méthodes, remplitA et afficherA, permettant de remplir et d’afficher le tableau.
 Déclarez une référence vers l'élément 5 du tableau et incrémenter sa valeur
 Déclarez un pointeur vers l'élément 7, incrémenter le pointeur et la valeur pointée
Question 3 : Passage de paramètre par valeur vs Passage de paramètre par référence vs Passage de paramètre
par pointeur
Voici trois implémentations de la méthode square :
[TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 2
int square(int n) {
cout << "In square(): " << &n << endl; // 0x22ff00
n *= n;
return n;
}
void square(int * pNumber) {
cout << "In square(): " << pNumber << endl; // 0x22ff1c
*pNumber *= *pNumber;
}
void square(int & rNumber) { )
cout << "In square(): " << &rNumber << endl; // 0x22ff1c
rNumber *= rNumber
}
Implémentez la méthode main, où vous appelez la méthode square. Appelez la méthode cout pour afficher la
valeur du l’entier passé en paramètre. Quand est-ce que la valeur du nombre passé en paramètre change ?
3. Gestion des données des étudiants
On veut développer une application qui permet de saisir les données des étudiants et de calculer leurs
moyennes. On va commencer tout d’abord par la création d’ :
 Une classe intitulée Matiere avec :
o Attributs : intitule de type tableau de char, coefficient de type double, note de type double
o Méthodes :
 Les accesseurs (getters & setters) (voir l’annexe pour comprendre c’est quoi)
 Un constructeur
 Un destructeur
 Une classe intitulée Etudiant avec :
o Attributs : Num_carte de type int, Téléphone de type int, Moyenne de type double, matieres est
un Tableau de type Matiere
o Méthodes :
 Les accesseurs (getters & setters)
 Méthode void afficher() : permet d’afficher les données d’un étudiant
 Méthode double calcul_moyenne(Tableau de taille 2 de type Matiere) : permet de
calculer la moyenne de l’étudiant – utilisez la bibliothèque <cmath>
[TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 3
 Méthode boolean reussi() : permet de déduire si l’étudiant en question a réussi ou pas
s’ il aura une moyenne supérieure à 10
 Un constructeur
 Un destructeur
 Une classe intitulée Filiere avec :
o Attributs : id_filiere de type int, Etudiants de type Tableau d’Etudiant
o Méthodes :
 Les accesseurs (getters & setters)
 Méthode void afficher() : permet d’afficher les données de tous les étudiants de la
filières
 Un constructeur
 Un destructeur
Les attributs seront privés et les méthodes publiques.
Travail demandé :
1. Ecrivez le code des classes demandées.
Rendez-vous à votre EDI. Créez un nouveau projet. Nommez le TP2_Gestion_Etudiant.
Figure 1 Créer un nouveau projet
Une fois que votre projet est créé, ajoutez un nouveau « C++ Main File » comme montre la figure 2.
Commencez à écrire vos classes.
[TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 4
Figure 2 Créer une nouvelle classe C++
2. Ecrivez une méthode main pour tester le scénario suivant :
a. Vous pouvez choisir entre demander la saisie des données ou de créer les objets demandés sans
passer par la saisie du clavier
b. Tester avec 4 étudiants, 3 matières et 2 filières
3. Surchargez un des constructeurs. Utilisez la liste d’initialisation
4. On veut ajouter une méthode intitulée boolean appartenance( parametre) à la classe appropriée
(argumentez votre choix) pour vérifier si un Etudiant, passé en paramètre, appartient à une filière
donnée.
On va rajouter 3 variantes de cette méthode. Insérez-les dans votre main. C’est quoi la différence ?
Expliquez.
boolean appartenance( Etudiant e)
boolean appartenance( Etudiant *e)
boolean appartenance( Etudiant &e)
Annexe
C’est quoi un accesseur ou getter?
Un accesseur est une fonction membre permettant de récupérer le contenu d'une donnée membre protégée. Un
accesseur, pour accomplir sa fonction1
:
 doit avoir comme type de retour le type de la variable à renvoyer
 ne doit pas nécessairement posséder d'arguments
Une convention de nommage veut que l'on fasse commencer de façon préferrentielle le nom de l'accesseur par
le préfixe Get, afin de faire ressortir sa fonction première.
1
http://www.commentcamarche.net/contents/183-les-accesseurs-et-les-mutateurs-en-langage-c
[TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 5
class Personne{
private :
int age;
public :
int GetAge();
};
int Personne::GetAge(){
return age;
}
C’est quoi un mutateur ou setter?
Un mutateur est une fonction membre permettant de modifier le contenu d'une donnée membre protégée. Un
mutateur, pour accomplir sa fonction1
:
 doit avoir comme paramètre la valeur à assigner à la donnée membre. Le paramètre doit donc être du
type de la donnée membre
 ne doit pas nécessairement renvoyer de valeur (il possède dans sa plus simple expression le type void)
Une convention de nommage veut que l'on fasse commencer de façon préférentielle le nom du mutateur par le
préfixe Set.
class Personne{
private :
int _age;
public :
void SetAge(int);
};
void Personne::SetAge(int age){
_age = age;
}

Mais conteúdo relacionado

Mais procurados

Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzlesMicrosoft
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4kemenaran
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simplesPethrvs
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage cDaoua Lotfi
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
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
 
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
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Langage C
Langage  CLangage  C
Langage Cjwilili
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)Mahfoud EL HOUDAIGUI
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11Microsoft
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 

Mais procurados (20)

Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simples
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
 
Csharp2014
Csharp2014Csharp2014
Csharp2014
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
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
 
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)
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Langage C
Langage  CLangage  C
Langage C
 
Composition, agrégation et immuabilité
Composition, agrégation et immuabilitéComposition, agrégation et immuabilité
Composition, agrégation et immuabilité
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 

Semelhante a TP2 Atelier C++/ GL2 INSAT / Tunisie

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
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
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-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
 
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)Tunisie collège
 
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
 
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
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 OverviewGregory Renard
 
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
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 

Semelhante a TP2 Atelier C++/ GL2 INSAT / Tunisie (20)

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
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
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
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Serie
SerieSerie
Serie
 
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
 
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
 
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...
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
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
 
Linq Tech Days08 Lux
Linq Tech Days08 LuxLinq Tech Days08 Lux
Linq Tech Days08 Lux
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
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
 
langage C++
langage C++langage C++
langage C++
 
4sci ap(2)
4sci ap(2)4sci ap(2)
4sci ap(2)
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 

Mais de 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
 

Mais de Mariem ZAOUALI (13)

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

Último

Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 

Último (16)

Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 

TP2 Atelier C++/ GL2 INSAT / Tunisie

  • 1. [TP N°2 : 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 :  Les constructeurs, mutateurs et accesseurs  La création des objets dynamiques  Les pointeurs, références et tableaux  Passage de paramètres 2. Notions du pointeur, référence et tableau Question 1 : Donnez les valeurs de A,B,C, P1 et P2 suite à ce main int A =1, B=2, C=3 ; int *P1, *P2 ; P1=&A P2=&C *P1=(*P2)++ P1=P2 P2=&B *P1-=*P2 ++*P2 *P1*=*P2 A=++*P2**P1 P1=&A *P2=*P1/=*P2 Question 2 : Un pointeur et une référence  Déclarez un tableau d'entiers A de dimension 10  Développez deux méthodes, remplitA et afficherA, permettant de remplir et d’afficher le tableau.  Déclarez une référence vers l'élément 5 du tableau et incrémenter sa valeur  Déclarez un pointeur vers l'élément 7, incrémenter le pointeur et la valeur pointée Question 3 : Passage de paramètre par valeur vs Passage de paramètre par référence vs Passage de paramètre par pointeur Voici trois implémentations de la méthode square :
  • 2. [TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 2 int square(int n) { cout << "In square(): " << &n << endl; // 0x22ff00 n *= n; return n; } void square(int * pNumber) { cout << "In square(): " << pNumber << endl; // 0x22ff1c *pNumber *= *pNumber; } void square(int & rNumber) { ) cout << "In square(): " << &rNumber << endl; // 0x22ff1c rNumber *= rNumber } Implémentez la méthode main, où vous appelez la méthode square. Appelez la méthode cout pour afficher la valeur du l’entier passé en paramètre. Quand est-ce que la valeur du nombre passé en paramètre change ? 3. Gestion des données des étudiants On veut développer une application qui permet de saisir les données des étudiants et de calculer leurs moyennes. On va commencer tout d’abord par la création d’ :  Une classe intitulée Matiere avec : o Attributs : intitule de type tableau de char, coefficient de type double, note de type double o Méthodes :  Les accesseurs (getters & setters) (voir l’annexe pour comprendre c’est quoi)  Un constructeur  Un destructeur  Une classe intitulée Etudiant avec : o Attributs : Num_carte de type int, Téléphone de type int, Moyenne de type double, matieres est un Tableau de type Matiere o Méthodes :  Les accesseurs (getters & setters)  Méthode void afficher() : permet d’afficher les données d’un étudiant  Méthode double calcul_moyenne(Tableau de taille 2 de type Matiere) : permet de calculer la moyenne de l’étudiant – utilisez la bibliothèque <cmath>
  • 3. [TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 3  Méthode boolean reussi() : permet de déduire si l’étudiant en question a réussi ou pas s’ il aura une moyenne supérieure à 10  Un constructeur  Un destructeur  Une classe intitulée Filiere avec : o Attributs : id_filiere de type int, Etudiants de type Tableau d’Etudiant o Méthodes :  Les accesseurs (getters & setters)  Méthode void afficher() : permet d’afficher les données de tous les étudiants de la filières  Un constructeur  Un destructeur Les attributs seront privés et les méthodes publiques. Travail demandé : 1. Ecrivez le code des classes demandées. Rendez-vous à votre EDI. Créez un nouveau projet. Nommez le TP2_Gestion_Etudiant. Figure 1 Créer un nouveau projet Une fois que votre projet est créé, ajoutez un nouveau « C++ Main File » comme montre la figure 2. Commencez à écrire vos classes.
  • 4. [TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 4 Figure 2 Créer une nouvelle classe C++ 2. Ecrivez une méthode main pour tester le scénario suivant : a. Vous pouvez choisir entre demander la saisie des données ou de créer les objets demandés sans passer par la saisie du clavier b. Tester avec 4 étudiants, 3 matières et 2 filières 3. Surchargez un des constructeurs. Utilisez la liste d’initialisation 4. On veut ajouter une méthode intitulée boolean appartenance( parametre) à la classe appropriée (argumentez votre choix) pour vérifier si un Etudiant, passé en paramètre, appartient à une filière donnée. On va rajouter 3 variantes de cette méthode. Insérez-les dans votre main. C’est quoi la différence ? Expliquez. boolean appartenance( Etudiant e) boolean appartenance( Etudiant *e) boolean appartenance( Etudiant &e) Annexe C’est quoi un accesseur ou getter? Un accesseur est une fonction membre permettant de récupérer le contenu d'une donnée membre protégée. Un accesseur, pour accomplir sa fonction1 :  doit avoir comme type de retour le type de la variable à renvoyer  ne doit pas nécessairement posséder d'arguments Une convention de nommage veut que l'on fasse commencer de façon préferrentielle le nom de l'accesseur par le préfixe Get, afin de faire ressortir sa fonction première. 1 http://www.commentcamarche.net/contents/183-les-accesseurs-et-les-mutateurs-en-langage-c
  • 5. [TP N°2 : INITIATION AU MONDE DE LA PROGRAMMATION C++] Atelier C++ INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 5 class Personne{ private : int age; public : int GetAge(); }; int Personne::GetAge(){ return age; } C’est quoi un mutateur ou setter? Un mutateur est une fonction membre permettant de modifier le contenu d'une donnée membre protégée. Un mutateur, pour accomplir sa fonction1 :  doit avoir comme paramètre la valeur à assigner à la donnée membre. Le paramètre doit donc être du type de la donnée membre  ne doit pas nécessairement renvoyer de valeur (il possède dans sa plus simple expression le type void) Une convention de nommage veut que l'on fasse commencer de façon préférentielle le nom du mutateur par le préfixe Set. class Personne{ private : int _age; public : void SetAge(int); }; void Personne::SetAge(int age){ _age = age; }