Exercices
Chapitre 1: Interface et implémentation
1 Choisir une structure de donnée
Dans chaque cas, indiquer quelle structure de données vous semble la plus adaptée, et donner une exemple de création et d’interaction avec la structure de données.
- Une personne avec son nom, prénom, adresse email.
- Les notes de nsi d’un élève au cours d’un trimestre.
- Les notes de nsi de tous les élèves d’une classe au cours d’un trimestre.
- Une grille de sudoku
2 Implémentation de la classe Tableau
-
Créer une classe
Tableau
qui implémente les quatre méthodes ci-dessous en stockant les données du tableau dans un attribut appelédata
de typelist
e.- « Insérer » : ajoute un élément dans le tableau à l’index souhaité.
tableau.ajout(index, élément)
; - « Retirer » : retire un élément de le tableau à l’index souhaité.
tableau.suppr(index)
; - « Le tableau est-il vide ? » : renvoie « vrai » si le tableau est vide, « faux » sinon.
tableau.est_vide()
- « Nombre d’éléments dans le tableau » : renvoie le nombre d’éléments dans le tableau.
tableau.longueur()
On donne ci-dessous une séquence d’instructions d’initialisation et d’utilisation d’un
tableau
.# instanciation tab = Tableau() # utilisation tab.longueur() # renvoie 0 tab.est_vide() # renvoie True tab.ajout(0, "pomme") tab.data # renvoie ['pomme'] tab.ajout(1, "poire") tab.ajout(0, "pêche") tab.data # ['pêche', 'pomme', 'poire'] tab.est_vide() # renvoie False tab.suppr(2) tab.suppr(0) tab.data # renvoie ['pomme']
- « Insérer » : ajoute un élément dans le tableau à l’index souhaité.
-
Ajoutez ensuite la possibilité d’initialiser (méthode
__init__()
)les données du tableau en fournissant un paramètre de typelist
e lors de l’instanciation. Et ajoutez également une méthode d’affichage du tableau (méthode__repr__()
) pour afficher les tableaux sous la forme:"Tableau([e1, e2, ..., en])"
.On donne ci-dessous une séquence d’instructions d’initialisation et d’utilisation d’un
tableau
. -
Pour aller plus loin: Cacher la structure de liste de l’attribut
data
en autorisant l’initialisation sans les crochets:tab2 = Tableau(2, 6, 5)
, et en modifiant la méthode d’affichage pour que:print(tab2)
renvoie:"Tableau(2, 6, 5)"
.Pour cela on utilisera le paramètre spécial
*args
, et la méthodejoin
desstr
en Python. -
Pour aller encore plus loin: Rendre l’utilisation des tableaux plus aisée en permettant le chaînage des méthodes
tableau.méthode1().méthode2().méthode1()...
On donne ci-dessous une séquence d’instructions d’initialisation et d’utilisation d’un
tableau
.