This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 13:27] blay [Un robot facteur] |
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 14:33] (current) blay [Un robot facteur] |
||
---|---|---|---|
Line 204: | Line 204: | ||
Il transporte des courriers. | Il transporte des courriers. | ||
+ | |||
+ | Suivez l'énoncé pas à pas. Il est écrit ainsi pour vous aider. | ||
+ | Des exemples de tests sont donnés pour vous aider, en particulier à définir les méthodes associées à vos classes. | ||
+ | |||
+ | |||
+ | |||
=== Courrier === | === Courrier === | ||
+ | |||
Un courrier est défini par une adresse et un contenu. | Un courrier est défini par une adresse et un contenu. | ||
Pour des raisons de confidentialité, une fois créé, si on demande l'adresse ou le contenu du courrier, on obtient un texte illisible : il est crypté en utilisant un encrypteur donné plus bas et une clef donnée à la construction du courrier. | Pour des raisons de confidentialité, une fois créé, si on demande l'adresse ou le contenu du courrier, on obtient un texte illisible : il est crypté en utilisant un encrypteur donné plus bas et une clef donnée à la construction du courrier. | ||
+ | |||
+ | Voici le modèle correspondant à la classe "Encryptor" | ||
+ | |||
+ | {{ :2015_2016:s2:td:capture_d_e_cran_2016-02-20_a_14.22.00.png?direct&200 |}} | ||
+ | |||
**Le courrier ne contient pas le texte initial, ni la clef de cryptage. Elles sont seulement connues à la création du courrier.** On ne peut pas modifier l'adresse ou le contenu d'un courrier. | **Le courrier ne contient pas le texte initial, ni la clef de cryptage. Elles sont seulement connues à la création du courrier.** On ne peut pas modifier l'adresse ou le contenu d'un courrier. | ||
Line 222: | Line 234: | ||
Courrier contenu illisible qARE\ | Courrier contenu illisible qARE\ | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | **QUESTIONS** | ||
+ | - Commencer par créer la classe ''Encriptor'' en recopiant "simplement" le code donné plus bas. | ||
+ | - 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 son code ? | ||
+ | |||
=== 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 : | ||
Line 232: | Line 253: | ||
System.out.println("pas de lecture si non demarre " + decrypteur.read(c,3)); | System.out.println("pas de lecture si non demarre " + decrypteur.read(c,3)); | ||
decrypteur.switchOn(); | decrypteur.switchOn(); | ||
- | System.out.println("lecture efficiente " + decrypteur.read(c,3) + " : " +decrypteur.read(c,3).equals(origine) ); | + | System.out.println("lecture efficiente : " + decrypteur.read(c,3) + " : " +decrypteur.read(c,3).equals(origine) ); |
</code> | </code> | ||
Line 238: | Line 259: | ||
===================TESTS Decrypteur =================== | ===================TESTS Decrypteur =================== | ||
pas de lecture si non demarre rEV]FVuRQA\]}ZPV | pas de lecture si non demarre rEV]FVuRQA\]}ZPV | ||
- | lecture efficiente Avenue Fabron, Nice : true | + | lecture efficiente : Avenue Fabron, Nice : true |
</code> | </code> | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quelles sont les méthodes de la classe ''Decrypteur'' ? | ||
+ | - Implémenter la classe ''Decrypteur''. | ||
=== Facteur === | === Facteur === | ||
Line 274: | Line 299: | ||
adresse = facteur.lire(); | adresse = facteur.lire(); | ||
- | System.out.println("Je dois aller à :" + adresse); | + | System.out.println("Je dois aller à : " + adresse); |
System.out.println("Je ne comprends pas, même pas capable de me donner la bonne clef!"); | System.out.println("Je ne comprends pas, même pas capable de me donner la bonne clef!"); | ||
facteur.depose(); | facteur.depose(); | ||
Line 288: | Line 313: | ||
Courrier deposé à l'adresse : Avenue Fabron, Nice | Courrier deposé à l'adresse : Avenue Fabron, Nice | ||
Je suis en [20,30]: [20,30] | Je suis en [20,30]: [20,30] | ||
- | Je dois aller à :Petit Prince Planete | + | Je dois aller à : Petit Prince Planete |
Je prends ma fusee | Je prends ma fusee | ||
Courrier depose à l'adresse Petit Prince Planete | Courrier depose à l'adresse Petit Prince Planete | ||
Line 298: | Line 323: | ||
J'ai fini : Rentre chez toi | J'ai fini : Rentre chez toi | ||
</code> | </code> | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quel est le modèle de la classe ''Facteur''? Qu'ont en commun un ''Facteur'' et un ''Jardinier''? | ||
+ | - Quelles sont les méthodes que doit avoir un Facteur? | ||
+ | - Implémenter la classe ''Facteur'' | ||
+ | |||
=== Encrypteur === | === Encrypteur === | ||
Line 338: | Line 369: | ||
</code> | </code> | ||
- | Exemple de tests de l'encryptor | + | Exemple de tests de l'encryptor : |
Encryptor d = new Encryptor(2); | Encryptor d = new Encryptor(2); | ||
String origine = "Avenue Fabron, Nice"; | String origine = "Avenue Fabron, Nice"; |