Module 4
Les classes, l’héritage, les piles, les listes et les arbres
Pratique
Dans ce module, la pratique consiste à réaliser des exercices de programmation avec le langage C++.
Vous trouvez les réponses dans Module 4 – Solutions. Si les réponses ne sont pas suffisamment claires pour vous, vous pouvez toujours contacter votre personne tutrice pour obtenir des précisions.
Exercices
- Créez un constructeur qui utilise l’heure courante de la fonction
time(), déclarée dans la librairietime, pour initialiser un objet d’une classe appeléeTemps.
- Construisez une classe appelée
Rationnelcapable d’effectuer des opérations arithmétiques sur des fractions. Concevez le programme principal qui permet de tester cette classe. Utilisez des variables entières pour représenter les attributs privés (numérateurs et dénominateurs) de la classe. Créez un constructeur qui permet l’initialisation d’un objet de cette classe lorsque ce dernier est déclaré. Ce constructeur doit contenir des valeurs par défaut, au cas où aucune variable d’initialisation n’est fournie, et doit pouvoir simplifier les fractions de la forme : 2/4 en 1/2. Créez des fonctions publiques pour chacune des situations suivantes, en exprimant les résultats a, b, c, d sous une forme irréductible.- Addition de deux nombres de la classe
Rationnel. - Soustraction de deux nombres de la classe
Rationnel. - Multiplication de deux nombres de la classe
Rationnel. - Division de deux nombres de la classe
Rationnel. - Affichage des nombres de
Rationnelsous la formea/boùaest le numérateur etble dénominateur. - Affichage des nombres de
Rationnelsous le format de nombres à virgule flottante.
- Addition de deux nombres de la classe
- Écrivez un programme qui utilise les constructeurs pour initialiser les valeurs membres des instances de la classe
Reference.
- Écrivez un programme qui utilise la forme d’initialisation par un constructeur pour initialiser trois variables membres aux valeurs 50, 500 et 5000.
- Créez une classe appelée
CompteEpargnequi utilise un attribut statique contenant la valeur de l’intérêt annuelTauxIntAn. Chaque membre de la classe contient aussi un attribut privé appeléBalancequi indique la balance courante du compte à chaque opération. Écrivez alors une fonction membre appeléeCalculerIntMensuelqui calcule l’intérêt mensuel en multipliantBalanceparTauxIntAndivisé par 12; cet intérêt doit être ajouté àBalance. En outre, écrivez une fonction membre statique appeléeModifierTauxIntqui fixe la valeur deTauxIntAnà une nouvelle valeur. Instanciez deux objetsEpargne1etEpargne2avec des balances respectives de 2000 $ et de 3000 $. Fixez alorsTauxIntAnà 3 %, calculez l’intérêt mensuel et affichez la nouvelle balance pour chacun des comptes. Ensuite, modifiezTauxIntAnpour le fixer à 4 %, calculez le nouvel intérêt mensuel et affichez la nouvelle balance pour chacun des comptes.
- Concevez une classe appelée
Polynomequi représente les coefficients et les exposants de polynômes à l’aide de tableaux. Par exemple, le polynôme 2×4 a comme coefficient 2 et comme exposant 4. En plus d’avoir son propre constructeur et son propre destructeur, aussi bien que les fonctionssetetget, la classePolynomedoit pouvoir exécuter les opérations suivantes :- surcharger l’opérateur d’addition (
+) pour additionner deux polynômes; - surcharger l’opérateur de soustraction (
-) pour soustraire deux polynômes; - surcharger l’opérateur d’affectation pour affecter un polynôme à un autre;
- surcharger l’opérateur de multiplication (
*) pour multiplier deux polynômes; - surcharger les combinaisons d’opérateurs suivants : (
+=), (-=), (*=).
- surcharger l’opérateur d’addition (
- Écrivez un programme qui utilise une classe simple pour afficher des émissions de télévision.
- Écrivez un programme qui utilise une fonction amie pour additionner deux nombres. Pour déclarer une fonction amie dans ce programme, il suffit d’insérer son prototype dans la classe, précédé du mot clé
friend.
- Écrivez un programme qui convertit les litres en gallons et les degrés Fahrenheit en degrés Celsius. Ce programme doit dériver les classes
Nombre_litre(litres en gallons) etTemperature_Fahrenheit(Fahrenheit en Celsius) à partir de la classe de baseConversion. Les deux classes dérivées initialisent l’attribut i de la classe de baseConversion. Les deux méthodes surchargent en plus la méthode virtuelle purecalculer. Toutefois, les deux classes dérivées utilisent les méthodesrecuperer_conversionetrecuperer_int, définies dans la classe de base.
- Concevez une classe permettant de gérer une liste chaînée d’objets de types différents disposant des fonctionnalités suivantes :
- ajouter un nouvel élément dans la liste;
- afficher les valeurs des éléments de la liste;
- afficher une fonction de parcours de la liste.
- Concevez une classe de pile dynamique avec son constructeur et son destructeur qui permet d’empiler et de dépiler ses éléments.

