Le CP est le cours préparatoire destiné aux enfants de 6 ans environ.
Le CE1 et le CE2 sont les cours elementaires première et deuxième année
destinés aux enfants de 7-8 ans environ.
On utilise ici les commandes avance, tourne_droite et
tourne_gauche.
L’enfant utilise les boutons de la barre des boutons :
av ou td ou tg qui écrivent avance ou
tourne_droite ou tourne_gauche dans la ligne de commande.
Dans les dessins de cette section, il s’agit de reconnaitre la gauche de la
droite de la tortue. Pour les enfants qui sont en dificulté on peut tracer
sur un morceau de papier calque une flèche, où l’on marque D sur le
coté droit et G sur le coté gauche, par exemple :
igtortue/fleche.tex
On explique que la flèche c’est la tête de la tortue et que le point c’est là où elle se trouve, et quand elle tourne, elle reste à la même place et seule sa tête change de direction.
Sur un papier quadrillé, l’enfant dessine l’escalier de 4 marches
ci-dessous :
igtortue/escalier.tex
Puis il doit reproduire ce dessin sur l’écran de l’ordinateur.
L’enfant utilise les boutons av ou td ou tg, puis appuie
sur entrée : il ne prévoit pas à l’avance les commandes mais il
travaille au pas à pas.
Dans un deuxième temps on pourra exécuter plusieurs commandes en
les séparant par ; par exemple :
avance;tourne_droite; avance;tourne_gauche;
Une fois l’escalier terminé on peut lui demander de faire revenir la tortue
à son point de départ en passant sur les traits : ce dessin se fera en utilisant une autre couleur.
L’enfant utilise les boutons cr puis av ou td ou tg,
puis appuie sur entrée.
cr est l’abreviation de la commande crayon qui permet de changer la couleur du crayon par exemple : crayon rouge ou crayon gomme.
L’enfant peut utiliser les boutons av, re , td et tg,
abreviations des commandes
avance, recule, tourne_gauche, tourne_droite.
Ici, on remarquera que le symetrique s’obtient avec la même suite de
commandes que celle utilisée pour faire le premier escalier.
Sur un papier quadrillé, l’enfant dessine la tour suivante :
igtortue/tour.tex
Puis il doit reproduire ce dessin sur l’écran de l’ordinateur.
Sur un papier quadrillé, l’enfant dessine le chateau fort suivant :
igtortue/chateau.tex
Durant cette séance, il faut faire comprendre que les commandes pour
réaliser la deuxième tour seront les mêmes que celles de la première
tour à condition de mettre la tortue au bon endroit au demarrage du tracé
de la deuxième tour.
On explique que l’on peut donner un nom à une suite de commandes en utilisant les commandes debut_enregistrement et fin_enregistrement
La procédure M va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue.
igtortue/marche.tex
On tape par exemple :
debut_enregistrement "M" puis,
avance entrée
tourne_droite entrée
avance entrée
tourne_gauche entrée puis,
fin_enregistrement "M.cxx"
On vient ainsi de créer deux choses :
la commande M() qui dessine une marche et le fichier M.cxx qui
contient cette commande : on pourra ainsi retrouver la commande M lors des séances suivantes en tapant :
ramene "M.cxx".
Attention
- les noms des fichiers sont entourés de " mais pas
le nom de la commande.
- pour exécuter la commande il est obligatoire de faire suivre le nom par des
parenthèses comme : M().
- une commande réalise un dessin dépendant de la position de la tortue
avant son exécution (position de départ) et qui laisse la tortue en
général à un autre endroit (position finale).
Exemple : l’escalier symétrique
On tape :
M();M();M();M(); entrée puis,
tourne_droite; entrée
M();M();M();M(); entrée
Avec des élèves plus agés on peut écrire directement :
M():={avance;tourne_droite;avance;tourne_gauche;},
puis pour avoir le dessin de l’escalier :
tourne_gauche;repete(4,M())
On peut aussi écrire la procédure escalier ayant comme paramètre
n, le nombre de marches :
escalier(n):=repete(n,M()).
On a alors :
escalier2(n):={escalier(n); tourne_droite;escalier(n)}
puis pour avoir le dessin de l’escalier symétrique ayant 7 marches:
tourne_gauche; escalier2(7)
La procédure T va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue : ici on ne voit qu’un
triangle plein car la position d’arrivée de la tortue est la même que sa
position de départ.
igtortue/tour2.tex
Remarque
Il faut bien voir que l’écriture de la procédure T dépend du choix
de la position de départ et d’arrivée de la tortue et que pour un même
dessin il y a plusieurs choix possibles.
On tape :
debut_enregistrement "T" puis,
avance(60) entrée
tourne_droite entrée
avance entrée
tourne_droite entrée
avance entrée
tourne_gauche entrée
avance entrée
tourne_gauche entrée
avance entrée
tourne_droite entrée
avance entrée
tourne_droite entrée
avance(60) entrée
tourne_droite entrée
avance(30) entrée
tourne_droite entrée
fin_enregistrement "M.cxx"
Puis on tape :
tourne_gauche entrée
T() entrée
Pour faire plusieurs tours, on tape :
tourne_gauche entrée
T() entrée
pas_de_cote -30 entrée
T() entrée
pas_de_cote -30 entrée
T() entrée etc...
Ce train est composé d’une locomotive L, de wagons de voyageurs
V et de wagons de marchandises M.
Pour faire L,V et M on a besoin de savoir faire un carré
C.
La procédure C va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ et
d’arrivée de la tortue.
igtortue/carre.tex
La procédure M va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue.
igtortue/wagon.tex
La procédure V va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue.
igtortue/voyage.tex
La procédure L va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue.
igtortue/loco.tex
Un train peut alors se former en tapant :
M();M();V();V();L()
Nous allons apprendre dans cette séance à se servir des commandes :
rectangle_plein, triangle_plein, disque et utiliser aussi les commandes
repete pour répéter et crayon pour changer la couleur.
Nous allons mettre côte à cote plusieurs fois le même motif.
Nous choisissons des motifs simples comme par exemple :
un carré, un saut etc...
un carré rouge, un carré noir etc...
un triangle isocèle rectangle plein, un saut etc...
un triangle isocèle rectangle plein rouge, un isocèle rectangle plein noir etc...
un disque, un saut etc...
un disque rouge, un disque noir etc...
un quart de disque, un saut etc...
un quart de disque rouge, un quart de disque noir etc...
On pourra écrire dans la ligne des commandes :
rectangle_plein 20;saute 40
que l’on peut valider plusieurs fois (il faut savoir aussi que Ctrl+
la flèche vers le haut du clavier met dans la ligne des commandes, les
commandes précédentes et que esc efface la ligne des commandes).
On explique que :
rectangle_plein 20;saute 40;rectangle_plein 20;saute 40;
produit la même chose que :
repete(2,rectangle_plein 20,saute 40)
Il faut bien faire attention à la syntaxe :
; sépare deux instructions et
, sépare les paramètres d’une instruction.
Ici on utilise la commande rectangle_plein qui dessine un carré ou
un rectangle plein :
rectangle_plein dessine un carré plein de côtés 10 dans le sens
trigonométrique.
rectangle_plein 20 ou rectangle_plein(20) dessine un carré
plein de côtés 20 dans le sens trigonométrique.
rectangle_plein(20,50) dessine un rectangle plein de
côtés 20 et 50 dans le sens trigonométrique.
Attention
Les parenthèses sont onligatoires pour les primitives ayant plus d’un
paramètre.
Voici le bonhomme que l’on veut dessiner :
igtortue/bonhom.tex
On décompose ce bonhomme en :
- une tête formée par une croix composée de 5 carrés de côtés 10 pas.
- deux bras formés chacun par 2 carrés,
- un corps formé par un carré de côtés 30 pas.
- deux jambes formées chacune par un rectangle de côtés 10 et 30 pas
On définit la procédure tete en tapant :
tete():={ rectangle_plein; repete(4,saute,rectangle_plein,tourne_gauche); }
cette procédure tete
va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle la position de départ et
d’arrivée de la tortue.
igtortue/tete.tex
On définit la procédure bras en tapant :
bras():={ rectangle_plein; saute; pas_de_cote 10; rectangle_plein; pas_de_cote -10; saute -10; }
cette procédure bras
va réaliser le dessin ci-dessous sur lequel on a
noté à l’aide d’un triangle la position de départ et
d’arrivée de la tortue.
igtortue/bras.tex
Ensuite on peut faire des variantes en réalisant des bonhommes avec les deux bras levés ou avec un bras levé et l’autre baissé...puis faire une ribambelle. Il faut bien comprendre que les choix du départ et d’arrivée de la tortue ne sont pas uniques et dependent de ce que l’on veut faire par exemple pour faire une ribambelle il peut être judicieux de démarrer au bout du bras gauche et de terminer au bout du bras droit pour être prêt à un nouveau départ.
Ici on utilise les commandes rectangle_plein ou triangle_plein
qui dessine un rectangle plein ou un triangle plein,
à gauche de la position de départ de la tortue, la tortue étant
dirigée au départ selon un côté.
Voici les dessins du toit, de la maison et du bateau
sur lesquels on a
noté à l’aide d’un triangle plein la position de départ de la tortue et
par un triangle la position d’arrivée de la tortue, lorsqu’on ne voit qu’un
triangle plein c’est que la position d’arrivée de la tortue est la même
que sa position de départ.
On remarquera que le bateau et la maison se fait avec la même procédure.
igtortue/bateau.tex
toit():={ rectangle_plein(60,20); tourne_gauche; triangle_plein(20,20); pas_de_cote -60; tourne_droite; triangle_plein(20,20); }
maison():={ tourne_gauche; avance 40; tourne_droite; toit(); tourne_droite; avance 40; tourne_droite; avance 60; tourne_droite 180; }
Voici les dessins des bateaux que l’on veut réaliser :
igtortue/bateaux.tex
Il s’agit de réutiliser la procédure toit créer précédemment.
Pour cela on tape, par exemple :
bateau1():={ tourne_droite 180; toit(); tourne_droite 180; triangle_plein(60,60); saute 60; }; bateau2():={ tourne_droite 180; toit(); tourne_droite 180; avance 30; triangle_plein(30,30); tourne_gauche; triangle_plein(30,30); tourne_droite; saute 30; };
Puis on demande de faire une frise faite de 2 lignes composées chacune de
trois bateau2, on veut obtenir :
igtortue/frise.tex
On remarque alors qu’il apparait un troisième bateau que l’on demande de
définir.
On tape par exemple :
bateau3():={ tourne_droite; triangle_plein(30,30); tourne_droite; rectangle_plein(40,30); saute 40; triangle_plein(30,30); tourne_droite 180; saute 20; triangle_plein(20,20); tourne_gauche; triangle_plein(20,20); tourne_droite ; saute 20; };
Comment faire pour que le bateau qui apparait soit le même ?
Autrement trouver un pavage fait avec un seul bateau.
Pour avoir un pavage, il faut que les voiles aient la même
dimensions que les triangles formant les bords de la coque. Les voiles peuvent
alors être placées n’importe où sur la coque.
On peut donc définir une procédure paramétrée avec n
(0<n<60) qui sera la place des voiles sur la coque.
Par exemple, on tape si on veut encore utiliser toit :
navire(n):={ tourne_droite 180; toit(); tourne_droite 180; saute n; triangle_plein(20,20); tourne_gauche; triangle_plein(20,20); tourne_droite; saute 60-n; }
Voici par exemple navire(10) et navire(50) :
igtortue/navire.tex
Voici par exemple un pavage réalisé avec navire(30) :
igtortue/navire30.tex
Voici par exemple un pavage réalisé avec navire(10) :
igtortue/navire10.tex
Et encore un pavage fait avec les navire(n) pour n=10,20...60, pour cela on tape :
pavage():={ repete(6,navire(10),saute 100); saute -540; pas_de_cote -20; crayon rouge; repete(5,navire(20),saute 100); saute -450; pas_de_cote -20; crayon vert; repete(4,navire(30),saute 100); saute -360; pas_de_cote -20; crayon bleu; repete(3,navire(40),saute 100); saute -270; pas_de_cote -20; crayon jaune; repete(2,navire(50),saute 100); saute -180; pas_de_cote -20; crayon magenta; navire(60); }
Puis on tape :
pas_de_cote 60; saute -210; pavage();
On peut faire une ligne composée de toit espacée par n pas, pour cela on tape :
toit():={ rectangle_plein(60,20); tourne_gauche; triangle_plein(20,20); pas_de_cote -60; tourne_droite; triangle_plein(20,20); }; toits(n):={ repete(3,toit(),saute 40+n); }
En effet dans la procédure toit la tortue a avancé de 60 pas et comme
la longueur du toit est de 100 pas, il faut faire 40 pas, pour réaliser
un deuxième toit qui touche le premier.
En faisant plusieurs lignes de toits(0), en quinconce, on obtient :
igtortue/toits.tex
En faisant plusieurs lignes de toits(60), en quinconce, on obtient :
igtortue/toits60.tex
Ici on utilise les commandes disque ou rond qui dessine un disque
ou un cercle à partir d’une position de la tortue qui est tangentielle au
disque ou au cercle.
Voici le dessin du bonhomme de neige que l’on fera dessiner sur papier
millimétré aux enfants :
le corps est un cercle qui a comme rayon 60, la tête est un cercle qui a
comme rayon 20, les boutons et les yeux sont des cercles de rayon 6 et
le chapeau un demi-disque de rayon 10.
igtortue/neige.tex
Si on choisit de prendre comme position de départ de la tortue, le centre du corps, avec le cap 0, et une arrivée décalée à gauche de 30 pas, par rapport à ce centre, et de cap 135 (pour être en position pour mettre le balai), on tape :
bonhomme():={ pas_de_cote 60; rond 20; rond -60; pas_de_cote -20; rond 6; pas_de_cote -20; rond 6; pas_de_cote -20; rond 6; pas_de_cote -20; rond 6; pas_de_cote 110; saute 16; tourne_gauche; rond 6; pas_de_cote 20; rond 6; pas_de_cote -4; saute; tourne_gauche; avance 20; recule 40; avance; tourne_droite ; disque(10,180); saute 100; pas_de_cote -20; tourne_droite 135; }
On choisit comme modéle de balai le dessin ci-dessous sur lequel on a
mis un petit triangle plein pour désigner le choix de la position de départ
et d’arrivée de la tortue :
igtortue/balai.tex
On tape :
balai():={ avance 80; tourne_gauche; avance 20; tourne_gauche; disque(20,180); repete(5,avance 30,pas_de_cote 4,recule 30,pas_de_cote 4); avance 30; recule 30; pas_de_cote -20; recule 80; }
Puis on tape :
bonhomme()
balai()
On obtient :
igtortue/balneige.tex