Contrôle
Transcription
Contrôle
Université Jean Monnet 1ère année de Licence Informatique Programmation exotique Examen final Juin 2009 Seul les documents manuscrits sont autorisés Durée : 2 heures Objectifs : Au cours de cet examen vous allez utiliser la programmation procédurale pour développer et utiliser un interpréteur Logo à l’aide du langage PostScript. Toutes les procédures devront être commentées. Instructions simples I - (5 points) Le Logo est un langage de programmation structurée qui consiste notamment à déplacer une tortue sur une feuille à l’aide d’instructions (cf. Tableau 1). Initialement, le crayon est baissé, c’est-à-dire que la tortue laisse une trace lors de ses déplacements. Instruction MONTRETORTUE AFFICHE ORIGINE n TD n TG n AV LC BC Définition Créer la tortue Afficher la trace de la tortue Positionner la tortue au centre de la feuille cap au Nord Tourner la tortue de n degrés vers la droite Tourner la tortue de n degrés vers la gauche Avancer la tortue de n pas Lever crayon Baisser crayon Tab. 1 – Primitives Logo Un interpréteur Logo en PostScript s’écrit de la manière suivante : % !PS-Adobe-3.0 EPSF-3.0 %% BoundingBox: 5 5 105 105 BeginProlog /MONTRETORTUE {newpath} bind def /AFFICHE {1 setlinewidth stroke showpage} bind def /ORIGINE {... %% EndProlog MONTRETORTUE 10 AV ... AFFICHE %% EOF 1. 2. 2. 3. Définir Définir Définir Définir l’instruction AV. les instructions TG et TD. l’instruction ORIGINE. les instructions LC et BC. Instructions complexes Fig. 1 – Polygones étoilés dont les angles intérieurs sont égaux à 36◦ , 26◦ et 20◦ (à gauche) et rosace (à droite) II - (5 points) Un polygone régulier est une figure plane fermée qui est équi-angulaire (tous les angles sont égaux) et équilatérale (tous les côtés ont même longueur). Un polygone régulier est convexe ou étoilé. Grâce aux primitives Logo et aux instructions complexes PostScript, vous allez : 1. Définir l’instruction p CARRE qui dessine un carré de taille p pas. 2. Définir l’instruction n p POLYGONE qui dessine un polygone régulier convexe (triangle équilatéral, carré, hexagone, . . . ) de n côtés et de taille p pas. 3. Définir l’instruction n p ETOILE qui dessine un polygone étoilé à n branches (avec n ≥ 5) et de taille p comme ceux de la figure 1. III - (4 points) Une rosace est une figure symétrique, formée de courbes inscrites dans un cercle (cf figure 1). L’instruction suivante représente un cercle comme un polygone régulier ayant un grand nombre de petits côtés : /CERCLE { 72 {1 AV 5 TD} repeat} bind def 1. Définir l’instruction ARC60 (respectivement ARC120) qui dessine un arc de cercle avec un angle de 60◦ (respectivement 120◦ ). 2. Définir l’instruction DEMI qui dessine la moité des courbes inscrites dans le cercle. 3. Définir l’instruction ROSACE qui dessine une rosace. Instructions récursives Fig. 2 – De gauche à droite : L, Spirale de degré 9, courbe de Koch de degré 2 et flocon de Koch de degré 3 IV - (6 points) Les courbes de la figure 2 sont réalisées à l’aide de procédures récursives. Grâce aux primitives Logo et aux instructions complexes PostScript, vous allez : 1. Définir l’instruction p L qui dessine un L de taille p. 2. Définir l’instruction n p SPIRALE qui dessine une spirale de taille p et de degré n sachant qu’à chaque récursion la taille de la spirale décroit de 25%. 3. Définir l’instruction n p COURBE qui dessine une courbe de Koch de taille p et de degré n. 4. Définir l’instruction FLOCON qui dessine un flocon de Koch de taille p et de degré n. 2