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