Devoir POO (entrainement)

 

 

Contacts

Définir en Python une classe Utilisateur dont le constructeur fournit 3 attributs aux instances de cette classe : nomprenom 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 "")

 

Afin de définir la civilité de l’utilisateur (M, Mme, …) , ajouter un attribut civilite , de type entier (1 pour « Mme » , 2 pour « M », et 0 pour autre).

 

Rajouter une méthode __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:

Définir une classe 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)

 

Ajouter une méthode __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 :

- - -
- - -
- - -
- - -

 

Ajouter deux méthodes 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

Définir une classe 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.

 

Ajouter une méthode __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 , …)

 

Ajouter deux méthodes __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.

Définir une classe 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 ‘♠’, ‘♦’, ‘♥’, ‘♣’.

 

Doter cette classe d’une méthode __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).

 

Définir une classe 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.

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *