xlogo manual fr

Upload: jok2008

Post on 18-Jul-2015

460 views

Category:

Documents


2 download

TRANSCRIPT

Manuel dutilisation de XLOGO :Le Coq Lo c 25 mars 2007

Table des mati`res e1 Prsentation de linterface : e 1.1 Fentre principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 1.2 Lditeur de procdures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e e 2 Options des menus : 2.1 Menu Fichier . 2.2 Menu Edition . 2.3 Menu Options 2.4 Menu Aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 5 5 5 5 6 8 8 8 9 9 10 11 12 12 15 17 19 21 22 22 22 23 23 25 28 30 30 31 33 33 33 34 35

3 Conventions adoptes dans XLOGO e 3.1 Commandes et interprtation . . . . . . . . . . e 3.2 Procdures . . . . . . . . . . . . . . . . . . . . e 3.3 Le caract`re spcial \ . . . . . . . . . . . . e e 3.4 R`gles concernant les majuscules et minuscules e 3.5 Oprateurs et syntaxe . . . . . . . . . . . . . . e 3.6 Les couleurs . . . . . . . . . . . . . . . . . . . . 4 Liste des primitives 4.1 Dplacement de la tortue, gestion du crayon e 4.2 Achage du texte dans la zone dhistorique 4.3 Oprations arithmtiques et logiques . . . . e e 4.4 Oprations sur les listes et les mots . . . . . e 4.5 Boolens . . . . . . . . . . . . . . . . . . . . e 4.6 Eectuer un test ` laide de la primitive si a 4.7 Gestion des procdures et des variables . . . e 4.7.1 Les procdures . . . . . . . . . . . . e 4.7.2 Notion de variables . . . . . . . . . 4.7.3 La primitive trace . . . . . . . . . 4.8 Gestion des Fichiers . . . . . . . . . . . . . 4.9 Fonction avance de remplissage : . . . . . . e 4.10 Les instructions de saut . . . . . . . . . . . 4.11 Le mode multitortues . . . . . . . . . . . . 4.12 Jouer de la musique . . . . . . . . . . . . . 4.13 Boucles : . . . . . . . . . . . . . . . . . . . . 4.13.1 Une boucle avec repete . . . . . . . 4.13.2 Une boucle avec repetepour . . . . 4.13.3 Une boucle avec tantque . . . . . . 4.14 Intercepter des actions de lutilisateur . . .

et des couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

4.14.1 Interaction avec le clavier . . . . . . . . . 4.14.2 Quelques exemples dutilisation : . . . . . 4.14.3 Intercepter certains vnements provenant e e 4.14.4 Quelques exemples dutilisation . . . . . . 4.15 Gestion du temps . . . . . . . . . . . . . . . . . . 4.16 Se servir du rseau avec XLogo . . . . . . . . . . e 4.16.1 Le rseau : comment ca marche ? . . . . . e 4.16.2 Primitives orientes resau . . . . . . . . e e

. . . . . . . . . . . . . . de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

35 35 36 36 38 39 39 39 41 41 43 43 43 45 46 46 46 46 47 47 47 48 49 50 51 51 51 52 52 52 52 52 53 53

5 Exemples de programmes 5.1 Dessiner des maisons . . . . . . . . . . . . . . . . . . . . . 5.2 Dessiner un rectangle plein . . . . . . . . . . . . . . . . . 5.3 Factorielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Le ocon (Merci ` Georges Nol) . . . . . . . . . . . . . . a e 5.5 Un peu dcriture... . . . . . . . . . . . . . . . . . . . . . . e 5.6 Et de conjugaison... . . . . . . . . . . . . . . . . . . . . . 5.6.1 Premi`re version . . . . . . . . . . . . . . . . . . . e 5.6.2 Deuxi`me mouture . . . . . . . . . . . . . . . . . . e 5.6.3 Ou alors : Un peu de rcursivit ! . . . . . . . . . . e e 5.7 Avec les couleurs . . . . . . . . . . . . . . . . . . . . . . . 5.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . 5.7.2 Passons ` la pratique . . . . . . . . . . . . . . . . . a 5.7.3 Et si on la voyait en ngatif ? ? . . . . . . . . . . . e 5.8 Un bel exemple dutilisation des listes (Merci Olivier SC) 5.9 Une belle rosace . . . . . . . . . . . . . . . . . . . . . . .

6 Dsinstallation-mise ` jour e a 6.1 Dsinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 6.2 Mise ` jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 7 Foire aux questions - Astuces - trucs ` conna a tre 7.1 Jai beau eacer une procdure dans lditeur, elle rappara tout le temps ! . . . . . . e e e t 7.2 Jutilise la version en espranto mais je ne peux crire les caract`res spciaux ! . . . . . e e e e 7.3 Dans longlet Son de la bo de dialogue Prfrences, aucun instrument nest disponible. te ee 7.4 Jai des probl`mes de rafraichissement dcran lorsque la tortue dessine ! . . . . . . . . e e 7.5 Comment faire pour taper rapidement une commande dj` utilise au pralable ? . . . ea e e 7.6 Comment peut-on vous aider ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

Chapitre 1

Prsentation de linterface : e1.1 Fentre principale e

En haut, les traditionnels menus Fichier Edition Options et Aide Juste en dessous, la ligne de commande qui permet de saisir les instructions logo. Au centre, la zone de dessin. En bas, la zone historique qui rappelle toutes les derni`res commandes tapes et les rponses e e e associes. Pour rappeler rapidement une instruction dj` tape, il y a deux solutions : ou bien e ea e vous cliquez sur lancienne instruction dans lhistorique, ou bien vous appuyez plusieurs fois sur la `che du haut jusqu` ce que linstruction dsire apparaisse. Les deux `ches haut et bas e a e e e permettent en fait de se dplacer dans toute lhistorique des commandes tapes prcdemment e e e e (Tr`s pratique). e A la droite de lhistorique, deux boutons : STOP et EDITEUR. STOP interrompt toute excue tion en cours et EDITEUR permet douvrir lditeur de procdures. e e 3

1.2

Lditeur de procdures e e

