Devoir POO (entrainement)
Contacts
Utilisateur dont le constructeur fournit 3 attributs aux instances de cette classe : nom, prenom et email de type chaînes de caractères. Les 2 premiers attributs doivent être exigés à la construction, le 3ème est facultatif (valeur par défaut "")
civilite , de type entier (1 pour « Mme » , 2 pour « M », et 0 pour autre).
__repr__() qui devra permettre d’afficher les informations sur l’utilisateur sous la forme : "M Robert LEFEVRE (bob.smith@gmal.con)"Les chaînes
"M" et "Mme" seront définies en tant qu’attributs de classe.
Grille
On souhaite définir une grille de mots croisés, sous la forme d’une classe Grille:
Grille possédant l’attribut privé __grille (avec 2 tirets !) de type liste de listes de caractères. Cette structure doit être construite lors de la construction de l’objet, en passant au constructeur deux entiers strictement positifs w et h (largeur et hauteur).Les « cases » contiennent par défaut le caractère
"-" .Par exemple, pour créer une grille vide de 3×4 cases, on écrira :
g = Grille(3, 4)
__repr__() de sorte que la grille puisse être affichée de manière lisible, avec un simple print.Ainsi une grille vide de 3×4 cases s’affichera :
- - - - - - - - - - - -
placer_h et placer_v, attendant exactement 3 arguments mot, let c, permettant de placer horizontalement ou verticalement le mot mot à partir de la case située à la ligne l et la colonne c .Ainsi, après avoir exécuté le code suivant :
g = Grille(3,4)
g.placer_h("nsi", 1, 0)
g.placer_v("info", 0, 0)
print(g)
La grille devient :
i - - n s i f - - o - -
Fraction
Fraction pour représenter les nombres rationnels. Elle fournira à ses instances deux attributs num et den , de type entier, désignant le numérateur et le dénominateur de la fraction.
__repr__() de sorte que la fonction print permette d’afficher une fraction sous la forme suivante :5 -- 12
ATTENTION : les nombres devront être alignés à droite (unités sous les unités, dizaines sous les dizaines , …)
__mul__() et __add__() qui permettront de réaliser les opérations de multiplication et d’addition entre deux fractions.Ces méthodes attendent deux arguments de type
Fraction (dont l’objet lui-même !), et devront renvoyer un nouvel objet de type Fraction .Exemple :
f1 = Fraction(3,4) f2 = Fraction(1,3) print(f1*f2) print(f1+f2)
doit afficher :
3 -- 12 13 -- 12
Cartes
On souhaite créer un jeu de cartes.
Carte possédant les deux attributs suivants (passés comme arguments au constructeur) : v pour la valeur (un entier de 1 = « as » à 13 = « roi ») et c pour la couleur (un caractère parmi ‘♠’, ‘♦’, ‘♥’, ‘♣’.
__repr__ afin de pouvoir représenter une carte par une chaîne de caractères simple (par exemple "1♠" pour l’as de pique et "R♣" pour le roi de trèfle).
Jeu comportant un unique attribut cartes : une liste d’instance de Carte. Cette liste est créée par le constructeur, qui n’attend qu’un unique argument, le nombre de cartes que doit contenir le jeu, 32 ou bien 54.
