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 revisionNext revisionBoth sides next revision | ||
2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 07:47] – [Utiliser une classe (25mn)] blay | 2015_2016:s2:td:td_domaine_partie_2 [2016/02/20 10:11] – [Un robot facteur] blay | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Classes : modélisation et codage ====== | ====== Classes : modélisation et codage ====== | ||
- | <note warning> | ||
- | Objectif : Faire un lien direct entre la modélisation des classes et les codes correspondants. | ||
- | < | + | **Objectifs :** |
+ | - Faire un lien direct entre la modélisation des classes et les codes correspondants. | ||
+ | - Savoir construire un petit modèle de classes et le mettre en oeuvre. | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | ===== Classe : Code et modélisation ===== | ||
+ | <note tip> | ||
+ | Les notes de bas de page vous donnent des indications sur certaines actions. Il suffit de laisser la souris sur les renvois. | ||
+ | </ | ||
+ | <note tip> | ||
+ | Les temps sont donnés à titre indicatif, ce TD doit aller assez vite, il est simple et vise seulement à bien poser le lien entre conception et développement. | ||
+ | </ | ||
+ | |||
+ | < | ||
< | < | ||
< | < | ||
Line 15: | Line 28: | ||
--!> | --!> | ||
</ | </ | ||
- | ===== Classe : Code et modélisation ===== | ||
- | <note tip> | ||
- | Les notes de bas de page vous donnent des indications sur certaines actions. Il suffit de laisser la souris sur les renvois. | ||
- | </ | ||
- | <note tip> | ||
- | Les temps sont donnés à titre indicatif, ce TD doit aller assez vite, il est simple et vise seulement à bien poser le lien entre conception et développement. | ||
- | </ | ||
==== Classe '' | ==== Classe '' | ||
Line 145: | Line 151: | ||
A présent notre robot peut utiliser un véhicule. | A présent notre robot peut utiliser un véhicule. | ||
+ | |||
+ | ==== Déplacement d'un véhicule ==== | ||
Un '' | Un '' | ||
Line 154: | Line 162: | ||
Une '' | Une '' | ||
+ | < | ||
+ | ===================TESTS Vehicules =================== | ||
+ | Chariot => Vehicule [position=[0, | ||
+ | Avance sur X, position attendue [10,0] : true | ||
+ | Avance sur Y, position attendue | ||
+ | Fusee => Vehicule [position=[0, | ||
+ | Avance sur position attendue [100, | ||
+ | Avance sur position attendue [100, | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Le robot conduit le véhicule ==== | ||
On peut donner un véhicule au robot. Il l' | On peut donner un véhicule au robot. Il l' | ||
- | On peut demander au robot de se déplacer selon un schéma donné : " | + | On peut demander au robot de se déplacer selon un schéma donné : " |
+ | Le robot déplacera alors le véhicule de X puis de Y puis de X puis de X. | ||
Quand le robot arrête de travailler il ramène le véhicule en position initiale. | Quand le robot arrête de travailler il ramène le véhicule en position initiale. | ||
Line 162: | Line 184: | ||
< | < | ||
- | =========================TESTS Jardinier & Vehicule =================== | + | |
- | ===================TESTS Vehicules =================== | + | |
- | Chariot => Vehicule [position=[0, | + | |
- | Avance sur X : Chariot => Vehicule [position=[10, | + | |
- | Avance sur Y : Chariot => Vehicule [position=[10, | + | |
- | Fusee => Vehicule [position=[0, | + | |
- | Avance sur X : Fusee => Vehicule [position=[1000, | + | |
- | Avance sur Y : Fusee => Vehicule [position=[1000, | + | |
===================TESTS jardinier & Vehicules =================== | ===================TESTS jardinier & Vehicules =================== | ||
Pas de vehicule : Je suis R2-D2 : je n'ai pas d' | Pas de vehicule : Je suis R2-D2 : je n'ai pas d' | ||
Avec un charriot : Je suis R2-D2 : je n'ai pas d' | Avec un charriot : Je suis R2-D2 : je n'ai pas d' | ||
Deplacement du jardinier en XYX, on attend (0, | Deplacement du jardinier en XYX, on attend (0, | ||
- | [0,0] | + | Nouvelle position attendue |
- | [10,0] | + | |
- | [10,10] | + | |
- | | + | Avec une fusee : Je suis R2-D2 : je n'ai pas d' |
- | Debut du travail pour le jardinier | + | Deplacement |
- | Position | + | Nouvelle position attendue [200,100] : true |
- | Deplacement du jardinier | + | |
- | Je suis R2-D2, je tiens : Tondeuse [vitesse=moyen, cadence=1000], j'ai ce vehicule Chariot => Vehicule [position=[10,20]] | + | </ |
- | Arret du travail | + | |
- | Je suis R2-D2 : je n' | + | ==== Un robot facteur ==== |
+ | |||
+ | Nous sommes très content de notre robot jardinier. | ||
+ | Nous décidons de construire un robot facteur. | ||
+ | |||
+ | Il transporte des courriers. | ||
+ | |||
+ | |||
+ | === Courrier === | ||
+ | Un courrier est défini par une adresse et un contenu. | ||
+ | Pour des raisons de confidentialité, | ||
+ | **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 test et de trace : | ||
+ | < | ||
+ | Courrier c = new Courrier(" | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | === Decrypteur === | ||
+ | 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' | ||
+ | |||
+ | <code> | ||
+ | Decrypteur 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 | ||
+ | </ | ||
+ | |||
+ | === Facteur === | ||
+ | Notre robot facteur peut avoir un véhicule | ||
+ | |||
+ | |||
+ | |||
+ | === 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.txt · Last modified: 2016/02/20 13:33 by blay