Outils pour utilisateurs

Outils du site


kturtle:kturtle-activites-11

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
kturtle:kturtle-activites-11 [2020/01/07 19:04] – créée crustkturtle:kturtle-activites-11 [2020/01/08 08:03] crust
Ligne 27: Ligne 27:
 message "Nonjour Monsieur" message "Nonjour Monsieur"
 }</code> }</code>
 +
 +
 +===== Jouons avec les couleurs =====
 +
 +//**
 +Inducteur : Demander de poser la question "Quelle couleur pour le carré. Laisser un choix entre les 3 couleurs et en fonction de la réponse, appliquer la couleur choisie.**//
 +| {{ :kturtle:capture_d_ecran_2020-01-08_07-23-29.png?nolink&150 |}}|{{ :kturtle:capture_d_ecran_2020-01-08_07-23-48.png?direct&150 |}} |{{ :kturtle:capture_d_ecran_2020-01-08_07-24-20.png?direct&150 |}} |{{ :kturtle:capture_d_ecran_2020-01-08_07-24-33.png?direct&150 |}} |{{ :kturtle:capture_d_ecran_2020-01-08_07-24-52.png?direct&150 |}}|
 +
 +L'élève va devoir réinvestir la condition **if** mais non plus une fois mais sur plusieurs tests : 
 +  * Tester si la valeur vaut "r" --> on applique le rouge
 +  * Tester si la valeur vaut "b" --> on applique le bleu
 +  * Tester si la valeur vaut "v" --> on applique le vert
 +  * Tester si la valeur ne correspond ni à "r", "v" ou "b" --> on laisse la couleur par défaut (noir)
 +
 +Proposition de code
 +<code bash>reset
 +
 +$couleur = ask "Rouge (r), Vert (v) ou Bleu (b) ?"
 +
 +# Test du Rouge
 +if ($couleur == "r"
 + pencolor 255,0,0
 +}
 +
 +# Test du Vert
 +if ($couleur == "v" 
 + pencolor 0,255,0
 +}
 +
 +# Test du Bleu
 +if ($couleur == "b" 
 + pencolor 0,0,255
 +}
 +
 +repeat 4 {
 + forward 40
 + turnright 90
 +}</code>
 +
 +<WRAP center round important 60%>
 +Attention le contenu des variables est sensible à la casse. C'est à dire que "**r**" est différent de "**R**".
 +Il faudra donc tester les deux si l'on veut que le programme est une batterie de tests exhaustive.
 +</WRAP>
 +
 +===== L'opérateur OR (OU) =====
 +Rebondissons sur ce qui a été dit en dernier : pour le rouge, on va tester non seulement le "**r**" mais aussi le "**R**"
 +
 +L'élève proposera de fait le code suivant composé de 2 séquences de test différentes
 +
 +<code bash># Test du Rouge minuscule
 +if ($couleur == "r") { 
 + pencolor 255,0,0
 +}
 +# Test du Rouge majuscule
 +if ($couleur == "R") { 
 + pencolor 255,0,0
 +}</code>
 +
 +Faire réfléchir les élèves à un moyen de proposer un code plus simple, moins chargé, optimisé.
 +Style "//**Et si on disait au PC de tester les 2 conditions d'emblée ? Comme avec un OU**//".
 +
 +On présente alors l'**//opérateur//** **or**
 +
 +Ce qui donne
 +
 +<code bash># Test du Rouge
 +if ($couleur == "r") or ($couleur == "R"
 + pencolor 255,0,0
 +}</code>
 +
 +Et les deux séquences de test se retrouve inscrites en une seule séquence.
 +
 +Donc le programme final
 +<code bash>
 +reset
 +
 +$couleur = ask "Rouge, Vert ou Bleu ?"
 +
 +# Test du Rouge
 +if ($couleur == "r") or ($couleur == "R"
 + pencolor 255,0,0
 +}
 +
 +# Test du Vert
 +if ($couleur == "v") or ($couleur == "V") { 
 + pencolor 0,255,0
 +}
 +
 +# Test du Bleu
 +if ($couleur == "b") or ($couleur == "B") { 
 + pencolor 0,0,255
 +}
 +
 +repeat 4 {
 + forward 40
 + turnright 90
 +}
 +</code>
 +===== Allez plus loin =====
 +
 +  * Allez plus loin, en demandant de tester aussi avec les mots "rouge" et "ROUGE". De même pour les autres couleurs.
 +
 +  * Varier le programme avec une gamme de couleur plus importante
 +
 +===== Et le else ??? =====
 +
 +//**Inducteur : Demander de choisir la figure géométrique à tracer**//
 +
 +  * Si figure est un carré -> on trace un carré
 +
 +  * Si figure est un triangle -> on trace un carré
 +
 +  * Si figure est un rectangle -> on trace un carré
 +
 +  * SI figure est un losange -> on trace un losange
 +
 +<WRAP center round important 60%>
 +Les programmes s'étoffent, pensez à l’intérieur des différents blocs à **indenter** le code à l'aide de **tabulations** pour faciliter sa lecture !
 +</WRAP>
 +
 +Vu le bagage qu'il possède, cela ne devrait pas représenter de réels soucis de codage. Sans doute quelques erreurs de syntaxe.
 +
 +<WRAP center round important 60%>
 +L'erreur la plus courante est de ne pas fermer systématiquement une accolade ouverte
 +<code bash>{ ...
 +  bloc d'instruction 1
 +  # TEST
 +  {
 +    ....
 +     bloc d'instruction
 +     ....
 +  }
 +}</code>
 +</WRAP>
 +
 +
 +Proposition de code
 +<code bash>reset
 +
 +$figure = ask "Carré ? Rectangle ? Losange ? Triangle"
 +
 +# Test du carré
 +if ($figure == "carré") {
 + repeat 4 {
 + forward 40
 + turnright 90
 + }
 +}
 +
 +# Test du triangle
 +if ($figure == "triangle") {
 + repeat 3 {
 + forward 40
 + turnright 120
 + }
 +}
 +
 +# Test du losange
 +if ($figure == "losange") {
 + repeat 6 {
 + forward 40
 + turnright 60
 + }
 +}
 +
 +# Test du rectangle
 +if ($figure == "rectangle") {
 + repeat 4 {
 + forward 40
 + turnright 90
 + forward 80
 + turnright 90
 + }
 +}</code>
 +
 +Bien sûr lors de l'invitation de saisie de la pop-up, il arrivera que l'élève ait fait une faute de saisie (orthographe ou frappe).
 +
 +Dans ce cas, la variante ne passera pas les tests et le programme ne fera rien. 
 +Sous doute l'élève répondre : "Non, j'ai bien tapé le mot", dans ce cas, utilisez l'inspecteur de code afin de bien faire l'erreur de saisie.
 +
 +| {{ :kturtle:capture_d_ecran_2020-01-08_08-00-45.png?direct&400 |}}| {{kturtle:capture_d_ecran_2020-01-08_08-01-07.png?direct&400 |}}| 
 +===== Navigation =====
 +^ page précédente       ^ Sommaire                                  ^ Page suivante       ^
 +| [[kturtle:kturtle-activites-10|Et le hasard dans tout cela ?]] | [[https://cbiot.fr/dokuwiki/doku.php#kturtle|sommaire]] | |
kturtle/kturtle-activites-11.txt · Dernière modification : 2020/01/09 21:38 de crust