Pour ouvrir lditeur, trois possibilits : e e Taper ed dans la ligne de commandes. Lditeur souvrira alors avec toutes les procdures dj` e e ea dnies. Si vous ne souhaitez diter que certaines procdures particuli`res, taper alors : e e e e ed [procedure_1 procedure_2 ... Appuyer sur le bouton Editeur de la fentre principale. e Utiliser le raccourci clavier Alt+E Voici les dirents boutons que vous trouverez dans lditeur : e e Sauve les modications apports au contenu de lditeur puis ferme celuie e ci. Cest sur ce bouton quil faut appuyer ` chaque fois que vous voulez a enregistrer les nouvelles procdures tapes. Si vous le prfrez, vous poue e ee vez utiliser le raccourci clavier ALT+Q. Quitte lditeur en nenregistrant aucune des modications apportes ` e e a celui-ci. On peut galement utiliser le raccourci ALT+C. e Imprime le contenu de lditeur. e Copie le texte slectionn dans le presse-papiers e e Coupe le texte slectionn dans le presse-papiers e e Colle le texte slectionn dans le presse-papiers e e

IMPORTANT : Cela ne sert ` rien dappuyer sur la croix en haut ` droite pour fermer la fentre ! Seuls les deux a a e premiers boutons vous permettent de quitter lditeur. e Pour eacer une ou toutes les procdures indsirables, utiliser les primitives efn et efns. e e

4

Chapitre 2

Options des menus :2.1 Menu Fichier

Fichier > Nouveau : Dtruit lensemble des procdures et variables dnies pour crer ainsi un e e e e nouvel espace de travail. Fichier > Ouvrir : ouvre un chier logo prcdemment enregistr. e e e Fichier > Enregistrer : enregistre les procdures du chier en cours. e Fichier > Enregistrer sous ... : enregistre les procdures en cours sous un nom prcis. e e Fichier > Quitter : quitte lapplication XLOGO. Fichier > Capturer limage > Enregistrer limage sous... : permet denregistrer limage sous le format jpg ou png. Si vous souhaitez slectionner seulement une partie de limage, vous avez la e possibilit de dnir un cadre en cliquant successivement deux fois pour dnir deux coins dune e e e mme diagonale du rectangle de slection. e e Fichier > Capturer limage > Imprimer limage : permet dimprimer limage. De la mme e faon que prcdemment, vous pouvez slectionner une zone ` imprimer. c e e e a Fichier > Capturer limage > Copier limage dans le presse-papier : Permet denvoyer limage dans le presse-papier syst`me. De mme que pour limpression et lenregistrement, vous pouvez e e ne slectionner quune zone de limage. Cette fonctionnalit fonctionne tr`s bien sous les envie e e ronnements de type Windows. En revanche, elle ne marche pas sous Linux (Le presse-papier na pas le mme type de fonctionnement). Non test sous Mac. e e

2.2

Menu Edition

Edition > Copier : copie le texte slectionn dans le presse-papiers. e e Edition > Couper : coupe le texte slectionn dans le presse-papiers. e e Edition > Coller : colle le texte contenu dans le presse-papiers dans la ligne de commande.

2.3

Menu Options

Options > Choisir la couleur du crayon : permet de choisir la couleur avec laquelle crit la e tortue ` laide dune palette de couleurs. Disponible galement avec la primitive fcc. a e Options > Choisir la couleur du fond : mme chose avec le fond dcran. Disponible avec la e e primitive fcfg. Options > Dnir les chiers de dmarrage : permet de dnir des chemins vers des chiers dit e e e de dmarrage . Toutes les procdures contenues dans ces chiers au format *.lgo deviendront e e alors des pseudo-primitives du langage XLogo. Elles ne sont pas ditables ni modiables e

5

par lutilisateur. Vous pouvez ainsi dnir des primitives personnalises. Vous pouvez de plus lui e e donner une commande (en logo) ` eectuer au dmarrage de XLogo. Vous avez ainsi la possibilit a e e de lancer un programme que vous avez conu d`s louverture de XLogo. c e Options > Traduire des procdures : Ouvre une bo de dialogue qui permet de traduire des e te commandes XLogo dans une langue dsire. (Tr`s utile en particulier lorsquon rcup`re des e e e e e sources Logo en anglais sur internet pour les remettre en franais) c Options > Prfrences : Ouvre une bo de dialogue dans laquelle vous pouvez congurer ee te plusieurs choses : Langue : permet de choisir entre le franais et langlais. Attention, les primitives changent c dune langue ` lautre. a Aspect : permet de dnir le look de la fentre XLogo. Soit style Windows, style Java natif e e ou style Motif Choisir la vitesse de dlement. Si vous souhaitez voir tous les dplacement de la tortue, vous e e pouvez la ralentir ` laide de la barre prvu dans le premier onglet. a e Dans le deuxi`me onglet, vous pouvez choisir votre tortue prfre. e eee Dans le troisi`me onglet, Plusieurs choses peuvent tre xes. e e e Tout dabord, on peut xer une taille limite ` lpaisseur du crayon. Si lon ne veut pas a e utiliser cette limitation, mettre le nombre -1 dans la zone de texte associe. e Ensuite, on peut choisir la forme du crayon de la tortue, on ne se rend compte du choix de cette option que lorsque lon choisit une paisseur de crayon suprieure ` 1. e e a On peut galement xer le nombre de tortues maximum en mode multitortues. (Par dfaut e e 16) On peut choisir deacer automatiquement la zone de dessin lorsquon sort de lditeur. e Vous pouvez choisir une taille personnalise pour la zone de trac. Par dfaut XLogo se e e e lance avec une zone de 1000 pixels sur 1000 pixels. Attention, lorsque vous agrandissez limage, il peut-tre ncessaire daugmenter la taille mmoire attribue ` XLogo. Un mese e e e a sage derreur vous en avertira. Vous pouvez par consquent galement changer la valeur correspondant ` lespace mmoire e e a e allou ` XLogo. Par dfaut, cette valeur est xe ` 64 Mo. Il se peut que vous soyez oblig ea e e a e de laugmenter si vous souhaitez travailler sur une zone de dessin plus grande. Lorsquon modie ce param`tre, le changement nest eectif quapr`s redmarrage de XLogo. Attene e e tion, naugmentez pas abusivement sans raison cette valeur, cela peut considrablement e ralentir votre syst`me. e Enn, Vous pouvez choir la prcision du trac. En haute qualit, vous naurez plus deet e e e de crnelage en particulier. En revanche, bien penser quen augmentant la qualit, vous e e perdrez en rapidit dexcution. e e Dans le quatri`me onglet, vous trouverez la liste des instruments que peut imiter votre carte e son au travers de linterface MIDI. Vous pouvez slectionner un instrument prcis en clie e quant dessus. (Vous pouvez galement galement slectionner un instrument avec la primitive e e e fixeinstrument numro. Malheureusement, il semble que la liste des instruments conserve e un comportement un peu alatoire (Matriel non dtect en particulier). Jesp`re que ce dtail e e e e e e sera amlior dans les versions futures. Voir la FAQ en n d emanuel ` ce sujet. e e a Dans le cinqui`me onglet, vous pouvez choisir la police de linterface graphique ainsi que sa e taille. Attention ceci naecte pas la police rendue par les primitives ecris et etiquette.

2.4

Menu Aide

Menu > Licence : Ache la licence GPL sous laquelle est distribu ce logiciel. e Menu > Traduction : ache une traduction de ladite licence. Cette traduction na aucune 6

valeur ocielle, seule la version anglaise a ce rle. o Menu > A propos : Classique .... et http ://xlogo.tuxfamily.org pour vos mises ` jours ! ! o :) a

7

Chapitre 3

Conventions adoptes dans XLOGO eVoici la prsentation de certaines choses ` savoir concernant le langage LOGO lui-mme et dautres e a e concernant XLOGO spciquement. e

3.1

Commandes et interprtation e

Le langage LOGO permet de provoquer certains vnements a laide de commandes internes : e e ` On appelle ces commandes les primitives. Chaque primitive attend un certain nombre de param`tres e que lon appelle arguments. Par exemple la primitive ve qui permet deacer lcran ne prend aucun e argument alors que la primitive somme attend deux arguments. somme 2 3 crira 5 en retour. e Les arguments sont de trois types en LOGO : Les nombres : certaines primitives attendent des nombres comme argument : av 100 est un exemple. Les mots : Les mots sont commencent tous par . Un exemple de primitive pouvant travailler avec les mots est la primitive ecris. ecris "bonjour renvoie bonjour. A noter que si vous oubliez le , linterprteur vous renverra un message derreur. En eet, ecris attend un argument, e or pour linterprteur, bonjour ne reprsente rien puisque ce nest ni un nombre, ni un mot, ni e e une liste ni une procdure dj` dnie. e ea e Les listes : Elles sont dnies entre crochets. e Les nombres sont traits soit en tant que valeur numrique, (Ex : av 100) mais galement en tant que e e e mot. (Ex : ecris vide ? 12 cris faux). e

3.2

Procdures e

En plus de ces primitives, vous pouvez dnir vos propres commandes. On les appelle les procdures. e e Les procdures sont introduites ` laide du mot pour et se terminent par le mot fin. On utilise lditeur e a e de procdures interne ` XLOGO pour les taper. Voici un petit exemple : e a pour carre repete 4[avance 100 tournedroite 90] fin

8

Ces procdures ont le droit dadmettre galement des arguments. Pour cela, on utilise des variables. e e Une variable est un mot auquel on peut aecter une valeur. voici un exemple tr`s simple : e pour deux_fois :mot ecris :mot ecris :mot fin deux_fois [1 2 3] -----> 1 2 3 1 2 3 Voir tous les exemples de procdures en n de manuel. e

3.3

Le caract`re spcial \ e e

Le caract`re \ (backslash) permet en particulier de crer des mots contenant des espaces ou e e contenant un retour ` la ligne. \n provoque un retour ` la ligne et \ suivi dun espace dsigne a a e un espace dans un mot. Exemple : ec "xlogo\ xlogo xlogo xlogo ec "xlogo\nxlogo xlogo xlogo Il sensuit que lon ne peut plus accder au caract`re \ en le tapant il faudra taper \\ . e e De mme, les caract`res ( ) [ ] # sont des dlimiteurs du langage Logo qui ne peuvent tre e e e e utiliss dans des mots. On pourra les introduire en rajoutant un caract`re \ devant. e e Tout caract`re \ tout seul est ignor. Cette remarque est tr`s importante en particulier pour la e e e gestion des chiers Pour xer le rpertoire courant ` C :\Mes Documents, il faudra taper : e a fixerepertoire "c:\\Mes\ Documents. Noter lutilisation du \ pour notier lespace entre Mes et Documents . Si dautre part, vous omettez le double backclash, le chemin dni sera alors c :Mes Documents et linterprteur rendra un e e message derreur.

3.4

R`gles concernant les majuscules et minuscules e

XLOGO ne fait pas la dirence majuscule minuscule en ce qui concerne les noms des procdures e e et des primitives. Ainsi, avec la procdure carre dnie prcdemment, que vous tapiez CARRE ou e e e e cArRe, linterprteur de commande traduira correctement et excutera carre. En revanche, XLOGO e e respecte les majuscules dans les listes et les mots :

9

ecris "Bonjour ----> "Bonjour (on garde le B majuscule)

3.5

Oprateurs et syntaxe e

Il y a deux faons dcrire certaines commandes. Par exemple, pour eectuer laddition de 4 et de c e 7, il y a deux possibilits : soit on se sert de la primitive somme qui attend deux arguments : somme 4 e 7 , soit on se sert de loprateur + : 4+7. Les deux ont le mme eet. e e Voici la liste des correspondances entre oprateurs et primitives : e somme difference produit divise + * / ou et egal ? | (ALT GR+6) & = Les deux oprateurs | et & sont deux oprateurs spciques ` XLOGO. Ils nexistent pas dans les e e e a versions traditionnelles de LOGO. Voici quelques exemples dutilisation : ec 3+4=7-1 ----> vrai ec 3=4 | 7=49/7 ----> vrai ec 3=4 & 7=49/7 ----> faux

10

3.6

Les couleurs

Les couleurs sont dnies dans XLogo ` laide de trois nombres compris entre 0 et 255. Ce syst`me e a e de codage sappelle le codage RGB (Red, Green, Blue). Chaque nombre correspond respectivement a ` lintensit du rouge, du vert et du bleu dans la couleur considre. Etant donn que ce codage nest e ee e pas tr`s intuitif, XLogo vous propose galement 16 couleurs prdnies accessibles soit par un numro e e e e e soit par une primitive. Numro e 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Primitives noir rouge vert jaune bleu magenta cyan blanc gris grisclair rougefonce vertfonce bleufonce orange rose violet marron [R G B] [0 0 0] [255 0 0] [0 255 0] [255 255 0] [0 0 255] [255 0 255] [0 255 255] [255 255 255] [128 128 128] [192 192 192] [128 0 0] [0 128 0] [0 0 128] [255 200 0] [255 175 175] [128 0 255] [153 102 0] Couleur

# Ces trois commandes ont le m^me effet. e fcc orange fcc 13 fcc [255 200 0]

11

Chapitre 4

Liste des primitivesComme il a t indiqu auparavant, le contrle de la tortue seectue ` laide de commandes ee e o a internes appeles primitives . Voici une classication de ces primitives : e

4.1

Dplacement de la tortue, gestion du crayon et des couleurs e

Ce premier tableau regroupe les primitives qui permettent de dplacer la tortue. e Primitives avance, av recule, re tournedroite, td tournegauche, tg cercle arc origine fixeposition, fpos fixex fixey fixexy fixecap Arguments n : nombre de pas n : nombre de pas n : angle n :angle R : nombre R : nombre, cap1,cap2 :nombres aucun [x y] : liste de deux nombres. x : abscisse y : ordonne e x y : abscisse puis ordonne e n : cap Utilisation Fait avancer de n pas la tortue suivant lorientation courante. Fait reculer de n pas la tortue suivant lorientation courante. Fait tourner la tortue de n degrs vers la droite par rapport ` e a son orientation actuelle. Fait tourner la tortue de n degrs vers la gauche par rapport ` e a son orientation actuelle. Trace un cercle de rayon R autour de la tortue. Trace un arc de cercle de rayon R autour de la tortue. Cette arc est compris entre les caps cap1 et cap2. Replace la tortue ` sa position initiale, cest ` dire au point de a a coordonnes [0 0] et avec pour cap 0 e Dplace la tortue au point de coordonnes spci ` laide de e e e ea la liste des deux nombres.(x dsigne labscisse et y lordonne) e e Dplace la tortue horizontalement jusquau point dabscisse x e Dplace la tortue verticalement jusquau point dordonne y e e Analogue ` fpos[x y] a Oriente la tortue au cap spci. 0 correspond ` la position vere e a ticale vers le haut. On tourne ensuite dans le sens des aiguilles dune montre. Dessine le mot ou la liste spcie ` lendroit o` se trouve la e e a u tortue et suivant son inclinaison. Exemple : etiquette [Salut a ` toi] va crire la phrase Salut ` toi ` lendroit o` est plac e a a u e la tortue en respectant le cap de celle-ci.

etiquette

a : mot ou liste

12

Primitives point

Arguments a : liste

Utilisation Le point dni par les coordonnes de la liste sallume (dans la e e couleur du crayon).

Ce deuxi`me tableau regroupe les primitives permettant dagir sur les proprits de la tortue. Par e ee exemple, faut-il que la tortue soit visible ` lcran ? De quelle couleur doit-elle crire lorsquelle se a e e dplace ? e Primitives montretortue, mt cachetortue, ct videecran, ve nettoie baissecrayon, bc levecrayon, lc gomme, go inversecrayon, ic dessine, de animation Arguments aucun aucun aucun aucun aucun aucun aucun aucun aucun vrai ou faux Utilisation Rend la tortue visible ` lcran. a e Rend la tortue invisible ` lcran. a e Eace la zone de dessin et rinitialise la tortue e a ` sa position initiale. Eace la zone de dessin mais laisse la tortue au mme endroit. e La tortue crit lorsquelle se dplace. e e La tortue ncrit pas lors dun dplacement. e e La tortue eace tous les traits quelle rencontre. Abaisse le crayon et met la tortue en mode dinversion. Abaisse le crayon et le met en mode dessin classique. Si largument vaut vrai : On passe en mode animation. La tortue ne dessine plus ` lcran a e mais eectue le trac en mmoire. Pour ace e tualiser le dessin ` lcran, utiliser la primitive a e rafraichis. Tr`s utile pour crer une animae e tion ou eectuer un trac plus rapidement. e Si largument vaut faux : On repasse en mode classique. On voit les dplacements de la tore tue ` lcran. a e En mode animation, rafraichit lcran : limage e sur la zone de dessin est actualise. e Fixe la couleur du crayon. Voir p.11. Fixe la couleur du fond dcran. Voir p.11. e Retourne la position courante de la tortue. Ex : pos retourne [10 -100] Retourne le cap de la tortue (cf fixecap) La liste doit contenir deux nombres reprsentant e des coordonnes. Rend le cap quil faut donner e a ` la tortue pour aller vers le point dni par les e coordonnes de la liste. e

rafraichis

aucun

a : entier ou fixecouleurcrayon, liste [r g b] fcc a : entier ou fixecouleurfond, liste [r g b] fcfg aucun pos cap vers aucun a : liste

13

Primitives distance

Arguments a : liste

couleurcrayon,cc

a : liste

couleurfond,cf

a : liste

enroule,enr fen, fenetre

aucun aucun

clos

aucun

trouvecouleur,tc

a : liste

fixetaillecrayon, ftc fforme, fixeforme

n : nombre n : nombre

Utilisation La liste doit contenir deux nombres reprsentant e des coordonnes. Rend le nombre de pas entre e la position actuelle et le point dni par les coe ordonnes de la liste. e Retourne la couleur actuelle du crayon. Cette couleur est dtermine ` laide dune liste [r g b] e e a ou r est la composante rouge, b la bleue et g la verte. Retourne la couleur actuelle du fond. Cette couleur est dtermine ` laide dune liste [r g b] e e a ou r est la composante rouge, b la bleue et g la verte. Si la tortue sort de la zone de dessin, elle rape para de lautre ct ! t oe La tortue est libre de sortir de la zone de dessin. Bien s r, elle ncrira pas en dehors de cette u e derni`re. e La tortue est conne ` la zone de dessin. Si e a elle sapprte ` sortir, un message derreur vous e a lindiquera et vous donnera le nombre de pas maximum de la tortue avant sortie ( ` 1 ou 2 a pas pr`s ...). e Retourne la couleur du pixel de coordonnes a. e Cette couleur est dtermine ` laide dune liste e e a [r g b] ou r est la composante rouge, b la bleue et g la verte. Dnit lpaisseur de la pointe du crayon en e e pixel. Rgl sur 1 par dfaut. e e e Vous pouvez choisir de laspect de la tortue utilise soit en allant dans Option-Prfrences-Choix e ee de la tortue soit ` laide de cette primitive. Le a nombre n doit tre un entier compris entre 0 et e 6. (0 dsigne la forme triangulaire) e Renvoie le numro qui reprsente limage ace e tuelle de la tortue. Lorsquon crit du texte sur lcran ` laide de e e a la primitive etiquette, il est possible de modier la taille de la police utilise ` laide de cette e a primitive. Par dfaut, la taille de la police est e rgle ` 12. e e a Renvoie la taille de la police actuellement utilise lorsquon crit avec la primitive etiquette. e e Fixe la police utilise pour crire ` lcran ` e e a e a laide de la primitive etiquette. Le numro e identiant la police ` utiliser est reprable dans a e Menu > Options > Prfrences > Onglet Poee lice.

