Concepts fondamentaux
Modi cation des compétences du processeur
1
fi
Premier exemple : suite 1
• On augmente les compétences du traceur : on suppose à présent qu'il sait
dessiner un carré de côté x (x étant un nombre de pas)
Comment faire le même tracé que précédemment ?
• L’algorithme est le même (c'est le même problème à résoudre). Mais il faut
modi er son niveau de détail pour s'adapter aux compétences du processeur
qui sont plus avancées que précédemment.
2
fi
l'algorithme de la séance 1 :
Premier exemple : suite 1 stocker 5 dans nbPas
choisir la couleur violet
baisser le stylet
stocker 1 dans cpteurCotes
TQ cpteurCotes <= 4 FAIRE
avancer de nbPas
changer de direction vers la droite
stocker cpteurCotes +1 dans cpteurCotes
FTQ
lever le stylet.
• Exercice :
• Récrire l'algorithme (dans le bon niveau de détails)
• Si, dans le langage du traceur, cette compétence s'écrit DrawSquare(x),
récrire le programme.
3
l'algorithme de la séance 1 :
Premier exemple : suite 1 (correction) stocker 5 dans nbPas
choisir la couleur violet
baisser le stylet
• L'algorithme : stocker 1 dans cpteurCotes
TQ cpteurCotes <= 4 FAIRE
avancer de nbPas
1. stocker 5 dans nbPas changer de direction vers la droite
2. Choisir couleur violet stocker cpteurCotes +1 dans cpteurCotes
FTQ
3. Baisser le stylet lever le stylet.
4. Dessiner un carré de nbPas de côté
5. Lever le stylet. Le programme :
const nbPas = 5
(On suppose que le traceur dispose de
Color(“purple“)
la fonction DrawSquare...)
DrawSquare(nbPas)
4
Premier exemple : suite 2
• On modi e à nouveau les compétences du traceur : on suppose à présent
qu'il ne sait avancer que d’un seul pas à la fois. Comment faire le même tracé
que précédemment ?
L’algorithme est le même (c'est le même problème à résoudre). Mais il faut
modi er son niveau de détail pour s'adapter aux compétences du processeur
qui sont plus réduites que précédemment.
5
fi
fi
Premier exemple : suite 2
• Par rapport à l'algorithme de la séance 1,
le traceur ne sait plus "avancer de nbPas", l'algorithme de la séance 1 :
mais uniquement d'un seul pas avec
stocker 5 dans nbPas
l'opération Step() choisir la couleur violet
baisser le stylet
• Comment tracer un carré de nbPas par stocker 1 dans cpteurCotes
nbPas sachant que le traceur ne sait TQ cpteurCotes <= 4 FAIRE
avancer de nbPas
avancer que d’un pas à la fois ? changer de direction vers la droite
stocker cpteurCotes +1 dans cpteurCotes
• En mettant un pied devant l’autre ! C'est-à- FTQ
lever le stylet.
dire en répétant l'opération Step(). Le
traceur a donc perdu en compétence, mais
on va voir que ce n'est pas un problème.
6
Premier exemple : suite 2
• Par rapport à l’algorithme précédent, il suf t de détailler l’instruction "avancer
de nbPas pas" : il faut maintenant "avancer nbPas fois d’un pas"…
• On utilisera donc un compteur de pas (comme on a utilisé un compteur de
côtés précédemment).
stocker 1 dans cpteurPas
TQ cpteurPas <= nbPas FAIRE
avancer d'un pas
augmenter cpteurPas de 1
FTQ
7
fi
on trace 4 côtés
Premier exemple : suite 2
func main() {
stocker 5 dans nbPas const nbPas = 5
var cpteurCotes, cpteurPas int
choisir la couleur violet
baisser le stylet
Color("purple")
stocker 1 dans cpteurCotes Down()
TQ cpteurCotes <= 4 FAIRE cpteurCotes = 1
stocker 1 dans cpteurPas for cpteurCotes <= 4 {
TQ cpteurPas <= nbPas faire cpteurPas = 1
avancer d'un pas for cpteurPas <= nbPas {
augmenter cpteurPas de 1 Step()
FTQ cpteurPas++
changer de direction vers la droite }
Right()
augmenter cpteurCotes de 1
cpteurCotes++
FTQ
}
lever le stylet. Up()
}
on avance de nbPas
8
Concepts fondamentaux
Mise en pratique
9
Au travail…
• Vous en savez assez pour écrire maintenant vos propres programmes de
tracés et pour les exécuter.
• Tenez toujours compte de deux paramètres :
• Ce que vous devez obtenir (le sujet de l'exercice).
• Les moyens (compétences) qui sont à votre disposition.
• Il ne vous reste plus qu'à écrire l'algorithme, le traduire dans le langage du
traceur et exécuter le tracé…
10
Mon premier carré : mise en pratique
• Tapez le programme du carré sur [Link] (sauvegardez ce lien une
bonne fois pour toute) et exécutez-le en cliquant sur Run. S'il fonctionne,
cliquez sur le bouton Share et mettez le lien en favori (et sauvez-le dans un
chier). Format permet de mettre en forme votre code.
func main() {
const nbPas = 5
var cpteurCotes int
Color("purple")
Down()
cpteurCotes = 1
for cpteurCotes <= 4 {
Forward(nbPas)
Right()
cpteurCotes = cpteurCotes + 1
}
Up()
11
}
fi
La pyramide…
• Écrivez l'algorithme, puis le programme pour obtenir ce tracé (carré initial de
côté 2 pas, augmentation de 1 pas de tout côté à chaque carré, 5 carrés
imbriqués)
12
Le serpent…
• Écrivez l'algorithme, puis le programme pour obtenir ce tracé :
13
De toutes les couleurs
• Écrivez l'algorithme, puis le programme pour obtenir ce tracé :
14
O Tannenbaum !
• Il est temps de lever un secret : le traceur dispose
également des fonctionnalités North(), South(),
West() et East(), qui permettent de modi er
directement l'orientation du stylet....
• Écrivez l'algorithme, puis le programme pour
obtenir ce tracé :
15
fi