User Tools

Site Tools


2016_2017:s2:td:td_domaine_partie_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2016_2017:s2:td:td_domaine_partie_2 [2017/03/04 15:42]
blay [Un robot facteur]
2016_2017:s2:td:td_domaine_partie_2 [2018/01/21 23:22] (current)
blay [Classes : modélisation et codage]
Line 8: Line 8:
  
 <​note>​Ce TD est évalué sur toute sa durée et plus spécifiquement sur le dernier exercice.</​note>​ <​note>​Ce TD est évalué sur toute sa durée et plus spécifiquement sur le dernier exercice.</​note>​
 +
  
  
Line 297: Line 298:
 Pour lire le courrier il faut utiliser un décrypteur,​ c'est un outil électrique. Pour lire le courrier il faut utiliser un décrypteur,​ c'est un outil électrique.
 Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l'​adresse en claire, sinon il renvoie l'​adresse telle que. Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l'​adresse en claire, sinon il renvoie l'​adresse telle que.
-Donc à chaque lecture, un ''​Encryptor''​ est créé avec la clef en paramètre. 
  
 Exemple de tests et de trace :  Exemple de tests et de trace : 
 <​code>​ <​code>​
-Decrypteur decrypteur ​= new Decrypteur(); +Decryptor decryptor ​= new Decryptor(); 
-System.out.println("​pas de lecture si non demarre " + decrypteur.read(mail,​3));​ +System.out.println("​pas de lecture si non demarre " + decryptor.readAddress(mail,​3));​ 
-decrypteur.switchOn();​ +decryptor.switchOn();​ 
-System.out.println("​lecture efficiente " +  ​decrypteur.read(mail,3) + " : " +decrypteur.read(mail,​3).equals(adresseOrigine) ); +System.out.println("​lecture efficiente " +  ​decryptor.readAddress(mail,3) + " : " + decryptor.readAddress(mail,​3).equals(adresseOrigine) ); 
 </​code>​ </​code>​
  
Line 314: Line 315:
  
 **QUESTIONS** **QUESTIONS**
-  - Quelles sont les méthodes de la classe ''​Decrypteur''​ ? Quelle est la relation entre ''​Decrypteur''​ et ''​OutilElectrique''​ ? +  - Quelles sont les méthodes de la classe ''​Decryptor''​ ? Quelle est la relation entre ''​Decryptor''​ et ''​OutilElectrique''​ ? 
-  - Implémenter la classe ''​Decrypteur''​.+  - La classe ''​Decryptor''​a besoin de créer un ''​Encyptor''​ à chaque appel en lecture en lui passant la bonne clef. 
 +  - Implémenter la classe ''​Decryptor''​.
  
 ==== Facteur ==== ==== Facteur ====
 Notre robot facteur peut  avoir un véhicule pour se déplacer et un décrypteur pour lire le courrier. Quand on lui remet un courrier, on lui donne la clef pour lire le courrier. Notre robot facteur peut  avoir un véhicule pour se déplacer et un décrypteur pour lire le courrier. Quand on lui remet un courrier, on lui donne la clef pour lire le courrier.
  
 +Exemple de tests et de trace simple: ​
 +<​code>​
 +System.out.println("​===================TESTS Facteur ==================="​);​
 +Facteur facteur = new Facteur("​Hermes"​);​
 +//Une distribution simple
 +facteur.distribue(mail,​3);​
 +String adresse = facteur.lire();​
 +System.out.println("​Je dois aller à " + adresse);
 +facteur.setVehicule(charriot);​
 +facteur.deplacer("​XXYYY"​);​
 +Courrier courrierDepose = facteur.depose();​
 +System.out.println("​Courrier"​ + courrierDepose +" deposé à l'​adresse : " + adresse );
 +System.out.println("​Je suis en  [20,30]: " + charriot.getPosition());​
 +</​code>​
 +<​code>​
 +Je dois aller à Avenue Fabron, Nice
 +CourrieroutilsPK.Courrier@511d50c0 deposé à l'​adresse : Avenue Fabron, Nice
 +Je suis en  [20,30]: [20,30]
 +Je dois aller à Avenue Fabron, Nice
 +Courrier deposé à l'​adresse : Avenue Fabron, Nice
 +Je suis en  [20,30]: [20,30]
 +</​code>​
 +
 +**QUESTIONS**
 +  - Quel est le modèle de la classe ''​Facteur''? ​
 +  - Quelles sont les méthodes que doit avoir un Facteur?
 +  - Qu'ont en commun un ''​Facteur''​ et un ''​Jardinier''?​
 +  - Implémenter la classe ''​Facteur''​
 +  - Le facteur a-t-il bien lâché le courrier une fois déposé ? Que faîtes-vous si vous demandez au facteur de lire le courrier alors qu'il n'en a plus ? Par exemple :
 +<​code> ​
 +adresse = facteur.lire();​
 +System.out.println("​Je dois aller à " + adresse);
 +</​code>​
 +<​code>​
 +Je dois aller à Rentre chez toi
 +</​code>​
 +
 +==== Facteur encore ====
 +
 +Evidemment notre facteur ne distribue pas un seul courrier.
  
 Exemple de tests et de trace :  Exemple de tests et de trace : 
 <​code>​ <​code>​
 System.out.println("​===================TESTS Facteur ==================="​);​ System.out.println("​===================TESTS Facteur ==================="​);​
 +//3 courriers sont remis à notre facteur avec pour chacun la clef pour lire leur adresse.
 Courrier c2 = new Courrier("​Petit Prince Planete","​Je veux etre ton ami ",2); Courrier c2 = new Courrier("​Petit Prince Planete","​Je veux etre ton ami ",2);
 Courrier c3 = new Courrier("​Pere Noel","​Je voudrais un robot voyageur ",5); Courrier c3 = new Courrier("​Pere Noel","​Je voudrais un robot voyageur ",5);
  
 Facteur facteur = new Facteur("​Hermes"​);​ Facteur facteur = new Facteur("​Hermes"​);​
-facteur.distribue(c,3);+facteur.distribue(mail,3);
 facteur.distribue(c2,​2);​ facteur.distribue(c2,​2);​
 facteur.distribue(c3,​2);​ facteur.distribue(c3,​2);​
Line 376: Line 419:
  
 **QUESTIONS** **QUESTIONS**
-  - Quel est le modèle de la classe ​''​Facteur''​? Qu'ont en commun un ''​Facteur''​ et un ''​Jardinier''​+  - Que devez-vous modifier pour que le ''​Facteur'' ​remplisse bien son rôle ?  
-  - Quelles sont les méthodes que doit avoir un Facteur? +  - Améliorer ​la classe ''​Facteur''​ 
-  - Implémenter ​la classe ''​Facteur''​+ 
 + 
 +==== CODES ====
  
 === Encrypteur === === Encrypteur ===
2016_2017/s2/td/td_domaine_partie_2.1488638558.txt.gz · Last modified: 2017/03/04 15:42 by blay