forme fixetaillepolice, ftp

aucun n : entier

taillepolice, tp fixenompolice, fnp

aucun n : entier

14

Primitives nompolice, np

Arguments aucun

fixeseparation, fsep

a : nombre

separation, sep message, msg

aucun [liste]

Utilisation Renvoie une liste compose de deux lments. e ee Le premier est le numro correspondant ` la poe a lice utilise pour crire ` laide de la primitive e e a etiquette. Le second est une liste contenant le nom de cette mme police. e Dtermine le ratio entre la fentre graphique et e e la zone dhistorique. Le nombre a doit tre e message [Ceci compris entre 0 et 1. Lorsquil vaut 1 la zone de dessin occupe toute la place, lorsquil vaut 0, la zone dhistorique occupe toute la fentre etc e Renvoie le ratio actuel entre la zone de dessin et la zone dhistorique. Ache un message dinformation dans une bo de dialogue, lexcution du programme est te e stopp en attente dun click sur OK. e

est un message dinformation. Le texte est automatiquement dispos sur plusieurs lignes e afin quil soit bien lisible. De plus, le programme reste en attente que lon appuie sur OK.]

4.2

Achage du texte dans la zone dhistorique

Ce tableau regroupe les primitives associes ` la zone de texte dhistorique. Toutes les primitives e a concernant la taille et la couleur de la police utilise ne sont valables que pour le rendu de la primitive e ecris.

15

Primitives vt, videtexte ec, ecris

Param`tres e aucun mot, liste ou nombre

