Teaching - 2i002 - (TME: sujets)


2i002 : Introduction à la programmation Objet

Séance sur la composition d'objet

Course de relais 4 fois 100m

On veut modéliser la course de relais quatre fois cent mètres avec passage de témoin.

Question 1 :

Ecrire une classe Coureur qui a les variables d'instance suivantes :

  • nuDossard de type int (numéro du dossard),
  • tempsAu100 de type double (nombre de secondes au 100m),
  • aLeTemoin de type boolean (vrai ssi le coureur a le témoin).

Question 2 :

Ajouter dans la classe Coureur , les constructeurs suivants :

  • un constructeur prenant un seul paramètre correspondant au numéro du dossard, qui initialise tempsAu100 avec un nombre compris entre 12 et 16 exclu, et aLeTemoin avec false ,
  • un constructeur sans paramètre qui appelle le constructeur à un paramètre et qui initialise nuDossard avec un entier choisi aléatoirement entre 1 et 1000.

Aide : pour générer un nombre aléatoirement, utiliser la méthode Math.random() qui rend un double compris entre 0 et 1 exclu. Exemple : pour initialiser aléatoirement la variable x avec un nombre entier entre 20 et 100 compris, on écrit l'instruction: int x=(int)(Math.random()*81+20);

Question 3 :

Dans un autre fichier, écrire une classe TestCoureur contenant la méthode main , point d'entrée du programme. Cette méthode crée 4 instances de la classe Coureur c1 , c2 , c3 et c4 . Vérifier que la méthode main compile.

Question 4 :

Ajouter et tester au fur et à mesure dans la méthode main() de TestCoureur les méthodes suivantes :

  • les accesseurs : int getNuDossard() , double getTempsAu100() , boolean getALeTemoin() ,
  • le modifieur : void setALeTemoin(boolean b) qui modifie la valeur de la variable d'instance aLeTemoin ,
  • la méthode toString() qui retourne une chaîne de caractères décrivant les caractéristiques de ce coureur. Exemple : Coureur 56 tempsAu100 : 13,7s au 100m aLeTemoin : non .

Question 5 :

Ajouter dans la classe Coureur les méthodes suivantes :

  • void passeTemoin(Coureur c) qui affiche : "moi, coureur xx, je passe le témoin au coureur yy", enlève le témoin à ce coureur et le donne au coureur c passé en paramètre.
  • void courir() qui simule la course du coureur sur 100 mètres en affichant le message "je suis le coureur xx et je cours" .

Question 6 :

Ajouter dans la méthode main les instructions qui permettent de :

  • faire courir en relais 4 fois 100m les quatre coureurs dans l'ordre c1, c2, c3, c4.
  • calculer et afficher le temps total mis par les coureurs pour faire les 400m.