Compl TT
Compl TT
Compl TT
Réalisé par :
Encadré par :
Ø Aouad Fatima Ezzahra
Ø TOUHTOUH Samira Ø Bounakla Mohamed Yahya
Ø Charif Ikram
Ø Jrifi Wissal
1
Année universitaire : 2023/2024
Table de matières :
Tp1 : LES ENTREES_SORTIES ET LES INSTRUCTIONS DE CONTROLE .......................................... 3
Exercice 1 (les entrées et les sortie ) : ................................................................................... 3
Exercice 2 ( Les entrées et les sorties ) : ............................................................................... 5
Exercice 1: ............................................................................................................................. 6
Exercice 2 : .......................................................................................................................... 10
Tp2 : LES TABLEAUX EN C++ : .................................................................................................. 11
Exercice 1 : .......................................................................................................................... 11
Exercice 2 : .......................................................................................................................... 12
Exercice 3 : .......................................................................................................................... 13
TP3 : Les fonctions : ................................................................................................................ 14
Exercice 1 : .......................................................................................................................... 14
Exercice 2 : .......................................................................................................................... 15
Exercice 3 : .......................................................................................................................... 15
TP 3 : Les classes et les objets: ................................................................................................ 18
Introduction : ...................................................................................................................... 18
Exercice 1 : .......................................................................................................................... 18
Créer une classe Point contenant : ..................................................................................... 18
Exercice 2 ............................................................................................................................ 23
TP6 : Constructeurs et destructeur ......................................................................................... 25
Exercice1 : ........................................................................................................................... 25
TP 6 : Constructeurs de copie et fonctions amies : ................................................................. 32
Exercice 1 : .......................................................................................................................... 32
Exercice 2 : .......................................................................................................................... 34
Exercice 3 : .......................................................................................................................... 35
Tp 7 : LA SURCHARGE DES OPERATEURS : .............................................................................. 36
Exercice 1 : .......................................................................................................................... 36
TP 8 : Héritage......................................................................................................................... 39
Exercice 1: ........................................................................................................................... 39
Exercice 2 : .......................................................................................................................... 43
Conclusion :............................................................................................................................. 44
2
Tp1 : LES ENTREES_SORTIES ET LES INSTRUCTIONS
DE CONTROLE
int main()
S = a + b; // Calculer la somme
P = a * b; // Calculer le produit
cout << "La somme des deux valeurs est : " << S << endl; // Afficher la somme
cout << "Le produit des deux valeurs est : " << P; // Afficher le produit
} 3
a) Compilation :
b) Exécution :
4
Exercice 2 ( Les entrées et les sorties ) :
int main()
int i = 1234; // Déclare une variable entière et initialise avec la valeur 1234
float p = 12.3456; // Déclare une variable flottante et initialise avec la valeur 12.3456
cout << "|" << setw(8) << setfill('*') << hex << i << "|" << endl;
cout << "|" << setw(6) << setprecision(4) << p << "|" << endl;
b) Compilation :
5
c) Exécution :
d) Le rôle du programme :
Exercice 1:
6
Apres exécution :
7
Apres exécution :
8
Apres exécution :
L’équation quadratique a deux solutions réelles distinctes (x1 et x2), qui sont
alors calculées Et affichées.
9
Exercice 2 :
Apres exécution :
10
Tp2 : LES TABLEAUX EN C++ :
Exercice 1 :
Écrire un programme qui lit 10 nombres entiers dans un tableau avant d’en
rechercher le plus grand et le plus petit
Exécution :
11
Exercice 2 :
Exécution :
12
Exercice 3 :
Soit le tableau t déclaré ainsi : float t[3] [4] ;Écrire les instructions permettant de
calculer, dans une variable nommée som, la somme des éléments de t.
Exécution :
13
TP3 : Les fonctions :
Exercice 1 :
14
Exercice 2 :
Exercice 3 :
1 er programme :
15
Commentaire :
16
Commentaire :
Ila s’agit d’une transmission par référence, permet à une fonction de créer des
référence c-à-d des alias permanentes à ces paramètres de la fonction et de
manipuler les variables originales.
3-ème programme :
Commentaire :
Il s’agit d’une transmission par adresse, les fonctions manipule les variables
originale et directement sans recourir à des alias ou des réference.
17
TP 3 : Les classes et les objets:
Introduction :
Dans ce TP, nous allons explorer l'un des concepts fondamentaux de la programmation orientée
objet (POO) : les classes et les objets. La POO est un paradigme de programmation qui permet
de structurer un programme en regroupant les données et les comportements associés dans des
entités appelées classes. En C++, les classes offrent une manière puissante et flexible de
modéliser des objets du monde réel, facilitant ainsi la création de programmes modulaires,
extensibles et réutilisables.
Exercice 1 :
18
Commentaire :
L'erreur indiquée montre que le compilateur ne peut pas accéder aux fonctions
initialise (int, int) et affiche () de la classe Point, car les méthodes et les attributs
d’une classe sont privés par défaut.
4) Proposer une solution et expliquer le principe.
La solution est :
Exécution et compilation :
19
Lors de l'exécution, le programme affichera :
Principe :
Le principe se base sur mettre les variables privées en public pour laisser la fonction appeler
dans la main de laisser entrer aux variables définit dans la classe pour appliquer la fonction
demandés.
20
}
};
int main() {
// Création de deux objets de type Point
Point point1, point2;
// Initialisation des coordonnées du premier point
point1.initialise(3, 4);
// Affichage des coordonnées du premier point
point1.affiche();
// Initialisation des coordonnées du deuxième point
point2.initialise(1, 2);
// Attribution des coordonnées du deuxième point au premier point
point1 = point2;
// Affichage des nouvelles coordonnées du premier point après l'affectation
point1.affiche();
return 0; // Fin du programme
}
Exécution et compilation :
21
Lors de l'exécution, le programme affichera :
Initialisation de point1 :
• point1.initialise (3, 4) ;
• point1 a x = 3 et y = 4.
• Affichage : "L'abscisse de ce point est : 3 et l'ordonnée est : 4".
Initialisation de point2 :
• point2.initialise (1, 2) ;
• point2 a x = 1 et y = 2.
• Pas d'affichage à ce moment.
22
Affectation de point2 à point1 :
• point1 = point2 ;
• point1 prend les valeurs de point2, donc x = 1 et y = 2.
Exercice 2
a) compilation :
23
b) Résultat :
c)En constructeurs :
24
TP6 : Constructeurs et destructeur
Exercice1 :
25
1 -Le fichier. ccp contient les implémentations des méthodes et le fichier
pour contenir les interfaces du programme
2 - Le rôle de Point () : c’est pour définir un constructeur de type par
défaut
Le rôle de Point () : c’est pour définir un destructeur
26
Notion de destructeur:
27
1.Testons l’exemple:
28
Commentaire:
La destruction des objets en C++ se fait dans l'ordre inverse de leur création. Comme il est
illustré dans notre exemple, la création de l'objet a précède la création de l'objet b, mais la
destruction se fait d'une manière inverse
29
30
Commentaire :
- Les objets créés à l'intérieur d'une fonction (comme u dans votre méthode test()) ont une
portée locale à cette fonction. Ils sont détruits automatiquement lorsque vous quittez cette
fonction, ce qui déclenche l'appel de leur destructeur.
-Les objets créés dans main () (comme a et b) ont une portée qui s'étend jusqu'à la fin de
main(), donc ils ne seront détruits qu'à ce moment-là.
31
TP 6 : Constructeurs de copie et fonctions amies :
Exercice 1 :
Exécution :
32
Dans ce programme les 2 variables a et b pointent vers le même objet dont ils ont la même
affectation.
Exécution :
33
Exercice 2 :
Exécution :
Le rôle de la fonction amie est permet à une fonction extérieure d'accéder aux
membres privés de la classe. Et dans notre programme la fonction coïncide à
l’extérieur de la classe peut comparer les valeurs privées d’objet Point sans
nécessiter de méthodes publiques supplémentaires pour accéder aux membres
x et y.
34
Exercice 3 :
Créer un programme qui additionne deux objets appartenant à deux classes A et B. Utiliser
une fonction amie addition
Exécution :
35
Tp 7 : LA SURCHARGE DES OPERATEURS :
Exercice 1 :
Compilation :
1. La méthode utilise est la surcharge d'opérateur est externe : la fonction de surcharge est
définie en dehors de la classe, et non comme une méthode membre de la classe.
Exécution :
36
2. La surcharge d'opérateur est interne, ce qui signifie que la fonction de surcharge est définie à
l'intérieur de la classe, en tant que méthode membre.
Compilation :
Exécution :
Compilation :
37
Exécution :
38
TP 8 : Héritage
Exercice 1:
1- Ajouter une méthode affiche dans Pointcol void affiche ( ) { cout <<"coordonnées :
("<<x<< ","<< y << ")"<<< "couleur du point :"<<color<
2- Qu’elles sont les modifications à faire pour sur le programme principal pour afficher
x, y et color
39
Apres exécution :
Pour que le programme affiche les coordonnes et la couleur du point il suffit de mettre
protecetd
3- Utiliser le principe de la surdéfinition des fonctions et donner le même nom à affiche dans
la classe Point et la classe Pointcol
40
Apres exécution :
L’exécution montre que la méthode affiche a permet d’afficher les attributs de la classe
Pointcol.
41
Apres exécution :
42
Exercice 2 :
Ecrire un programme qui calcule les racines carrées de nombres fournis s en donnée. Il
s’arrêtera lorsqu’on lui fournira la valeur 0. Il refusera les valeurs négatives. Son exécution se
présentera ainsi
Apres exécution :
43
Conclusion :
En conclusion, les exercices présentés dans ce rapport ont permis de mettre en
pratique les concepts clés de la programmation en C++ et de la Programmation Orientée
Objet, tels que les fonctions, la modularité, l'héritage, l'encapsulation, et la gestion des
constructeurs et destructeurs. L'utilisation des structures de contrôle a également permis de
structurer efficacement les programmes tout en renforçant notre compréhension des bases
de la logique algorithmique. Ce travail a contribué à affiner notre maîtrise de C++ et à mieux
appréhender l'importance de la POO pour développer des solutions robustes et modulaires,
constituant ainsi une base solide pour des projets de développement plus avancés.
44