2015_2016:s2:td:td_domaine_partie_2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 08:27] – [Allons plus loin] blay | 2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 13:33] (current) – [Un robot facteur] blay | ||
---|---|---|---|
Line 170: | Line 170: | ||
Avance sur position attendue [100, | Avance sur position attendue [100, | ||
Avance sur position attendue [100, | Avance sur position attendue [100, | ||
- | <\code> | + | |
+ | </code> | ||
Line 190: | Line 191: | ||
Nouvelle position attendue [20, | Nouvelle position attendue [20, | ||
- | Debut du travail pour le jardinier : Je démarre : Tondeuse [vitesse=moyen, | + | |
- | Position du charriot attendue en (0,0): [0,0] | + | Avec une fusee : Je suis R2-D2 : je n'ai pas d' |
- | Deplacement du jardinier en YYX on l' | + | Deplacement du jardinier en XYX, on attend (0, |
- | Je suis R2-D2, je tiens : Tondeuse [vitesse=moyen, | + | Nouvelle position attendue [200, |
- | Arret du travail pour le jardinier : Merci, la journée a été dure! | + | |
- | Je suis R2-D2 : je n'ai pas d' | + | |
</ | </ | ||
+ | |||
+ | ==== Un robot facteur ==== | ||
+ | |||
+ | Nous sommes très content de notre robot jardinier. | ||
+ | Nous décidons de construire un robot facteur. | ||
+ | |||
+ | Il transporte des courriers. | ||
+ | |||
+ | Suivez l' | ||
+ | Des exemples de tests sont donnés pour vous aider, en particulier à définir les méthodes associées à vos classes. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Courrier === | ||
+ | |||
+ | Un courrier est défini par une adresse et un contenu. | ||
+ | Pour des raisons de confidentialité, | ||
+ | |||
+ | Voici le modèle correspondant à la classe " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | **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' | ||
+ | |||
+ | Exemple de tests et de trace : | ||
+ | < | ||
+ | Courrier c = new Courrier(" | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | < | ||
+ | ===================TESTS Courrier =================== | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | **QUESTIONS** | ||
+ | - Commencer par créer la classe '' | ||
+ | - Dans l' | ||
+ | - Quel est le modèle de la classe '' | ||
+ | - Quel est son code ? | ||
+ | |||
+ | |||
+ | === Decrypteur === | ||
+ | Pour lire le courrier il faut utiliser un décrypteur, | ||
+ | Quand il est allumé, si on lui présente un courrier, et on lui donne la clef, il nous donne l' | ||
+ | Donc à chaque lecture, un '' | ||
+ | |||
+ | Exemple de tests et de trace : | ||
+ | < | ||
+ | Decrypteur decrypteur = new Decrypteur(); | ||
+ | System.out.println(" | ||
+ | decrypteur.switchOn(); | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | ===================TESTS Decrypteur =================== | ||
+ | pas de lecture si non demarre rEV]FVuRQA\]}ZPV | ||
+ | lecture efficiente : Avenue Fabron, Nice : true | ||
+ | </ | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quelles sont les méthodes de la classe '' | ||
+ | - Implémenter la classe '' | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | |||
+ | Exemple de tests et de trace : | ||
+ | < | ||
+ | System.out.println(" | ||
+ | Courrier c2 = new Courrier(" | ||
+ | Courrier c3 = new Courrier(" | ||
+ | |||
+ | Facteur facteur = new Facteur(" | ||
+ | facteur.distribue(c, | ||
+ | facteur.distribue(c2, | ||
+ | facteur.distribue(c3, | ||
+ | |||
+ | String adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | facteur.setVehicule(charriot); | ||
+ | facteur.deplacer(" | ||
+ | Courrier courrier = facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | facteur.setVehicule(fusee); | ||
+ | facteur.deplacer(" | ||
+ | courrier = facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | facteur.depose(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | |||
+ | adresse = facteur.lire(); | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | < | ||
+ | ===================TESTS Facteur =================== | ||
+ | Je dois aller à Avenue Fabron, Nice | ||
+ | Courrier deposé à l' | ||
+ | Je suis en [20,30]: [20,30] | ||
+ | Je dois aller à : Petit Prince Planete | ||
+ | Je prends ma fusee | ||
+ | Courrier depose à l' | ||
+ | Je suis en [700,700] : [700,700] | ||
+ | Je dois aller à : | ||
+ | Je ne comprends pas, même pas capable de me donner la bonne clef! | ||
+ | Courrier perdu | ||
+ | Je suis toujours en [700,700] : [700,700] | ||
+ | J'ai fini : Rentre chez toi | ||
+ | </ | ||
+ | |||
+ | **QUESTIONS** | ||
+ | - Quel est le modèle de la classe '' | ||
+ | - Quelles sont les méthodes que doit avoir un Facteur? | ||
+ | - Implémenter la classe '' | ||
+ | |||
+ | === Encrypteur === | ||
+ | |||
+ | Voici le code pour crypter il est basé sur : [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | <code java> | ||
+ | public class Encryptor { | ||
+ | |||
+ | private final int key; | ||
+ | | ||
+ | public Encryptor(int key) { | ||
+ | super(); | ||
+ | this.key = key; | ||
+ | } | ||
+ | |||
+ | |||
+ | public String encrypt(String password){ | ||
+ | String crypte=""; | ||
+ | for (int i=0; i< | ||
+ | int c=password.charAt(i)^(48 + key); | ||
+ | crypte=crypte+(char)c; | ||
+ | } | ||
+ | return crypte; | ||
+ | } | ||
+ | |||
+ | |||
+ | public String decrypt(String password){ | ||
+ | String aCrypter=""; | ||
+ | for (int i=0; i< | ||
+ | int c=password.charAt(i)^(48 + key); | ||
+ | aCrypter=aCrypter+(char)c; | ||
+ | } | ||
+ | return aCrypter; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Exemple de tests de l' | ||
+ | |||
+ | Encryptor d = new Encryptor(2); | ||
+ | String origine = " | ||
+ | String sCryptee = d.encrypt(origine); | ||
+ | System.out.println(" | ||
+ | String r = d.decrypt(sCryptee); | ||
+ | System.out.println(r |
2015_2016/s2/td/td_domaine_partie_2.1455956843.txt.gz · Last modified: 2016/02/20 08:27 by blay