Adloun

Surcharge de l'opérateur +

Exercice de TD · niveau 3 (difficile) · NSI (terminale), chapitre 9 — La programmation orientée objet

Énoncé

Surcharge de l'opérateur +.

Créer une classe Fraction (numérateur, dénominateur) et surcharger l'opérateur + pour additionner deux fractions, avec une méthode __repr__ adaptée.

Corrigé


from math import gcd

class Fraction:
    def __init__(self, num, den):
        d = gcd(num, den)
        self.num = num // d
        self.den = den // d

    def __add__(self, autre):
        n = self.num * autre.den + autre.num * self.den
        d = self.den * autre.den
        return Fraction(n, d)

    def __repr__(self):
        return f"{self.num}/{self.den}"

print(Fraction(1, 2) + Fraction(1, 3))   # 5/6

La somme est obtenue après simplification par le PGCD.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.