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

    1. Créez un constructeur qui utilise l’heure courante de la fonction time(), déclarée dans la librairie time, pour initialiser un objet d’une classe appelée Temps.

 

    1. Construisez une classe appelée Rationnel capable 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 Rationnel sous la forme a/ba est le numérateur et b le dénominateur.
      • Affichage des nombres de Rationnel sous le format de nombres à virgule flottante.

 

    1. Écrivez un programme qui utilise les constructeurs pour initialiser les valeurs membres des instances de la classe Reference.

 

    1. Écrivez un programme qui utilise la forme d’initialisation par un constructeur pour initialiser trois variables membres aux valeurs 50, 500 et 5000.

 

    1. Créez une classe appelée CompteEpargne qui utilise un attribut statique contenant la valeur de l’intérêt annuel TauxIntAn. Chaque membre de la classe contient aussi un attribut privé appelé Balance qui indique la balance courante du compte à chaque opération. Écrivez alors une fonction membre appelée CalculerIntMensuel qui calcule l’intérêt mensuel en multipliant Balance par TauxIntAn divisé par 12; cet intérêt doit être ajouté à Balance. En outre, écrivez une fonction membre statique appelée ModifierTauxInt qui fixe la valeur de TauxIntAn à une nouvelle valeur. Instanciez deux objets Epargne1 et Epargne2 avec des balances respectives de 2000 $ et de 3000 $. Fixez alors TauxIntAn à 3 %, calculez l’intérêt mensuel et affichez la nouvelle balance pour chacun des comptes. Ensuite, modifiez TauxIntAn pour le fixer à 4 %, calculez le nouvel intérêt mensuel et affichez la nouvelle balance pour chacun des comptes.

 

    1. Concevez une classe appelée Polynome qui 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 fonctions set et get, la classe Polynome doit 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 : ( += ), ( -= ), ( *= ).

 

    1. Écrivez un programme qui utilise une classe simple pour afficher des émissions de télévision.

 

    1. É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.

 

    1. É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) et Temperature_Fahrenheit (Fahrenheit en Celsius) à partir de la classe de base Conversion. Les deux classes dérivées initialisent l’attribut i de la classe de base Conversion. Les deux méthodes surchargent en plus la méthode virtuelle pure calculer. Toutefois, les deux classes dérivées utilisent les méthodes recuperer_conversion et recuperer_int, définies dans la classe de base.

 

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