Exercices adaptés des sources suivantes :
Cercle
. Les objets construits à partir de cette classe seront des cercles de tailles variées.
Attributs : rayon ( initialisé à l'instanciation d'un objet, donc passé en argument au constructeur )
Méthodes :
surface()
: renvoie la surface du cercleperimetre()
: renvoie le périmétre du cercleest_plus_grand(autre_cercle)
: renvoie True
si le rayon de self est plus grand que celui d'un autre objet de type Cercle
Cercle
( de rayon quelconque ).Cercle
précédente, créer un objet quelconque, et essayer de l'afficher dans la console Python : comment interpréter l'affichage obtenu ?print
"classique" à partir du moment où elle a été définie : la méthode __str__
:
class Cercle:
def __init__(self,...):
"""Constructeur"""
...
def __str__(self):
"""Méthode d'affichage"""
...
return ...
Cette méthode doit renvoyer une chaîne de caractères représentant les informations ( souvent, les attributs de l'objet ) à afficher.
Écrire le code d'une méthode __str__
pour la classe Cercle, qui permettra d'afficher le rayon d'un objet de type classe :
c1 = Cercle(21)
print(c1)
>>> rayon = 21
Écrire une classe Chien
.
Attributs :
Méthodes :
mordre(autre_chien)
: fait baisser les points de santé d’un autre objet de type Chien
manger()
: augmente les points de santégrogner()
: renvoie « Grrr... » + son aboiementmachouiller(chaîne)
: renvoie la chaîne passée en argument mélangée aléatoirementPour tester la classe :
Deux versions à cet exercice :
La première version est sans doute la plus délicate, mais en même temps la plus formatrice; si vous ne voyez vraiment pas comment résoudre le problème, passez à la deuxième version, plus simple...
Compléter le code ci-dessous de façon à obtenir l'affichage de l'heure seconde après seconde :
13 : 59 : 55
13 : 59 : 56
13 : 59 : 57
13 : 59 : 58
13 : 59 : 59
14 : 0 : 0
14 : 0 : 1
14 : 0 : 2
14 : 0 : 3
14 : 0 : 4
14 : 0 : 5
14 : 0 : 6
....
Créer une classe Horloge
, destinée à afficher l'heure.
Attributs :
Les valeurs initiales des attributs devront être passées en argument au constructeur lors de l'instanciation de l'objet de type Horloge
.
Méthodes :
ticTac()
: cette méthode augmente l’horloge d’une seconde, et gère également le changement de minutes et d'heureaffiche()
: cette méthode affiche l'heure sous la forme hh:mm:ssInstancier un objet de type Horloge, et pour "animer" l'affichage de l'heure seconde après seconde, utiliser le code suivant :
1.1. Écrire une classe Boite
; cette classe a pour attributs :
Ces trois attributs sont dans un ordre décroissant : longueur ≥ largeur ≥ hauteur.
Cette classe a pour méthodes :
volume()
, qui comme son nom l’indique donne le volume d’une boite
rentreDans(autre_boite)
, qui renvoie True
si l’objet Boite
rentre dans autre_boite.
2. Créer aléatoirement une liste d’une vingtaine de boîtes ( on peut choisir des dimensions entre 1 et 50 ). Ces boîtes peuvent être rangées comme éléments d'une liste.
3. A l’aide d’un algorithme glouton, donner une suite de boîtes aussi grande que possible qui rentrent les unes dans les autres.
Indication : il faudra au préalable trier la liste des boîtes par volume décroissant. Pour cela, il peut être intéressant dans un but de révision, d'utiliser un des algorithmes à connaître, à savoir le tri par insertion ou le tri par sélection.
Réfléchissez ensuite à l'algorithme glouton à utiliser pour trouver la suite la plus grande de boîtes imbriquées...