Utilisation Eace la zone contenant lhistorique des commandes et des commentaires. Ache largument spci dans la zone dhistoe e rique. ec "abcd --------> abcd ec [1 2 3 4] ----> 1 2 3 4 ec 4 ------------> 4

tape

ftpt, fixetaillepolicetexte

mot, liste ou nombre a : nombre

aucun taillepolicetexte, tpt a :nombre ou fct, liste fixecouleurtexte ctexte, couleurtexte aucun

Identique ` la primitive ecris mais ne retourne a pas ` la ligne. a Dnis la taille de la police dans la zone dhise torique. Valable uniquement pour la primitive ecris Renvoie la taille de la police associe ` la primie a tive ecris. Dnis la couleur de la police dans la zone dhise torique. Valable uniquement pour la primitive ecris. Voir p.11. Renvoie la couleur de la police associe ` la prie a mitive ecris dans la zone dhistorique. Fixe la police utilise pour crire dans lhistoe e rique ` laide de la primitive ecris. Le numro a e de la police est reprable dans Menu > Options e > Prfrences > Onglet Police. ee Renvoie une liste compose de deux lments. e ee Le premier lment est le numro reprsentant ee e e la police utilise pour crire ` lcran ` laide e e a e a de la primitive ecris. Le second est une liste contenant le nom de cette mme police. e Fixe le style du rendu de la police utilise par e la primitive ecris. Les dirents styles pose sibles sont aucun, gras, italique, barre, indice, exposant, souligne. Si vous souhaitez en utiliser plusieurs ` la fois, les indiquer a dans une liste. Voir les exemples apr`s ce tae bleau. Renvoie une liste compose des dirents styles e e actuellement utiliss pour le rendu de la primie tive ecris.

n : entier fixenompolicetexte, fnpt aucun

nompolicetexte, npt

fixestyle, fsty

liste ou mot

style, sty

aucun

Quelques exemples pour le formatage du texte avec la primitive ecris : fixestyle [gras souligne] ecris "bonjour bonjour fsty "barre tape [texte ray] fsty "italique tape "\ x fsty "exposant ecris 2 e texte ray x2 e 16

4.3

Oprations arithmtiques et logiques e ePrimitives somme Arguments a b : nombres ` a additionner a b : nombres ` a soustraire a : nombre Utilisation Additionne les deux nombres a et b puis retourne le re sultat. Ex : somme 40 60 retourne 100 Retourne a-b. Ex : difference 100 20 retourne 80 Retourne loppos de a. e Ex : moins 5 retourne -5 .Voir la remarque ` la suite de a ce tableau Retourne le produit de a par b. Retourne le quotient de a par b divise 15 6 retourne 2.5 Retourne le quotient entier de a par b quotient 15 6 retourne 2 Retourne le reste de la division de a par b. Retourne lentier le plus proche du nombre a. arrondi 6.4 renvoie 6 tronque ` lunit le nombre a. a e tronque 6.8 renvoie 6 Renvoi a lev ` la puissance b. e ea puissance 3 2 renvoie 9 renvoie la racine carre de n e renvoie le logarithme dcimal de n e renvoie le sinus du nombre a. (a est exprim en degr) e e Renvoie le cosinus du nombre a. (a est exprim en degr) e e Renvoie le tangente du nombre a. (a est exprim en degr) e e Renvoie langle dont le cosinus vaut a. (langle est exprim e en degr) e Renvoie langle dont le sinus vaut a. (langle est exprim e en degr) e Renvoie langle dont la tangente vaut a. (langle est exprim en degr) e e Renvoie le nombre (3.141592653589793) Renvoie un nombre alatoire compris entre 0 et n-1. e Renvoie la valeur absolue (distance ` zro) du nombre a e propos. e 17

difference

moins

produit div, divise quotient reste arrondi tronque puissance racine, rac log10 sinus, sin cosinus, cos tan,tangente acos,arccosinus asin,arcsinus atan,arctangente pi hasard absolue, abs

a b : nombres a b : nombres a b : nombres a b : entiers a : nombre a : nombre a b : entiers n : nombre n : nombre a : nombre a : nombre a : nombre a : nombre a : nombre a : nombre aucun n : entier n : nombre

Remarque : Attention aux primitives ncessitant deux param`tres ! e e fixexy a b Si b est ngatif e Ex : Par exemple, fixexy 200 -10 Linterprteur logo va eectuer lopration 200-10. Il va donc considrer quil ny a quun param`tre e e e e (190) alors quil lui en faut deux do` un message derreur. Pour viter ce type de probl`me, utiliser u e e la primitive moins indiquant loppos. fixexy 200 moins 10 et l`, il ny a plus de probl`mes ! e a e Une autre possibilit peut tre dutiliser les parenth`ses en tapant : fixexy 200 (-10) e e e

Voici la liste des oprateurs logiques : e Primitives ou et non Param`tres e b : boolens e b : boolens e a : boolens e Utilisation Renvoie vrai si a ou b est vrai, sinon renvoie faux Renvoie vrai si a et b sont gaux ` vrai sinon e a renvoie faux Renvoie la ngation de a. Si a est vrai, renvoie e faux.Si a est faux, renvoie vrai.

18

4.4

Oprations sur les listes et les mots ePrimitives mot liste Param`tres e ab ab Utilisation Concat`ne les deux mots a et b. e Exemple : ec mot "a 1 renvoie a1 Retourne une liste compose de a et b. Par exemple, e liste 3 6 renvoie [3 6]. liste une liste renvoie [une liste] Retourne une liste compose de a et b. Si a ou b est une e liste, alors chacun des composants de a ou b devient lment de la liste cre (les crochets sont supprims). ee ee e Ex : ph [4 3] bonjour renvoie [4 3 bonjour] ph [comment ca] va renvoie [comment ca va] Ins`re a en premi`re position de la liste b. e e Ex : mp coucou [2] renvoie [coucou 2] Ins`re a en derni`re position de la liste b e e Ex : md 5 [7 9 5] renvoie [7 9 5 5] Inverse lordre des lments de la liste a ee inverse [1 2 3] renvoie [3 2 1] Si a est un mot, renvoie une des lettres de a au hasard.Si a est une liste, renvoie un des lments de a au ee hasard. Enl`ve llment a de la liste b sil appara dedans. e ee t Ex : enleve 2 [1 2 3 4 2 6 ] renvoie [1 3 4 6] Si b est un mot renvoie la lettre a du mot (1 dsigne e la premi`re lettre). Si b est une liste renvoie llment e ee numro a de la liste. e Si a est une liste, renvoie toute la liste sauf le dernier lment. Si a est un mot, renvoie le mot sans sa ee derni`re lettre. e Si a est une liste, renvoie toute la liste sauf le premier lment. Si a est un mot, renvoie le mot sans sa ee premi`re lettre. e Si a est une liste, renvoie le dernier lment de la liste. ee Si a est un mot, renvoie la derni`re lettre du mot. e Si a est une liste, renvoie le premier lment de la liste. ee Si a est un mot, renvoie la premi`re lettre du mot. e Dans la liste li, remplace llment numro n par le ee e mot ou la liste propos. e remplace [a b c] 2 8 --> [a 8 c] Dans la liste li, ajoute en position numro n le mot e ou la liste propos. e ajoute [a b c] 2 8 --> [a 8 b c] 19

phrase, ph

ab

metspremier, mp

a b : a quelconque, b liste a b : a quelconque, b liste a : liste a : a mot ou liste a b : a quelconque, b liste a b : a entier, b liste ou mot a : liste ou mot

metsdernier, md

inverse choix

enleve

item

saufdernier, sd

saufpremier, sp

a : liste ou mot

dernier, der premier, prem remplace

a : liste ou mot a : liste ou mot li1 n li2 : li1 liste, n entier, li2 mot ou liste li1 n li2 : li1 liste, n entier, li2 mot ou liste

ajoute

compte unicode caractere, car

a : liste ou mot a : mot a : nombre

Si a est un mot, renvoie le nombre de lettres de a. Si a est une liste, renvoie le nombre dlments de a. ee Renvoie la valeur unicode du caract`re a . e ec unicode "A renvoie 65 Renvoie le caract`re dont la valeur unicode est a . e ec caractere 65 renvoie "A

20

4.5

Boolens e

Un boolen est une primitive qui renvoie le mot vrai ou le mot faux. Ces primitives se terminent e par un point dinterrogation. Primitives vrai faux mot ? nombre ? entier ? liste ? vide ? egal ? precede ? membre ? Param`tres e aucun aucun a a a a a ab a b : mots ab Utilisation Renvoie vrai Renvoie faux Renvoie vrai si a est un mot, faux sinon. Renvoie vrai si a est un nombre, faux sinon. Renvoie vrai si a est un entier, faux sinon. Renvoie vrai si a est une liste, faux sinon. Renvoie vrai si a est une liste vide ou un mot vide, faux sinon. Renvoie vrai si a et b sont gaux, faux sinon. e Renvoie vrai si a est avant b dans lordre alphabtique, faux sinon. e Si b est une liste, prcise si a est lment de b. e ee Si b est un mot, prcise si a est un caract`re de e e b. Si b est une liste, recherche a dans cette liste, deux cas possibles : -Si a est dans b, renvoie la sous-liste gnre ` e ee a partir de la premi`re apparition de a dans b. e -Si a nest pas dans b, renvoie le mot faux. Si b est un mot, recherche le caract`re a dans b, e deux cas possibles : - Si a est dans b renvoie la n du mot ` partir a de a. -Sinon, renvoie le mot faux. membre o coucou renvoie oucou membre 3 [1 2 3 4] renvoie [3 4] Renvoie le mot vrai si le crayon est baiss, faux e sinon. Renvoie le mot vrai si la tortue est visible, faux sinon. Renvoie vrai si le mot est une primitive de XLOGO, faux sinon. Renvoie vrai si le mot est une procdure dnie e e par lutilisateur, faux sinon.

membre

ab

bc ?, baissecrayon ? visible ? prim ?, primitive ? proc ?, procedure ?

aucun aucun a : mot a : mot

21

4.6

Eectuer un test ` laide de la primitive si a

Comme dans tout langage de programmation, le Logo ore la possibilit de vrier si une condition e e donne est vraie ou fausse an dexcuter le bout de code associ. e e e La primitive si permet de raliser ces tests. Voici sa syntaxe : e si expression_test [ liste1 ] [ liste2 ] Si lexpression test est vraie alors les commandes situes dans la liste 1 seront excutes. En revanche, e e e si cette expression est fausse alors ce sont les commandes de la liste 2 qui seront excutes. La deuxi`me e e e liste dintruction est optionnelle. Exemples dutilisation : si 1+2=3[ecris "vrai][ecris "faux] si (premier "XLOGO)="Y [av 100 td 90] [ec [ XLOGO commence par un X !] ] si (3*4)=6+6 [ec 12]

4.74.7.1

Gestion des procdures et des variables eLes procdures e

Les procdures sont des sortes de programmes . A lappel de leur nom, les instructions comprises e dans le corps de la procdure sont excutes. On dnit une procdure ` laide du mot-cl pour. e e e e e a e

pour nom_de_la_procdure :v1 :v2 :v3 .... e Corps de la procdure e fin e e a e nom de la procdure est le nom donne ` la procdure. :v1 :v2 :v3 reprsentent les variables utilises au sein de cette procdure (variables locales). e e e Corps de la procdure reprsente les instructions ` excuter ` lappel de cette procdure. e e a e a e Ex : pour carre :c repete 4[av :c td 90] fin La procdure se nomme carre et poss`de un param`tre sappelant c. carre 100 produira donc e e e un carre de ct 100. (Voir les exemples de procdures ` la n du manuel.) oe e a Il est possible depuis la version 0.7c de rajouter des commentaires dans le code en les prcdant e e du signe #. pour carre :c #cette procdure permet de tracer un carr de c^t donn :c. e e o e e repete 4[av :c td 90] # pratique, non ? fin IMPORTANT : Il ne doit pas y avoir de commentaires sur la ligne du pour et sur celle de fin.

22

4.7.2

Notion de variables

Il existe deux sortes de variables : Les variables globales : elles sont toujours disponibles ` nimporte quel endroit du programme. a Les variables locales : elles ne sont accessibles que dans la procdure o` elles ont t dnies. e u ee e Dans cette version de LOGO, les variables locales ne sont pas accessibles dans les sous-procdures. A e la sortie de la procdure, les variables locales sont limines. e e e

4.7.3

La primitive trace

Il est possible pour suivre le droulement dun programme de lui faire acher les procdures en e e cours dexcution. Ce mode permet dacher galement si les procdures rendent des arguments ` e e e a laide de la primitive retourne. Pour enclencher ce mode, on tape : trace vrai Bien s r, trace faux dsactivera le mode trace . Un petit exemple avec le factorielle (voir p. 43 ). u e trace vrai ecris fac 4 fac 4 fac 3 fac 2 fac 1 fac retourne 1 fac retourne 2 fac retourne 6 fac retourne 24 24

23

Primitives donne

Param`tres e a b : a mot, b quelconque

locale

a : mot

donnelocale

a b : a mot, b quelconque

Utilisation Si la variable locale a existe, lui aecte la valeur b. Sinon, cre la variable globale a en lui e aectant la valeur b. Ex : donne a 100 aecte 100 ` la variable a a Cre une variable nomme a. Attention, celle-ci e e nest pas initialise. Pour lui donner une valeur, e voir donne. Cre une nouvelle variable locale a et lui aecte e la valeur b. Dnis une nouvelle procdure nomme mot1, e e e munie des variables contenues dans liste2 et dont les instructions ` excuter sont contenues a e dans liste3. def "polygone [nb longueur] [repete :nb[av :longueur td 360/:nb]] -> Ceci dnit une procdure nomme polye e e gone avec deux variables ( :nb et :longueur). Elle permet de tracer un polygne rgulier o e dont on peut choisir le nombre de cts et la oe longueur de chacun des cts. oe Renvoie la valeur de la variable a. chose a et :a sont deux notations quivalentes. e Eace la procdure sappelant a. e Eace la variable a. Eace toutes les variables et procdures en e cours. Enum`re toutes les procdures actuellement de e e nies. Renvoie une liste contenant lensemble des variables actuellement dnies. e Excute la liste dinstruction contenue dans la e liste.

def, definis

mot1 liste3

liste2

chose efn, effacenom efv, effacevariable efns, effacenoms imts listevariables exec, execute

a : mot a : mot a : mot aucun aucun aucun a :liste

24

4.8

Gestion des FichiersArguments a : mot Utilisation Ache le chier image contenu dans la liste. Son coin supe rieur gauche sera plac o` se trouve la tortue . Les formats e u supports sont le png et le jpg. Le chemin spci doit tre e e e e relatif par rapport au rpertoire courant. Ex : chargeimage e "tortue.jpg] Liste le contenu du rpertoire par dfaut. (Equivalent de la e e commande ls pour linux et dir pour DOS) Fixe le rpertoire en cours. Le chemin doit tre absolu et e e doit tre spci ` laide dun mot. e e ea Permet de choisir le rpertoire courant. Le chemin est relatif e par rapport au rpertoire courant actuel. On peut utiliser la e notation .. pour faire rfrence au rpertoire parent. ee e Rend le rpertoire en cours. Par dfaut, il est x au re e e e pertoire utilisateur cest ` dire /home/votre_login pour les a linuxiens, C :\WINDOWS pour les autres. Un bon exemple pour expliquer cela : sauve "essai.lgo [proc1 proc2 proc3] sauve dans le chier essai.lgo du re pertoire courant les procdures proc1, proc2 et proc3. Si e lextension .lgo est omise, elle est rajoute par dfaut. Le e e mot spci dsigne un chemin relatif par rapport au rpere e e e toire courant. Cette commande ne fonctionne pas avec un chemin absolu. sauved "test.lgo sauve dans le chier test.lgo du rpere toire courant lensemble des procdures dnies actuellee e ment. Si lextension .lgo est omise, elle est rajoute par de e faut. Le mot spci dsigne un chemin relatif par rapport e e e au rpertoire courant. Cette commande ne fonctionne pas e avec un chemin absolu. Ouvre et interprete le chier m. Par exemple, pour eacer toutes les procdures dnies et charger le chier essai.lgo, e e on crira : efns charge "essai.lgo. Le mot spci de e e e signe un chemin relatif par rapport au rpertoire courant. e Cette commande ne fonctionne pas avec un chemin absolu. Lorque lon veut lire ou crire dans un chier, il faut au e pralable ouvrir un ux vers ce chier. Largument fich e doit tre le nom du chier considr. On doit utiliser un mot e ee pour indiquer le le nom du chier dans le rpertoire courant. e Largument id est le numro que lon aecte ` ce ux an e a de pouvoir lidentier.

Primitives chargeimage, ci

cat, catalogue frep, fixerepertoire changedossier, cd rep, repertoire sauve

aucun m : mot m : mot

aucun

m : mot l :liste

sauved

m : mot

ramene

m : mot

ouvreflux

id fich

25

Primitives listeflux lisligneflux liscarflux

Arguments aucun id id

ecrisligneflux

id liste

ajouteligneflux

id liste

fermeflux finflux ?

id id

Utilisation Ache la liste des dirents ux ouverts avec leur identie ant. Ouvre le ux dont lidentiant est le numro pass en argue e ment puis lis une ligne dans ce chier. Ouvre le ux dont le numro didentiant est celui pass en e e argument puis lis un caract`re dans ce chier. Cette primie tive renvoie un nombre reprsentant la valeur du caract`re e e (semblable ` liscar). a Ecris la ligne de texte contenue dans la liste au dbut du e chier repr par lidentiant id. Attention, lcriture nest ee e eective que lorsque lon ferme le ux avec la primitive fermeflux. Ecris la ligne de texte contenue dans la liste ` la n du chier a repr par lidentiant id. Attention, lcriture nest eective ee e que lorsque lon ferme le ux avec la primitive fermeflux. Ferme le ux dont le numro didentiant est celui pass en e e argument. Renvoie "vrai si on est arriv ` la n du chier. Renvoie e a "faux sinon.

Voici un exemple dutilisation des primitives permettant de lire et crire dans un chier. Nous pre e senterons cet exemle pour une architecture de type Windows. Les autres utilisateurs sauront adapter lexemple suivant. Lobjectif est de crer le chier c :\exemple contenant les trois lignes : e ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789

# On ouvre un flux vers le fichier dsir. Ce flux sera repr par le numro 2 e e e e e fixerepertoire "c:\\ ouvreflux 2 "exemple # On crit les lignes dsires e e e ecrisligneflux 2 [ABCDEFGHIJKLMNOPQRSTUVWXYZ] ecrisligneflux 2 [abcdefghijklmnopqrstuvwxyz] ecrisligneflux 2 [0123456789] # On ferme le flux pour achever lcriture e fermeflux 2 A prsent, on peut constater que lcriture sest bien passe : e e e # On ouvre un flux vers le fichier ` lire. Ce flux sera repr par le numro 0 a e e e ouvreflux 0 "c:\\exemple # On lit les lignes du fichiers successivement ec lisligneflux 0 ec lisligneflux 0 ec lisligneflux 0 # On ferme le flux 26

fermeflux 0 Si on souhaite ` prsent rajouter la ligne Formidable ! : a e fixerepertoire "C:\\ ouvreflux 1 "exemple] ajouteligneflux 1 [Formidable !] fermeflux 1

27

4.9

Fonction avance de remplissage : e

Il existe deux primitives permettant de colorier une forme : La primitive remplis et la primitive rempliszone . On peut apparenter ces primitives avec la fonction pot de peinture utilise dans de e nombreux logiciels de retouche dimages. On peut atteindre les bords de la zone de dessin. Il y a deux r`gles ` respecter pour utiliser correctement ces primitives : e a 1. Le crayon doit tre en position baiss (bc). e e 2. La tortue ne doit pas tre situe sur un pixel de la couleur dont on veut remplir la forme. (Si on e e veut colorier en rouge, ne pas se trouver soi-mme sur du rouge...) e Voyons un exemple pour expliquer la dirence entre remplis et rempliszone : Le pixel sous la tortue e

Fig. 4.1 Situation initiale est actuellement de couleur blanche. La primitive remplis va colorier tous les pixels blancs voisins avec la couleur du crayon en cours. Si par exemple on tape : fcc 1 remplis

Fig. 4.2 Avec la primitive remplis Revenons ` prsent au premier cas, Si la couleur du crayon de la tortue est le noir, la primitive a e rempliszone, colorie tous les pixels voisins jusqu` rencontrer la couleur en cours (ici noire). Voici, un a bel exemple dutilisation de la primtive remplis : pour demice :c # trace un demi-cercle de diam`tre :c e repete 180 [av :c*tan 0.5 td 1] av :c*tan 0.5 td 90 av :c fin pour arcenciel :c 28

Fig. 4.3 Avec la primitive rempliszone, en tapant : fcc 0 rempliszone

si :c 65 > -37 ou -226 (NumPad) Echap > 27 Shift > -16 B > 66 > -38 ou -224 F1 > -112 Espace > 32 C > 67 > -39 ou -227 F2 > -113 Ctrl > -17 etc ... > -40 ou -225 .... Enter > 10 Z > 90 F12 > -123

Tab. 4.1 Quelques valeurs de touche Si vous avez un doute par le mot retourn par une touche, il vous sut de taper : e ec liscar. Linterprteur va alors attendre que vous tapiez sur une touche puis vous donnera la valeur e correspondante. lis liste_titre mot : Ache une bo de dialogue dont le titre est liste_titre. Lutilisateur te peut alors rentrer une rponse dans un champ de texte, la rponse sera stocke sous forme de liste e e e dans la variable :mot lorquil validera ou cliquera sur le bouton OK.

4.14.2

Quelques exemples dutilisation :

pour yeuv lis [Quelle est ton age?] "age donne "age premier :age si :age18 [ec [tu es majeur]] si :age>99 [ec [Respect !!]] fin pour rallye si touche? [ donne "car liscar si :car=-37 [tg 90] si :car=-39 [td 90] si :car=-38 [av 10] si :car=-40 [re 10] si :car=27 [stop] ] rallye fin # On contr^le la tortue avec le clavier, on arr^te avec Esc o e 35

4.14.3

Intercepter certains vnements provenant de la souris e e

Pour cela, on dispose de trois primitives : lissouris, souris ? et possouris. lissouris : Bloque le programme jusqu` ce quun vnement souris se produise : on entend par a e e vnement souris le fait de dplacer la souris ou de cliquer sur lun de ses boutons. Une fois lvnement e e e e e produit, lissouris rend un nombre permettant de caractriser lvnement. Voici les dirents codes e e e e associs aux dirents vnements quils reprsentent : e e e e e 0 > on a dplac la souris e e 1 > on a appuy sur le bouton 1 de la souris e 2 > on a appuy sur le bouton 2 de la souris e etc Les boutons sont numrots de la gauche vers la droite (en principe...) e e possouris : Renvoie une liste contenant les coordonnes de la souris lors du dernier vnement e e e intercept. e souris ? : rend vrai ou faux selon que lon ait agi ou non sur la souris depuis le dbut de lexe e cution du programme.

4.14.4

Quelques exemples dutilisation

Dans cette premi`re procdure, la tortue suit la souris lorsquelle se dplace sur la zone de dessin. e e e pour exemple # Si on dplace la souris, se positionner ` la nouvelle position e a si lissouris=0 [fpos possouris] exemple fin Dans cette deuxi`me procdure, cest le mme principe sauf quil faut cliquer avec le bouton gauche e e e de la souris pour provoquer le dplacement de la tortue sur la zone de dessin. e pour exemple2 si lissouris=1 [fpos possouris] exemple2 fin Dans ce troisi`me exemple, nous allons crer deux boutons. Celui de gauche permettra de tracer un e e carr de 40 sur 40 vers la droite, celui de droite un petit cercle vers la gauche. Enn, si lon clique avec e le troisi`me bouton de la souris sur le bouton de droite, cela provoquera larrt du programme. e e pour bouton #cre un bouton rectangulaire de 50 sur 100 colori en saumon e e repete 2[av 50 td 90 av 100 td 90] td 45 lc av 10 bc fcc [255 153 153] remplis re 10 tg 45 bc fcc 0 fin pour lance 36

ve bouton lc fpos [150 0] bc bouton lc fpos [30 20] bc etiquette "Carr e lc fpos [180 20] bc etiquette "Cercle lc fpos [0 -100] bc souris fin pour souris # On enregistre le rsultat de lissouris dans la variable ev e donne "ev lissouris # On enregistre la premi`re coordonne de la souris dans la variable x e e donne "x item 1 possouris # On enregistre la premi`re coordonne de la souris dans la variable y e e donne "y item 2 possouris # Si lon clique sur le bouton de gauche si :ev=1 & :x>0 & :x0 & :y150 & :x0 & :y [jour e mois anne] e aucun Renvoie une liste de trois entiers reprsentant e heure lheure. Le premier entier reprsente les heures, e le second les minutes et le dernier les secondes. > [heure minute seconde] aucun Renvoie le temps coul depuis le dmarrage de e e e temps XLogo. Ce temps est exprim en secondes. e Voici une petite procdure exemple : e pour horloge # affiche lheure sous forme numrique e # (on actualise laffichage toutes les 5 secondes) si fintemps? [ ve fixepolice 75 ct donne "heu heure donne "h premier :heu donne "m item 2 :heu #affichage ` deux chiffres des minutes (on rajoute le 0) a si :m-10