public:appro-s7:ta1

On considère un cheptel de rongeurs (tamias, hamsters, etc..) qui vivent dans une cage.

La cage est constituée d'une litière, ainsi que d'une mangeoire, un nid et une roue pour faire de l'exercice.

Les animaux passent par différents états au cours de la journée:

  • Lorsqu’ils se réveillent, ils sont "affamés" et doivent donc être placés sur la mangeoire pour être nourris.
  • Une fois qu'ils ont mangé, ils sont "repus" et ont besoin d'exercice. Ils doivent donc être placés sur la roue.
  • Après avoir fait du sport, ils sont "fatigués" et ont besoin de dormir. Ils doivent donc être mis dans le nid pour se reposer.
  • Une fois dans le nid, ils sont "endormis".

Et ainsi de suite…

Exercice 1 : automates

1. Dessiner le comportement d'un animal sous la forme d'un automate fini. (voir automates finis)

2. Dessiner le comportement d'un équipement (roue, nid ou mangeoire) sous la forme d'un automate fini.

3. La mangeoire, le nid et la roue ne peuvent accueillir qu'un seul animal. La litière peut accueillir plusieurs animaux. Améliorer l'automate de la question 1 en précisant à la fois les conditions et le produit des transitions d'état.

Exercice 2 : Modèle entité/associations

A relire : Cours sur le modèle entité/association (tronc commun première année)

On considère les animaux et les équipements comme des ensembles d'entités. Les animaux sont décrits par leur nom (unique), leur race, leur type et leur état. De même, les équipements sont décrits par leur nom et leur état.

1. Comment représente-t-on le fait qu'un animal n'occupe qu'un équipement à la fois?

2. Comment représente-t-on le fait que certains équipements sont parfois occupés, parfois inoccupés?

3. Quelle est la relation qui lie les animaux aux équipements?

4. Comment représenter le fait que certains équipements (comme la litière) peuvent accueillir plusieurs animaux et que d'autres ne le peuvent pas?

5. Traduire le modèle entité/association vers le modèle relationnel

Exercice 3 : dictionnaires

On suppose que les animaux et les équipements sont représentés par des dictionnaires, dont les clés sont les attributs du modèle relationnel vu plus haut.

1. Ecrire une fonction qui teste si un équipement e est libre ou occupé.

2. Ecrire une fonction qui teste si un équipement e est compatible avec l'état d'un animal a (par exemple la "mangeoire" est compatible avec l'état "affamé", etc.)

3. Ecrire une fonction qui affecte un équipement e à un animal a (à condition que l'équipement soit libre et compatible avec l'état de l'animal). Pensez à mettre à jour la disponibilité de l'équipement ainsi que l'état de l'animal.

Ces exercices ne sont pas des révisions.

Exercice 4 : UML et objets

1. Dessiner un diagramme UML décrivant une classe Animal, une classe Equipement. Pensez à préciser les attributs ainsi que les méthodes, en vous inspirant des exercices précédents

2. Quelle est la nature de la relation entre Animal et Equipement?

3. En vous inspirant de l'exercice 3, écrire en python le constructeur et la méthode est_compatible de la classe Equipement.

4. En vous inspirant de l'exercice 3, ecrire en python le constructeur et la méthode affecte_equipement de la classe Animal.

  • public/appro-s7/ta1.txt
  • Dernière modification : 2020/11/01 15:12
  • de edauce