0% ont trouvé ce document utile (0 vote)
155 vues5 pages

Poo TD

La classe Point définit des points avec des attributs x et y. Elle inclut des méthodes pour déplacer un point et trouver son symétrique. La classe Temps gère des durées avec des attributs pour les heures, minutes et secondes. La classe Rectangle définit des rectangles avec des coordonnées et dimensions. La classe Date implémente des objets date.

Transféré par

help tutoria
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
155 vues5 pages

Poo TD

La classe Point définit des points avec des attributs x et y. Elle inclut des méthodes pour déplacer un point et trouver son symétrique. La classe Temps gère des durées avec des attributs pour les heures, minutes et secondes. La classe Rectangle définit des rectangles avec des coordonnées et dimensions. La classe Date implémente des objets date.

Transféré par

help tutoria
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD

Exercice 1 – Utiliser une classe #


On considère la classe suivante :

class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def deplace(self, dx, dy):


self.x = self.x + dx
self.y = self.y + dy

def symetrique(self):
return Point(-self.x, -self.y)

def __repr__(self):
return f"Point({self.x}, {self.y})"

1. Créer le point a d’abscisse 2 et d’ordonnée 4.

…………………………………………………….…………………………………………………….

2. Quels sont les attributs et les méthodes de cette classe ? Compléter le tableau :

Attributs Méthodes

3. Donner la signature complète de la méthode symetrique

Rappel : Pour déclarer une méthode, on commence par préciser sa signature. Cette signature est
délimitée par le mot-clé def et deux-points : .

…………………………………………………….…………………………………………………….

4. Qu’affichent les instructions suivantes dont la sortie a été effacée ?

>>> b = Point(1, 2)
>>> b
>>> …………………………………………………………………………
>>> [Link](3, 5)
>>> b
>>> …………………………………………………………………………
5. Définir une méthode abscisse qui renvoie l’abscisse du point.

>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………

6. Recommencer avec la méthode ordonnee.

>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………
>>>…………………………………………………………………………

Exercice 2 :
Créer une classe Temps avec des attributs d’instance h, mn, et s, une méthode
d’initialisation __init__, et une méthode __add__ permettant d’afficher la somme de deux
durées.

Une durée doit être normalisée : les secondes et les minutes ne peuvent pas dépasser 60.

Attention, une heure fait 3600 secondes, et une minute 60 secondes !


Exercice 3 – Classe Rectan
Rectangle #
1. Ecrire une classe Rectangle en langage Python, permettant de construire un
rectangle dotée d’attributs longueur et largeur.
2. Créer une méthode Perimetre permettant de calculer le périmètre du rectangle et
une méthode Surface permettant de calculer la surface du rectangle
3. Améliorer la classe Rectangle pour définir vos rectangles avec 2 couples d’entiers
: (x_A, y_A) et (largeur, hauteur). Avec A est le coin supérieur gauche du
rectangle.
4. Créer une méthode intersecte qui prend un autre rectangle en paramètre et
renvoie True si et seulement si les rectangles s’intersectent.

Plusieurs cas sont à considérer :


Exercice 4 #
Soit la classe Date définie par le diagramme de classe UML suivant :

1. Implémenter cette classe en Python.


2. Créer deux dates le 20 janvier 2012 et le 14 février 2022.
3. Dans la méthode de construction de la classe, prévoir un dispositif pour
éviter les dates impossibles (du genre 32/14/2020).

Dans ce cas, la création doit provoquer une erreur, chose possible grâce à
l’instruction raise (documentation à rech
rechercher !).

4. Ajouter une méthode __repr__ permettant d’afficher la date sous la forme “25
janvier 1989”. Les noms des mois seront définis en tant qu’attribut de classe
à l’aide d’une liste.
5. Ajouter une méthode __lt__ qui permet de comparer deux dates. L’expression
L’expr
d1 < d2 (d1 et d2 étant deux objets de type Date) doit grâce à cette méthode
renvoyer True ou False .
Exercice 5
Créer une classe JeuDeCartes qui crée un jeu de 52 cartes.

1. une carte sera composée d’une valeur (2,…,10, valet, dame, roi, As) et d’une
couleur (cœur, carreau, pique, trèfle)
2. Les méthodes suivantes seront implémentées :
 NomCarte : affiche le nom d’une carte de manière littérale. Ex : Valet de Cœur.
 Battre : mélange le jeu de cartes.
 Afficher : permet d’afficher le jeu de cartes
 Tirer : permet d’extraire au hasard une carte du jeu.
3. Vous ferez un jeu de test, qui exécutera les points suivants :
 Créer un jeu de cartes
 Mélanger le jeu de cartes (battre)
 Afficher le jeu de carte mélangé
 Tirer une à une toutes les cartes et les afficher

Vous aimerez peut-être aussi