Prérequis : cours sur la POO
À l’issue de ce TP, vous saurez :
- définir une classe avec un constructeur, des attributs et des méthodes ;
- écrire des méthodes qui renvoient un booléen ou une nouvelle instance ;
- utiliser la programmation défensive (préconditions, levée d’exceptions) ;
- manipuler des objets mathématiques (intervalles, fractions) à travers le paradigme objet.
Partie 1 - Intervalles
Le but de cette partie est de construire la classe Intervalle, représentant des
intervalles de nombres réels. La classe possède deux attributs borne_inf et
borne_sup qui représentent respectivement la borne inférieure et la borne
supérieure de l’intervalle. Ces deux bornes seront toujours considérées comme
incluses.
Si borne_sup < borne_inf, l’intervalle est considéré comme vide.
- Programmer le constructeur de la classe. Il aura deux paramètres
aetbcorrespondant respectivement àborne_infetborne_sup. - Écrire une méthode
est_videqui renvoieTruesi l’intervalle est vide,Falsesinon. - Écrire une fonction
affichagequi renvoie une représentation sous forme de chaîne de caractère :"[borne_inf; borne_sup]". Si l’intervalle est vide, l’affichage sera :"[ ]". - Écrire une méthode
longueurqui renvoie l’amplitude de l’intervalle. Si l’intervalle est vide, la méthode renvoieNone. - Écrire une méthode
contientde paramètrexqui renvoieTruesi le réelxappartient à l’intervalle,Falsesinon. - Écrire une méthode
equivaut, de paramètre une (autre) instance de la classeIntervalle, qui renvoieTrues’il sont égaux,Falsesinon. Tous les intervalles vides sont considérés comme égaux. - Écrire une méthode
inclus, de paramètre une instance deIntervalle, qui renvoieTruesi le premier intervalle est inclus dans l’autre, intervalleFalsesinon. - Bonus 1. Écrire une méthode
union, de paramètre une instance de la classeIntervalle, qui renvoie une instance de la classeIntervalledont les bornes correspondent au plus petit intervalle contenant la réunion des deux intervalles. - Bonus 2. Écrire une méthode
intersection, de paramètre une instance de la classeIntervalle, qui renvoie une instance de la classeIntervalledont les bornes correspondent à l’intersection entre les deux intervalles.
Partie 2 - Fractions
Le but de cette partie est de construire la classe Fraction, représentant le
quotient de deux nombres relatifs. La classe possèdera deux attributs
numerateur et denominateur.
Programmer le constructeur de la classe. Il aura deux paramètres
aetbcorrespondant respectivement ànumerateuretdenominateur. On utilisera une programmation défensive pour assurer les préconditions.Écrire une fonction
affichagequi renvoie une représentation sous forme de chaîne de caractère :"numerateur/denominateur".Si le dénominateur vaut 1 ou −1, l’affichage ne comportera pas de
"/".Écrire une méthode
simplifiequi modifie les attributsnumerateuretdenominateurpour que la fraction soit irréductible. Si la fraction est négative, c’est lenumerateurqui est négatif. Indice : penser à programmer le pgcd dans cette méthode.Écrire une méthode
egalde paramètre un instance de la classeFraction, qui renvoieTruesi les deux fractions sont égales,Falsesinon.Écrire une méthode
produitde paramètre une instance de la classeFraction, qui renvoie une instance de la classeFractioncorrespondant au produit des deux fractions. La nouvelle instance sera irréductible.Écrire une méthode
quotient, de paramètre une instance de la classeFraction, qui renvoie une instance de la classeFractioncorrespondant au quotient des deux fractions. La nouvelle instance sera irréductible.Écrire une méthode
sommede paramètre une instance de la classeFraction, qui renvoie une instance de la classeFractioncorrespondant à la somme des deux fractions. La nouvelle instance sera irréductible.