M1 MEEF SD maths option info 1 Programmation orientée objet (en Python) Polynômes Le but ici est de réaliser une classe Polynome pour implémenter des polynômes (à coefficients réels). Les quelques extraits de code ci-dessous démontrent le comportement attendu d’une telle classe. Quand une surcharge spéciale est nécessaire elle est indiquée en commentaire. 1. Constructeur et attributs >>> ... ... >>> 2 >>> -1 >>> # initialisation par un dictionnaire de coefficients # ce polynome repr é sente 2 - X ^2 p = Polynome ({ 0 : 2 , 2 : -1 }) p . degre p . dominant p2 = Polynome ({ 250 : 1 , 0 : 1 }) # p2 = X ^250 + 1 2. Ajoutez une méthode __repr__. Vérifier que Python affiche alors bien les polynômes que vous construisez. >>> print ( p ) # __repr__ ( -1)* X **2 + 2* X **0 3. Ajoutez une méthode evaluer permettant d’évaluer la valeur du polynôme en un point. Une fois que votre méthode marche, appelez-la __call__ et vérifiez qu’après avoir défini un polynôme P, vous pouvez calculer P(5). >>> print ( p (1)) # __call__ 1.0 4. Ajoutez une méthode coeff permettant d’obtenir le coefficient d’ordre n de votre polynôme, une méthode deg permettant d’obtenir son degré. Renommez coeff en __getitem__ pour écrire P [i] plutôt que P .coeff(i). >>> print ( p [0]) 2.0 >>> print ( p [1]) 0.0 # __getitem__ 5. Ajoutez une méthode __add__ pour effectuer la somme de deux polynômes. >>> print ( p + p2 ) # __add__ 1* X **250 + ( -1)* X **2 + 3* X **0 2 Arbres En vous inspirant de l’implémentation des listes chaînées vues en cours à l’aide d’objets, construire une classe Arbre permettant de manipuler des arbres binaires de recherche, dont les méthodes agiront par effet de bord sur l’arbre considéré. On définira les attributs et méthodes suivants : — val, fg et fd désignent respectivement l’étiquette, le fils gauche et le fils droit d’un nœud — rechercher(self, v) renvoie un booléen indiquant si v est présent ou non dans l’arbre — inserer(self, v) ajoute un nouveau nœud dans l’arbre en préservant ses propriétés d’arbre binaire — supprimer(self, v) renvoie un arbre dans lequel le nœud de valeur v, s’il existe, a été supprimé 1