Langage LOGO - Université d`Angers

Transcription

Langage LOGO - Université d`Angers
Langage LOGO
Réaliser un dessin
Jean-Michel RICHER
Maître de Conférence
En Informatique
Faculté des Sciences
Université d'Angers
2016
27/02/16
Utilisation d'un quadrillage

On utilise un quadrillage pour réaliser le
dessin pour les formes qui peuvent êtres
représentées par des polygones simples :
✔
Carrés, Rectangles, Losanges, tapèzes
✔
Triangles
✔
Pentagones, hexagones, ...
27/02/16
Formes de base
27/02/16
Exemple d'une maison
5
3
11
4
10
27/02/16
La maison


Attention 1 carreau représente 10 x 10 points
de la tortue
Elle se compose
✔
Des murs : rectangle 10 x 11 carreaux
✔
De la porte : rectangle 2 x 4
✔
Des fenêtres : 4 carrés de 1 x 1
✔
Du toit : triangle isocèle
27/02/16
Maison décomposée
27/02/16
Retour position



après avoir dessiné chaque nouvelle forme on
va retourner à la position où se trouvait la
tortue avant de dessiner
pour cela on crée un sous-programme que l'on
pourra appeler à chaque fois qu'on en a besoin
un sous-programme est un ensemble
d'instructions, il commence par pour et se
termine par fin
27/02/16
le code du sous-programme
pour retour_position :position
levecrayon
fixepos :position
fixecap 0
baissecrayon
fin
➔
➔
➔
27/02/16
levecrayon empêche de dessiner
:position est une variable qui sera passée
en paramètre du sous-programme et qui
contient un couple de coordonnées [x y]
fixecap 0 place la tortue à la verticale
Le code Logo de la maison
pour maison
donne "position_initiale pos
murs
retour_position :position_initiale
porte
retour_position :position_initiale
toit
retour_position :position_initiale
fenetre 1
retour_position :position_initiale
fenetre 2
retour_position :position_initiale
fenetre 3
retour_position :position_initiale
toit
retour_position :position_initiale
fin
27/02/16
Donne pos, fixepos, cap

L'instruction donne "position_initiale pos crée
une variable appelée position_initiale et lui
donne la position de la tortue sur l'écran sous
forme de coordonées [x y]
27/02/16
Les murs
On commence à la position initiale
pour mur
av 110
tg 90
av 100
tg 90
av 110
tg 90
av 100
fin
27/02/16
La porte
pour porte
levecrayon
gauche 90
avance 20
droite 90
baissecrayon
avance 40
gauche 90
avance 20
gauche 90
avance 40
gauche 90
avance 20
fin
27/02/16
les cinq premières instructions placent la
tortue à la position qu'elle doit occuper pour
commencer à dessiner la porte
gauche 90
avance 20
droite 90
la ligne en pointillés indique que la tortue
ne dessine pas car on a utilisé
l'instruction levecrayon
La fenêtre

pour dessiner la fenêtre on peut utiliser 4
carrés :
✔
on se place au centre et on dessine un carré
✔
puis on tourne de 90° vers la gauche
✔
et on dessine un autre carré
✔
on répète plusieurs fois l'opération
27/02/16
Le code de la fenêtre n°1
On dessine un carré dont le
coté est de taille 10 points
pour carre10
repete 4 [
av 10
gauche 90
]
fin
27/02/16
pour fenetre1
levecrayon
avance 30
gauche 90
avance 70
baissecrayon
repete 4 [
carre10
gauche 90
]
fin
Instruction repete

L'instruction repete n [ instructions ] répète n
fois la série d'instructions placée entre
crochets
27/02/16
Les fenêtres n°2 et n°3
pour fenetre2
levecrayon
avance 80
gauche 90
avance 30
baissecrayon
repete 4 [
carre10
gauche 90
]
fin
27/02/16
pour fenetre3
levecrayon
avance 80
gauche 90
avance 70
baissecrayon
repete 4 [
carre10
gauche 90
]
fin
Le toit
pour toit
levecrayon
avance 110
gauche 90
baissecrayon
On se déplace à la position du premier point
du triangle en bas à gauche
r
q
fin
+30
p
donne "p pos
- 50 points
avance 100
fixexy (premier :p - 50) (dernier :p + 30)
fixepos :p
permet de revenir en p en fixant la position de la tortue
aux coordonnées [x y] de p
27/02/16
Le toit en détail

On crée une variable p qui est une liste de
coordonnées [x y] du point inférieur droit du
triangle

on avance de 100 points jusqu'au point q

puis on se déplace vers le point r :
✔
coordonnée x de p – 50 points
✔
coordonnée y de p – 30 points
27/02/16
premier, dernier



premier est une instruction qui donne le
premier élément d'une liste
dernier est une instruction qui donne le
dernier élément d'une liste
pour la liste p = [x y] :
✔
premier :p correspond à x
✔
dernier :p correspond à y
27/02/16