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/02/27 14:41]
blay [Le robot conduit le véhicule (20mn)]
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 245: Line 246:
  
  
-==== Un robot facteur ====+===== Un robot facteur ​=====
  
 Nous sommes très content de notre robot jardinier. Nous sommes très content de notre robot jardinier.
Line 259: Line 260:
  
  
-=== Courrier ===+==== Courrier ​====
  
 Un courrier est défini par une adresse et un contenu. Un courrier est défini par une adresse et un contenu.
Line 272: Line 273:
 Exemple de tests et de trace :  Exemple de tests et de trace : 
 <​code>​ <​code>​
-Courrier c new Courrier("​Avenue Fabron, Nice","​Bravo ", 3); +String adresseOrigine ​= "​Avenue Fabron, Nice"
-System.out.println("​Courrier adresse illisible " + c.getAdresse());​ +Courrier mail = new Courrier(adresseOrigine,"​Bravo ", 3); 
-System.out.println("​Courrier contenu illisible " + c.getContenu());​ +System.out.println("​Courrier adresse illisible " + mail.getAdresse());​ 
 +System.out.println("​Courrier contenu illisible " + mail.getContenu());​
 </​code>​ </​code>​
 <​code>​ <​code>​
Line 285: Line 287:
 **QUESTIONS** **QUESTIONS**
   - Commencer par créer la classe ''​Encriptor''​ en recopiant "​simplement"​ le code donné plus bas.   - Commencer par créer la classe ''​Encriptor''​ en recopiant "​simplement"​ le code donné plus bas.
 +  - Regarder le code de tests de courrier : 
 +       - A quoi correspond d'​après vous le 3 ?
 +       - Pourquoi la réponse à ''​getAdresse''​ est-ce un texte crypté? ​
   - Dans l'​ordre que vous voulez, répondez à ces deux questions, et tester votre code.   - Dans l'​ordre que vous voulez, répondez à ces deux questions, et tester votre code.
       - Quel est le modèle de la classe ''​Courrier''? ​       - Quel est le modèle de la classe ''​Courrier''? ​
Line 290: Line 295:
  
  
-=== Decrypteur ===+==== Decrypteur ​====
 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(c,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(c,3) + " : " +decrypteur.read(c,3).equals(origine) ); +System.out.println("​lecture efficiente " +  ​decryptor.readAddress(mail,3) + " : " + decryptor.readAddress(mail,3).equals(adresseOrigine) ); 
 </​code>​ </​code>​
  
Line 310: Line 315:
  
 **QUESTIONS** **QUESTIONS**
-  - Quelles sont les méthodes de la classe ''​Decrypteur''​ ? +  - 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 372: 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.1488202871.txt.gz · Last modified: 2017/02/27 14:41 by blay