Programmation objet en Python

💻 Travail n° 1 Classe Cercle

🎯 Travail à faire :

  1. À partir de l’exemple donné dans Une 1ère classe, créer une classe Cercle :

    • qui possède 1 attribut d’instance nommé rayon

    • 2 méthodes calcCirconference() et calcSurface() qui retourne respectivement la circonférence et la surface d’un objet de type Cercle

  2. Instancier 2 objets c1 et c2 de type Cercle avec 2 rayons différents et calculer puis afficher leur circonférence et leur surface.

Exemple de résultat attendu pour 2 cercles de rayons respectifs 1 et 10
c1 <Cercle(1)> -> Circonférence : 6.28 / Aire : 3.14
c2 <Cercle(10)> -> Circonférence : 62.83 / Aire : 314.16

💻 Travail n° 2 Classe IP

🎯 Travail à faire 🔥 🔥 :

  1. Toujours à partir de l’exemple donné dans Une 1ère classe, créer une classe IP permettant de manipuler une adresse IP d’un hôte réseau.

    Celle-ci doit :

    • possèder 2 attributs d’instance :

      • ip → valeur de l’adresse IP

      • mask → masque

    • un constructeur __init__() qui prend en paramètre une adresse IP et une longueur de masque (Ex. : __init(`192.168.4.5', 22)

    • une méthode getNwkAddr() qui retourne l’adresse réseau

    • une méthode getMask() qui retourne, sous forme de chaîne de caractères, le masque réseau en notation décimale pointée

    • une méthode getBcastAddr() qui retourne, sous forme de chaîne de caractères et en notation décimale pointée, l’adresse de broadcast du réseau auquel appartient l’IP

    • une méthode getMaxHosts() qui retourne le nombre max. d’hôtes du réseau auquel appartient l’IP

    • une méthode getMinIp() qui retourne la 1ère adresse disponible du réseau auquel appartient l’IP

    • une méthode getMaxIp() qui retourne la dernière adresse disponible du réseau auquel appartient l’IP

    • la méthode spéciale __repr__() qui retourne l’adresse IP sous forme de chaîne de caractères au format CIDR (→ “192.168.4.5/22”)

Vous pouvez vous servir du code source qui a été vu en co-enseignement math dans la partie qui traite des opérateurs bit-à-bit

💻 Travail n° 3 Surcharge opérateur

🎯 Travail à faire :

Compléter le code de la classe Resistance donné dans le script Python ci-dessous pour qu’elle redéfinisse le comportement de l’opérateur // (→ division entière) pour que celui-ci permettent de calculer la valeur résultante de résistance montées en parallèle.

Rappel

La formule générale permettant de calculer la résistance équivalente (Req) de résistances associées en parallèles est :

req parallele

Vous consulterez operator — Opérateurs standards en tant que fonctions link pour déterminer la méthode spéciale Python associée à l’opérateur // que vous devez redéfinir/surcharger.

Ne pas oublier de définir également la méthode getVal() qui permet de retourner la valeur de l’attribut d’instance r.

Resistance.py
class Resistance :
    def init(self, r) :
        self.value = r

    À COMPLETER

if name == "main":
    r1 = Resistance(470)
    r2 = Resistance(220)
    r3 = Resistance(820)

    r12 = r1 // r2
    r123 = r1 // r2 // r3

    print(f"r1 // r2 : {r12.getVal():.2f}")
    print(f"r1 // r2 // r3 : {r123.getVal():.2f}")
Résultat attendu
r1 // r2 : 149.86
r1 // r2 // r3 : 126.70

🞄  🞄  🞄