====== Dialoguer avec l'ordinateur ======
===== Situation problème =====
Demander d'écrire le code pour un carré de 10, puis de 20, puis de 15 puis de 50, puis de 40 de largeur...
Bien vite, ils en auront assez de taper des lignes de code qui font toutes la même chose, seule la valeur de la longueur du coté changeant...
Si cela n'est pas perçu, insister et mettre en évidence ce fait, quitte à écrire le code au tableau et analyser les différences.
Faire germer l'idée que si l'on pouvait passer cette valeur au logiciel sans avoir à réécrire ce code ce serait idéal.
L'idée est de dire que l'on va utiliser un boite (que l'on nommera boite ou toto ou machin) dans laquelle on glissera la valeur du coté (ici un nombre) et qu'il suffira d'ouvrir cette boite et de lire son contenu à chaque appel du programme
Pour que le programme comprenne qu'il s'agit d'une boite, on mettre un **$** devant son nom.
On utilisera la structure suivante pour la création de la boite.
$cote = ask "Dimension du coté ?"
A lecture de ce code, le programme affichera une pop-up et posera la question **"Dimension du coté ?"**
Cette valeur sera placée dans une boite, ici nommée "**cote**".
Quand cette boite apparaîtra dans le code, elle sera remplacée par la valeur saisie.
reset
$cote = ask "Dimension du coté"
# triangle
go 200 ,200
repeat 3 {
forward $cote
turnright 120
}
{{ :kturtle:capture_d_ecran_2020-01-06_18-22-51.png?direct&400 |}}
Préciser aux élèves que ce que vous appelez **boite** se nomme en fait **variable**.
D'expérience, les élèves préfèrent le terme **boite**...
Prenez l'habitude de ne pas mettre d'accent dans vos variables
===== Réinvestissement =====
Reprendre le même exercice avec le carré, puis le rectangle.
===== Le rectangle =====
Et oui, là ça coince ! Car le rectangle ne possède pas 4 cotés de même dimension.
Il faudrait donc... 2 boites... Qu'a cela ne tienne... Créons 2 boites... Laissez les se débrouiller...
Voici un exemple de résolution :
reset
$largeur = ask "Largeur ?"
$longueur = ask "Longueur ?"
# rectangle
go 200 ,200
repeat 2 {
forward $largeur
turnright 90
forward $longueur
turnright 90
}
===== Navigation =====
^ page précédente ^ Sommaire ^ Page suivante ^
| [[kturtle:kturtle-activites-05|La boucle repeat]] | [[https://cbiot.fr/dokuwiki/doku.php#kturtle|sommaire]] | [[kturtle:kturtle-activites-07|Ecrire avec Kturtle]]|