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 case 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
, l
et 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.