Programmation objet en Python 💻 Travail n° 1 Classe Cercle 🎯 Travail à faire : À 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 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 🔥 🔥 : 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 : Vous consulterez operator — Opérateurs standards en tant que fonctions 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 🞄 🞄 🞄 Les conteneurs Python CIEL1IR - NodeRED