Objets en Python

publicité
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
Téléchargement