Exercices POO

Dates

Soit la classe Date  définie par le diagramme UML suivant :

Implémenter cette classe en Python.
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 à rechercher !).
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’attributAttribut Un attribut est un identifiant (un nom) décrivant une information stockée dans une base. Les attributs correspondent aux colonnes si la relation à laquelle il appartient est représentée sous forme de table. de classe à l’aide d’une liste.
Ajouter une méthode __lt__ qui permet de comparer deux dates.
L’expression d1 < d2 ( d1  et d2  étant deux objets de type Date) doit grâce à cette méthode renvoyer True  ou False .

 


géOOmétrie

Le programme Python suivant est écrit en programmation procédurale.

géOOmétrie

La programmation procédurale est constituée de procédures et fonctions sans liens particuliers agissant sur des données dissociées, et cela peut mener rapidement à des difficultés en cas de modification de la structure des données. Dans le cas de géOOmétrie ce type de programmation impose de différencier les types de donnée ( isinstance()) car les données des objets Circle et Rectangle ne sont pas structurées de la même manière.

 

Tester et analyser le programme fourni. Identifier les attributs et les méthodes communs à la classe Forme_geometrique , ou au contraire spécifiques à ses sous-classes (choisir parmi la liste ci-dessous et compléter le diagramme de classes ci-dessous).

 

Le réécrire en utilisant de la programmation orientée objet, et en respectant le diagramme de classe.
Ajouter une classe permettant de gérer de la même manière des polygones réguliers

 

Vous aimerez aussi...

Laisser un commentaire

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

*

code