Radio Shack TRS-80 Color Manuel utilisateur
PDF
Scarica
Documento
LOGO Couleur Radio Shack par Larry Kheriaty et George Gerhold ® Programme LOGO Couleur: © 1982 Micropi Tous droits réservés Autorisation accordée à Tandy Corporation Traduction et adaptation française: © SOCATRA lnc., Montréal, 1983 Manuel LOGO Couleur: © 1982 Micropi Tous droits réservés Autorisation accordée à Tandy Corporation Traduction et adaptation française: © SOCATRA Inc., Montréal, 1983 Toute reproduction ou utilisation, sans autorisation écrite expresse de Micropi et de Tandy Corporation, de toute partie du présent manuel est formellement interdite. Alors que des efforts raisonnables ont été effectués pour assurer l'exactitude de ce manuel lors de sa préparation, Micropi et Tandy Corporation ne sauraient être tenus responsables de toute erreur ou omission dans le présent manuel, ou découlant de l'utilisation des renseignements qu'il con­ tient. Veuillez vous reporter à l'autorisation d'utilisation du logiciel que l'on trouvera au début du présent manuel et qui en limite l'usage et la reproduction. li Avant-propos Il y a déjà plus de dix ans que les auteurs s ' intéressent à l ' utilisation des ordinateurs dans l'enseignement, notamment à l 'enseignement assisté par ordinateur. Cette expérience nous a permis de pous rendre compte des problèmes qui se posent pour que les élèves puissent partir du bon pied en programmation , et nous avons profité des possibilités qu'offre le LOGO pour y chercher des solutions. Nous avons conclu qu ' i l serait utile de mettre au point une version du LOGO exécutable sur un matériel bon marché et permettant des ensembles relativement longs de procédures. En passant en revue les fonctions des autres versions du LOGO , nous avons constaté que la plupart des applications n' utilisaient pas les fonctions de traitement de listes. Nous les avons donc supprimées, ce qui nous a permis d'atteindre les objectifs que nous nous étions fixés, tout en incorporant d' autres fonctions, notamment les tortues multiples. Nous reconnaissons la dette que nous avons envers les premiers concepteurs du langage LOGO au chapitre 1 . En outre, nous tenons à remercier nos enfants Aaron, Jenell et Kirstin , dont les réactions aux premières versions du LOGO Couleur nous ont persuadés que nous étions sur la bonne voie. George Gerhold Larry Kheriaty Ill Table des matières Introduction ................. *.......................................... 1 1. Le LOGO Couleur, qu' est-ce que c' est? 2. Allons-y! 3. Modes et édition 4. Procédures 5. Répétitions et sous-procédures . . . ... . . . . . . . . . . . . . . . . . . . . . . 6. Variables ........................................................ 27 7. Couleurs .......................................................... 31 8. Autres commandes de la tortue ......................... 35 9. Méthodes d' enregistrement, de chargement et ... ..... ............. •... . ............. 3 ...................... ........... 5 ...... 13 .. . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . •. ..........................•..•.........•.••...•........ . , . .................................................... d .1mpress1on . . 17 21 39 10. Récurrence ....................................................... 43 11. Mode DESSIN - Techniques sans dactylographie 53 12. Dessin avec une touche ..................................... 57 13. Utilisation du mode DESSIN et du jeu lD .......... 61 14. Tortues multiples ............................................ 71 15. Les tortues prennent de nouvelles formes 16. Jeux 17. Fourre-tout ... . . .. . ............. 81 .............................................................. 89 ..................................................... 99 . Appendice 1: Résumé du langage LOGO .................... Appendice 2: Copie du disque LOGO Couleur ............. 107 123 INTRODUCTION Le LOGO Couleur Radio Shack® est un langage d'ordinateur conçu pour l ' enseignement. Il peut servir à dessiner des images sur l 'écran de l ' ordinateur à l 'aide d' une forme mobile appelée la "tortue" . Le LOGO Couleur vise à permettre aux enfants d' apprendre en explorant . Il leur suffit d' imaginer une action, puis de donner des commandes simples qui feront avancer ou reculer la tortue ou qui la feront tourner dans toutes les directions . On trouvera ci-dessous quelques-unes des fonctions du LOGO Couleur: • • • • • • L'édition des lignes permet d ' inscrire et d'enregistrer les séquences de mouvements de la tortue (appelées procédures) . Le mode DESSIN permet aux jeunes enfants qm ne savent encore ni lire m utiliser le clavier de se servir du LOGO . La commande "LENT" permet de ralentir les mouvements de la tortue . Il est possible de changer les couleurs de l 'écran . Le LOGO Couleur permet l ' animation simple . Le langage permet d ' inscrire et d ' enregistrer des variables et des expressions arithmétiques pour régir les mouvements de la tortue . Le LOGO Couleur est un langage destiné aux débutants . Le manuel a été rédigé de façon à en faciliter l 'utilisation, étape par étape, et il comporte de nombreux exemples et figures . Le manuel est structuré de la façon suivante: 1. Les chapitres 1 à 1 0 constituent une introduction aux graphiques de la tortue et à la syntaxe du LOGO. Les lecteurs qui connaissent déjà le LOGO pourront passer rapidement pour se rendre directement au résumé figurant à l 'appendice 1 . 2. Les chapitres 1 1 à 1 7 expliquent les fonctions particulières du LOGO Couleur. a. Les chapitres 1 1 à 1 3 portent sur l ' utilisation du LOGO Couleur par de jeunes enfants. b. Les chapitres 1 4 à 1 6 présentent les tortues multiples et de nouvelles formes de tortues. c. Le chapitre 17 donne un exemple du genre de mouvements que l 'on peut faire exécuter à la tortue. Pour pouvoir utiliser le LOGO Couleur Radio Shack, il f a ut disposer au minimum d ' un ordinateur couleur TRS-80 avec Basic couleur et mémoire vive de I 6K. Toutes les procédures peuvent être enregistrées sur cassette. 1 1. LE LOGO COULEUR, QU'EST-CE QUE C'EST? Le LOGO Couleur est un langage d'ordinateur conçu pour les enfants. Evidemment, comme tout ce qui est destiné aux enfants, le LOGO Couleur peut aussi fasciner et émerveiller les grandes personnes . De prime abord, le LOGO Couleur peut apparaître comme un langage facile pour dessiner des images, puisqu'en exécutant un programme, on obtient presque toujours une image . Mais le LOGO va beaucoup plus loi n , puisqu'il permet de se familiariser avec certains des concepts les plus puissants des mathématiques, des sciences physiques, et de l ' informatique et d'apprendre la résolution des problèmes, tout en restant simple et attrayant pour se maintenir à la portée des enfants . Nous avons bien dit que le LOGO Couleur était un langage pédagogique, et non un langage d'enseignement. Le rôle de celui qui apprend est très important. Avec le LOGO Couleur, l 'élève devient explorateur: il se fixe des buts (problèmes à résoudre) et cherche à trouver un moyen pour y parvenir. L'enseignant a pour rôle de le guider, et doit rester à l ' arrière-plan autant que possible, sans fixer de buts à celui qui apprend , mais simplement pour aider lorsqu'on lui pose des questions . Le LOGO Couleur a tout l 'attrait d'un jeu, dans lequel il ne s ' agit pas de gagner ou de perdre , mais de savoir jouer. Ce n ' est pas tant le but atteint qui importe , que la façon d'y parvenir. Le LOGO Couleur reprend les principes d 'utilisation de l ' ordinateur qui font partie du LOGO . Nombreux sont ceux qui ont contribué au projet LOGO; la liste est trop longue, et nous ne pourrions les citer tous, mais retenons les noms de Wallace Feurzeig, Harold Abelson , Andrea diSessa et surtout de Seymour Papert . La plupart des travaux de développement et d'expérimentation du LOGO ont été exécutés à l 'Institut de technologie du Massachusetts. Deux événements importants ont signalé la méthode LOGO à l ' attention des éducateurs. D'abord, la publication de deux ouvrages: «Mindstorms» de Papert et «Turtle Geometry» d' Abelson et diSessa. Quiconque veut se servir sérieusement du LOGO se doit de lire ces livres . L'autre étape a été la mise en oeuvre du langage LOGO sur les micro-ordinateurs, qui a permis de faire passer le LOGO du laboratoire à la salle de classe . Si vous connaissez déjà le LOGO , le LOGO Couleur vous sera familier. Dans toute la mesure du possible, nous avons conservé la syntaxe du LOGO, et les structures logiques des deux langages sont essentiellement les mêmes. La plupart des programmes de graphiques publiés dans les livres sur Je LOGO pourront être exécutés en LOGO Couleur sans modification . Le LOGO Couleur n ' est pas tout simplement un LOGO sous un autre nom et destiné à un autre ordinateur. Les deux programmes présentent quelques différences très importantes . Le LOGO Couleur est un langage de graphiques , mais Je LOGO comprend aussi un certai n nombre d'enchaînements tirés du langage LISP. Le LOGO Couleur n ' utilise les chaînes que comme étiquettes sur les graphiques. Il possède des tortues multiples, alors que la plupart des versions du LOGO n'ont qu'une seule tortue. On peut donc se servir du LOGO Couleur pour illustrer des concepts importants comme la multiprogrammation et les messages par boîte à lettres , mais toujours avec une grande simplicité. Les tortues multiples permettent, entre autres, l 'animation simple et offrent à l ' utilisateur la possibilité de créer des jeux . Toutes ces possibilités sont dues au fait que, contrairement au LOGO, les exigences de mémoire du LOGO Couleur sont minimes. Le LOGO Couleur offre en outre un mode DESSIN destiné aux enfants trop jeunes pour savoir dactylographier les mots clés . Si vous êtes nouveau venu dans le domaine des ordinateurs, ce préambule pourra vous sembler assez compliqué, mais c'est que nous parlons trop, et que nous n ' agissons pas assez! Alors, allons-y. 3 2. ALLONS-Y! Le LOGO Couleur, qui sera exécuté sur votre ordinateur couleur TRS-80, existe sous deux formes: cartouche enfichable ou disquette. Pour enregistrer vos créations préférées en vue de les revoir plus tard, il vous faudra une unité de disques ou un magnétocassette que vous brancherez sur l'ordinateur. Consultez les chapitres sur l ' installation et l ' utilisation de votre manuel d'utilisation de l ' ordinateur couleur TRS-80, pour savoir quels câbles connecter à l 'unité de disques et au magnétocassette. N'ALLUMEZ PAS TOUT DE SUITE VOTRE APPAREIL! NOTE: Si vous utilisez la cartouche à mémoire morte du LOGO Couleur (No. 26-8722 du catalogue), suivez les directives figurant à la rubrique "Cartouche enfichable à mémoire morte" . Pui s , tournez l a page pour passer au paragraphe "Utilisation du programme LOGO Couleur" . Pour la version disquette (No. 26-872 1 du catalogue) , suivez les directives figurant à la rubrique "Disque", puis passez au paragraphe "Utilisation du programme LOGO Couleur" . Cartouche enfichable à mémoire morte: Insérez la cartouche LOGO Couleur dans le logement rectangulaire sur le côté droit de votre ordinateur TRS-80. Assurez-vous que l ' étiquette est en haut et que la cartouche est bien enfoncée . Allumez l'appareil . (L'interrupteur se trouve à l' arrière de l 'ordinateur, près du coin gauche) . Le message suivant apparaît alors sur l 'écran: LOGO COULEUR © 1 982 KHERIATY/GERHOLD & TANDY CORP. VERSION FRANCAISE SOCATRA TOUS DROITS RESERVES LOGO: Disque: Insérez le contrôleur de disque de l ' ordinateur couleur dans le logement rectangulaire sur le côté droit de l'ordinateur. Puis allumez l 'ordinateur. (L'interrupteur se trouve à l' arrière de l'ordinateur dans le coin gauche . L ' interrupteur de l ' unité de disques est à l 'arrière de l ' unité de disques, coin supérieur gauche) . Vous devriez voir apparaître le message suivant: DISK EXTENDED COLOR BASIC 1 .0 COPYRIGHT © 1 981 BY TANDY UNDER LICENSE FROM MICROSOFT OK Procédez alors comme suit: 1. Insérez la disquette LOGO Couleur, l 'encoche carrée tournée vers le haut et l'étiquette vers la droite, dans l ' unité de disques 0 (l' unité la plus proche de l 'ordinateur couleur sur le câble) . 2. Fermez la porte de l' unité de disques. 5 3. Inscrivez LOADM "LOGO" e t appuyez sur ENTER. 4. Lorsque la lumière de l 'unité de disques s'éteint, inscrivez EXEC et appuyez sur ENTER. L 'ordinateur affiche alors le message i ndiqué ci-dessus à la rubrique "Cartouche enfichable à mémoire morte". 5. Retirez l a disquette LOGO Couleur de l 'unité de disques . Utilisation du programme LOGO Couleur: Quelle que soit la façon de commencer, vous devriez maintenant vous trouver en mode BREAK, qui est i ndiqué par le message: LOGO: à gauche de l 'écran . A tout moment, vous pouvez revenir en mode BREAK par l ' u n des troi� moyens suivants: 1. Appuyez sur la touche BREAK pour interrompre le programme en cours et retourner en mode BREA K . 2. Appuyez sur l e bouton d e RESET qui s e trouve à l 'arrière droit d e l 'ordinateur. Vous retournerez en mode BREAK, mais vous perdrez tous les programmes en mémoire. 3. Réexécutez l e programme dès l e début, et vous vous retrouverez e n mode BREAK. Les chapitres 3 et 9 fournissent des explications détaillées sur le mode BREAK; pour l ' instant, passons en mode EXECUTION en appuyant sur la touche X. Et voilà la tortue, au beau milieu de votre écran , tournée vers le haut. Reconnaissons qu'elle ne ressemble pas beaucoup aux tortues que l 'on voit dans les étangs, mais, comme une tortue normale , elle peut avancer et reculer, et tourner à gauche et à droite. Contrairement aux tortues ordinaires, les tortues i nformatisées peuvent laisser traîner leur queue pour faire une trace en couleur, ou la lever et ne plus laisser de marque . Elles peuvent même devenir complètement invisibles . À l ' origine, on appelait "tortue" un petit robot mécanique que l 'on pouvait faire se déplacer sur le sol sous contrôle de 1 ' ordinateur. Le nom tenait sans doute beaucoup plus à la vitesse du robot qu' à sa forme. La trace laissée par la tortue a pris le nom de graphique de tortue, et ce terme s 'utilise maintenant pour indiquer un mode de dessin dans lequel une ligne est définie par sa direction et sa longueur (graphique vectoriel) , l 'autre solution étant de définir une ligne par les coordonnées de ses deux extrémités. L'élément mobile s ' appelle "tortue'' , même s ' i l n e s ' agit que d' une forme sur l ' écran . Le LOGO Couleur est u n langage destiné à contrôler les tortues . Voici donc une tortue au milieu de l 'écran, et elle se meurt d'envie d'entrer en action . Disons­ lui d' avancer. Les commandes ou lignes de programme que vous allez foornir à l 'ordinateur seront représentées par le style de caractère que vous voyez dans AVANT 40 ci-dessous. (Certains messages de l 'ordinateur seront également imprimés avec les mêmes caractères, mais le contexte fera clairement ressortir la différence) . I nscrivez simplement: 6 AVANT 40 Puis appuyez sur ENTER . Le nombre dit à la tortue jusqu ' où elle doit aller. Après avolf inscrit AVANT 40, l'image suivante apparaît sur l 'écran: oyez-vous la trace de la tortue? Attention , si vous oubliez de laisser un espace entre "AVANT" t "40", vous verrez apparaître le message "JE NE CON NAIS PAS AVANT40". Vous recevrez n message semblable pour toute faute de frappe. Il suffit d'appuyer sur ENTER pour pouvoir scrire AVANT 40 correctement. Vous pouvez vous servir de la touche de flèche vers la gauche ur corriger les fautes de frappe avant d' appuyer sur ENTE R . Revenez simplement au début de l'erreur et inscrivez à nouveau l ' instruction . · Vous en aurez bien vite assez de toujours écrire AVANT: vous allez pouvolf utiliser une abréviation . Inscrivez ce qui suit, et appuyez sur ENTER: AV 1 0 Essayez d'apprendre à connaître la dimension d e l 'écran e t l a résolution . Essayez: AV 1 C'est presque trop petit pour être vu . Alors essayez un chiffre plus élevé; par exemple: AV 1 00 La tortue s'est déplacée, mais n ' a pas laissé de trace. Quand la tortue quitte le haut de l ' écran , elle reparaît aussitôt en bas de l ' écran. Mais elle ne peut le faire qu'en relevant temporairement sa queue, si bien qu'elle ne laisse pas de traces de ses pas . Et maintenant, trouvez la distance entre Je milieu et le haut de l ' écran . Pour tout recommencer et effacer l'écran , écrivez le mot: EFFACE Puis, essayez de diriger la tortue vers Je haut de J 'écran avec une seule commande AV . Quand elle y sera parvenue exactement, elle commencera à apparaître au bas de J 'écran , mais sa piste sera tracée jusqu'en haut de l ' écran . Sans doute, faudra-t-il vous y reprendre à plusieurs fois pour y arriver. Donc , plusieurs commandes EFFACE et AV . 7 Eh bien , peut-être en avez-vous assez de tracer des lignes verticales . Le moment est venu de faire tourner la tortue . Effacez l 'écran (EFFACE ENTER) et inscrivez: AVANT 40 DROITE 90 et pour rendre le changement plus évident, inscrivez: AVANT 50 La tortue comprend les degrés. Si vous vous servez du LOGO Couleur avec de jeunes enfants, nous avons une suggestion à vous faire . Nous disposons maintenant de renseignements assez complets sur la façon d' utiliser efficacement le LOGO avec de jeunes enfants et cette information est également applicable au LOGO Couleur. Le LOGO Couleur est un langage destiné à l 'expérimentation; ce n 'est pas un langage pour apprendre en imitant ce qu'on peut lire dans les manuels. Résistez à la tentation d'expliquer les degrés à l 'enfant qui ne les connaît pas encore . Il en apprendra facilement le principe en expérimentant avec le LOGO Couleur. Là aussi , si vous en avez assez d ' inscrire DROITE, vous pouvez utiliser l ' abréviation DR . Essayez: DR 90 Maintenant, le nez de la tortue pointe vers le bas . Nous avons jusqu ' ici tracé la moitié d'un rectangle; finissons-le . Inscrivez: AV 40 DR 90 et voyons si vous pouvez le finir. 8 Après avoir fini le rectangle (en inscrivant AV 50) , effacez l ' écran et mscnvez: DR 45 AV 50 Comme vous vous y attendiez , probablement; mats maintenant essayez: DR 1 5 On dirait qu'il ne s'est rien produit! Mais essayons pour v01r: AV 30 Evidemment, il y a une courbe dans la ligne, même si la tortue n ' a pas semblé tourner. La tortue connaît sa route vers la direction indiquée et se déplace en conséquence , mais la forme de la tortue sur l 'écran ne fait que des virages à 45 degrés. Ainsi la forme de la tortue sur l'écran est tournée dans la direction générale du déplacement de la tortue , mais pas exactement le long de celle-ci. Cela peut sembler gênant pour l ' i nstant, mais nous constaterons au chapitre 14 que cette discordance présente un réel avantage . Notons une chose très importante au sujet du comportement de la tortue . Effacez l ' écran et inscrivez: DR 45 DR 45 9 On obtient la même direction qu'avec DR 90. Quand on dit à la tortue de tourner, elle tourne de la quantité i ndiquée. Nous disons à la tortue de changer d'orientation . Nous ne disons pas à la tortue de se diriger vers un certain point. De même, quand nous disons à la tortue d'avancer, nous lui disons comment changer de position; nous ne disons pas à la tortue de se rendre à tel point sur l ' écran . Ainsi , l a position et l ' orientation de la tortue, après l ' une de ces commandes, dépendront de son point de départ. Jusqu ' ic i , nous avons appris trois commandes élémentaires de la tortue. (Papert dirait, trois mots en langue tortue) . Ce sont les commandes EFFACE, AVANT et DROITE. Avec ces trois commandes, nous pouvons dessiner n ' importe quelle image tenant dans l ' écran , et qu'on pourrait tracer sur papier sans lever le crayon . Vous pouvez essayer de dessiner un triangle (figure à trois côtés) et un pentagone (figure à cinq côtés) . Si vous êtes comme nous, vous ne vous souvenez pas des angles du pentagone . Alors, essayez . Vous avez probablement constaté que l ' on ne donne que trois lignes d ' instructions à la fois. A partir de la quatrième ligne, les lignes défilent vers le haut et la ligne du haut disparaît. S i vous avez tracé une piste de tortue à travers ces trois lignes d u bas , l e déroulement mêlera la ligne en faisant remonter un segment de ligne vers le haut. Si vous laissez la tortue dans ces trois lignes du bas tout en déroulant, la tortue ne s 'effacera pas comme il faut en se déplaçant. Ce sont de petits inconvénients de certaines fonctions de 1 'ordinateur couleur qui ne nous gêneront plus quand nous en serons au chapitre 4. Pour l ' instant, il faut soit éviter d'envoyer la tortue dans les trois lignes du bas, soit appuyer sur ENTER assez souvent pour faire remonter la ligne et les fragments de tortue, ou bien les ignorer. Nous pourrions aller fort loin avec seulement DROITE et AVANT, mais GAUCHE et ARRIERE sont tout aussi utiles . Effacez l 'écran et essayez: GAUCHE 90 (Nous aurions pu utiliser l ' abréviation GA. ) Maintenant, faisons reculer la tortue. Essayez: ARRIERE 40 (abréviation: AR 40) . Notez que la tortue est quelque peu transparente . Vous pouvez voir la trace à travers l a tortue . Si vous ne voulez plus voir la tortue du tout, vous pouvez la cacher. Inscrivez: CACHE (L'abréviation CT, pour "cache tortue" est nettement plus courte) . La tortue est toujours là, mais elle est invisible . Inscrivez: GA 30 AR 30 pour voir la trace de la tortue invisible . Pour votr de nouveau la tortue, inscrivez: 10 MONTRE (vous l'avez deviné, l 'abréviation est MT) , et pour la faire tourner, mscnvez: GA 1 20 Cependant, pour faire toutes sortes de graphiques étonnants , dont le nombre n'est limité que par notre i magination, i l faudrait inscrire une quantité prodigieuse de commandes . Pour apprendre à réduire le travail de dactylographie, nous allons apprendre à créer et à uti l iser les procédures. 11 3. MODES ET EDITION Les nouveaux venus à l ' ordinateur trouvent souvent bizarre l 'idée des modes . Un mode , c'est un terme dont on se sert pour décrire un groupe de choses que peut faire un langage d'ordinateur. Un certain nombre de bonnes raisons justifient l 'existence des différents modes. D' abord, le clavier ne comporte pas suffisamment de touches pour nous permettre de faire tout ce que nous voulons . Les mêmes touches peuvent être utilisées à différentes fonctions en modes différents sans entraîner de confusion , (du moins du côté de l ' ordinateur!) Le diagramme suivant représente les divers modes du LOGO Couleur. y /1--_BRE _AK_I �REAK /BREAK xl ! BREAK � I _ -É-D-IT-IO_N 1 EXÉC 1 @ 1 DESSIN 1 Les touches qui permettent de passer d'un mode à l ' autre sont indiquées sur les flèches . Vous étiez déjà en mode BREAK quand vous avez mis l 'ordinateur en marche . Vous êtes déjà passé en mode EXECUTION à partir du mode BREAK en appuyant sur la touche X . Maintenant, vous allez passer en mode EDITION . Le plan nous montre qu'il faut quitter le mode EXECUTION (en appuyant sur la touche BREAK) et passer en mode EDITION (en appuyant sur la touche E). Le mode EDITION permet d ' utiliser un éditeur de ligne . Le mode EDITION sert à créer et à modifier les programmes de LOGO Couleur, mais pendant le reste de ce chapitre, nous ne parlerons plus du LOGO Couleur, pour nous intéresser exclusivement au fonctionnement du mode EDITION. Commençons par quelque chose de familier; nous allons écrire un petit message à Grand-mère ! En entrant en mode EDITION, vous verrez apparaître une courte ligne horizontale au début de la ligne inférieure de l 'écran. C 'est le "curseur" . Le curseur i ndique où apparaîtront les lettres ou les chiffres, au fur et à mesure de leur inscription. Commencez votre lettre en écrivant: CH ERE GRAND-MERE, Appuyez sur ENTER et le curseur passe au début de la ligne suivante . Inscrivez la ligne suivante: JE VAIS UTILISER UN EDITEUR Appuyez de nouveau sur ENTER pour terminer la ligne. Notez que cet éditeur ne permet d' utiliser que les lettres majuscules . Le LOGO Couleur ne connaît pas les minuscules . Nous pourrions continuer à inscrire autant de lignes que nous voulons de la même façon . Supposons que nous écrivions ici une très courte lettre , et que nous voulions maintenant quitter 13 le mode édition . Appuyez sur BREAK. Mais après mûre réflexion , nous décidons de modifier la lettre et nous retournons en mode EDITION (appuyez sur E) . La première ligne de notre message apparaît avec le curseur au début de la ligne . Nous décidons de remplacer les mots "JE VAIS" à la seconde ligne du message par J'APPRENDS A. Pour ce faire, il nous faut d 'abord afficher la deuxième ligne, et placer le curseur sous le E de J E . Nous déplaçerons le curseur en utilisant les touches de flèches . La flèche vers le haut et la flèche vers le bas font changer de l igne et la flèche vers la gauche et la flèche vers la droite déplacent le curseur sur une même ligne . En changeant de ligne le curseur se place toujours en début de ligne . Il n ' est pas tenu compte des commandes de flèches qui n 'ont aucun sens. Par exemple , si nous appuyons sur la flèche vers la droite lorsque le curseur est sous la virgule qui suit le mot G RAND-MERE, il ne se produit rien parce que le curseur est rendu à l 'extrémité de la ligne . Pour faire apparaître la deuxième ligne du message, appuyez sur la flèche vers le haut une fois. Puis appuyez sur la flèche vers la droite pour placer le curseur sous le E de JE. Puis mscnvez: 'APPRE Notez que pour remplacer les lettres existantes, il suffit d'écrire par-dessus . Or, nous avons un autre changement à faire parce que J'APPRENDS A occupe cinq espaces de plus que JE VAIS . Il nous faut cinq espaces. Pour créer cinq espaces, appuyer en même temps sur la touche SHIFT et sur la flèche vers la droite cinq fois. Nous pouvons maintenant inscrire les lettres supplémentaires NOS A dans l 'espace ainsi ouvert. Rappelez-vous: pour insérer, il faut d' abord créer l 'espace en appuyant en même temps sur les touches SHIFT et flèche vers la droite , puis inscrire le caractère approprié dans l 'espace ainsi créé. Maintenant, remplaçons la ligne: J 'APPRENDS A UTILISER UN EDITEUR par: JE SAIS UTILISER UN EDITEUR Placez le curseur sous l ' apostrophe de J'APPRENDS et écrivez par dessus les caractères que vous voulez changer. Ici , le problème , c 'est que le mot SAIS est plus court que l 'expression APPRENDS A. Pour effacer un caractère ou un espace , appuyer en même temps sur la touche SHIFT et sur la flèche vers la gauche . Essayez et souvenez-vous bien: pour effacer appuyer en même temps sur la touche SHIFT et sur la flèche vers la gauche . Pauvre Grand-mère ! Elle ne saura pas qui lui envoie la lettre, à moins que nous n ' ajoutions une ligne à la fin . Servez-vous de la flèche vers le haut pour déplacer le curseur aussi loin que possible. Il devrait se trouver au début d' une ligne vide suivant le texte. Pour sauter une ligne avant de signer la petite lettre , nous appuyons une fois sur ENTER. Notez qu'en appuyant sur ENTE R , vous ajoutez une ligne à la fin . Cependant, si le curseur est dans le texte, appuyer sur ENTER a le même effet que la touche de flèche vers le haut. Maintenant, mettez des espaces et signez votre nom . Pendant que nous y sommes, il faudrait bien sauter une ligne après CHERE GRAND-MER E . C 'est-à-dire que nous voulons remplacer: 14 CHERE GRAND-MERE, J E SAIS UTILISER UN EDITEUR. JE T'EMBRASSE, ANNE par: CHERE GRAND-MERE, JE SAIS UTILISER UN EDITEUR. J E T'EMBRASSE, ANNE Placez le curseur au début de la ligne "JE . ". Ensuite, appuyez en même temps sur la touche SHIFT et sur la flèche vers le bas . Déplacez le curseur vers le bas pour bien constater que vous avez obtenu ce que vous vouliez . Rappelez-vous: pour insérer une nouvelle ligne , placez le curseur au début de la ligne suivante; puis appuyez en même temps sur SHIFT et sur la flèche vers le bas . . . Nous voulons apporter un dernier changement. Il faudrait que la lettre se termine ainsi: JE T'EMBRASSE, ANNE Il faut donc couper la ligne en deux . Placez le curseur à l 'endroit où vous voulez couper la ligne; puis appuyez sur SHIFT et flèche vers le bas pour briser la ligne. Vous devrez insérer quelques espaces pour déplacer le nom vers la droite, comme dans l 'exemple ci-dessus . Voilà, nous avons terminé notre lettre . Alors nous allons quitter le mode EDITION (appuyez sur BREAK). Pour faire une dernière vérification, retournons en mode EDITION (appuyez sur E). Pour afficher toute la lettre sur l ' écran sans appuyer à répétition sur la touche flèche vers le haut ou ENTER , appuyez sur SHIFT et sur la flèche vers le haut. Cette commande affiche tout le contenu de la mémoire . Pour arrêter le déroulement, il suffit d ' appuyer sur une touche . Pour le reprendre, appuyez de nouveau sur SHIFT et sur la flèche vers le haut. Pour revenir au début du texte, appuyez sur CLEAR . C'est tout pour ce qui est de l ' utilisation de l ' éditeur. Nous vous conseillons de pratiquer un peu pour que, quand vous retournerez au LOGO Couleur, vous puissiez vous concentrer sur le langage sans avoir à vous inquiéter du fonctionnement de l 'éditeur. Pour terminer ce chapitre , voici un résumé des fonctions d 'édition: Pour: Appuyer sur: passer en mode EDITION BREAK , E afficher la ligne suivante du texte flèche vers le HAUT ou ENTER (flèche vers le HAUT sans effet à la dernière ligne ENTER ajoute une ligne après la dernière ligne) 15 ajouter une ligne à la fin ENTER, inscrire la ligne de texte abaisser le texte d' une ligne flèche vers le BAS (sans effet sur la lère ligne) déplacer le curseur vers la droite flèche vers la DROITE (sans effet à la fin de la ligne) déplacer le curseur vers la gauche flèche vers la GAUCHE (sans effet au début de la l igne) remplacer un caractère placer le curseur, écrire par i nsérer un caractère placer le curseur, SHIFT et flèche vers la DROITE (sans effet si la ligne est pleine) , inscrire le caractère supprimer un caractère placer le curseur, SHIFT et flèche vers la GAUCHE insérer une ligne placer le curseur au début de la ligne suivante , SHIFT et flèche vers le BAS couper une ligne placer le curseur au point de rupture, SHIFT et flèche vers le BAS revenir à la 1 ère ligne CLEAR faire défiler le texte SHIFT et flèche vers le HAUT arrêter le déroulement appuyer sur n ' importe quelle touche 16 dessus l 'erreur 4. PROCEDURES Vous connaissez maintenant cinq commandes élémentaires de la tortue ( EFFACE , AVANT, ARRIER E , DROITE et GAUCHE) . Nous allons les rassembler en un groupe que nous appellerons une procédure . Tout d 'abord , il faut dire à l ' ordinateur de ne pas obéir à chacune des commandes au fur et à mesure de leur inscription , mais plutôt de les enregistrer. C ' est ce qui se passe en mode EDITION. Appuyez sur BREAK, puis appuyez en même temps sur la touche SHIFT et sur CLEAR (pour éliminer les anciens programmes de la mémoire) . Puis, passez en mode EDITION (appuyez sur E) . L'écran devrait être vide et le curseur se trouver dans le corn inférieur gauche. Si l'écran n'est pas effacé, retournez en mode BREAK (en appuyant sur la touche BREAK) , appuyez en même temps sur la touche SHIFT et fermement sur la touche CLEAR . Revenez en mode EDITION en appuyant sur E . Vous vous servez maintenant de l'éditeur de ligne . Vous allez avoir l 'occasion de l ' utiliser au fur et à mesure que nous créerons et éditerons des procédures . Notre premier exercice consistera à écrire une procédure pour dessiner un rectangle . Il faut commencer par donner un nom à la procédure. Nous l ' appellerons "RECTANGLE" . Sur la première ligne de la procédure, nous allons écrire son nom, mais pour faire savoir à l 'ordinateur qu' il s ' agit d' une procédure, nous écrivons le mot clé "FAIS" au début de la première ligne . Pour nommer cette première procédure RECTANGLE, inscrivez: FAIS RECTANGLE Les noms de procédures sont limités par les exigences suivantes: ils doivent pouvoir s 'écrire sur une seule ligne , ils ne doivent pas contenir d'espaces et ils ne doivent pas être les mêmes que les mots clés ou les abréviations (par exemple, AVANT ou AV) . S i vous faites une faute de frappe e n mode EXECUTION , vous recevez l e message d'erreur "JE NE CONNAIS PAS" suivi de la commande mal inscrite . Puisqu ' un nom de procédure peut être presque n ' importe quoi , l 'ordinateur suppose que tout caractère qui ne forme pas un mot clé correct doit être un nom de procédure . S ' il y a vraiment une faute de frappe, l 'ordinateur ne trouve pas le nom dans la liste des procédures et affiche un message d 'erreur. Ensuite, inscrivez les commandes de la tortue pour dessiner le rectangle . C 'est-à-dire, inscrivez: AV 50 DR 90 AV 30 DR 90 AV 50 DR 90 AV 30 Il est permis d ' inscrire plusieurs commandes sur une seule ligne, à condition qu'elles soient séparées par un ou plusieurs espaces . Pour terminer la procédure, inscrivez: FIN sur une nouvelle ligne et appuyez sur ENTER. 17 Pour essayer Je RECTANGLE, vous devez quitter Je mode EDITION (en appuyant sur la touche BREAK) et passer en mode EXECUTION (en appuyant sur la touche X ) . Pour exécuter la procédure , inscrivez: RECTANGLE C ' est si amusant que nous allons recommencer et recommencer. Inscrivez Je nom de la procédure au moins trois autres fois. L'écran devrait alors afficher ce qui suit: En inscrivant la procédure RECTANGLE dans la mémoire de l 'ordinateur, nous avons appns a la tortue à comprendre un mot nouveau . Maintenant, elle comprend RECTANGLE, aussi bien que GAUCH E , DROITE, AVANT et ARRIERE. Avant de passer à d 'autres procédures, nous allons faire une revision de l ' utilisation de l ' éditeur. Appuyez sur BREAK pour revenir en mode BREAK et appuyez sur E pour entrer en mode EDITION . L'écran devrait maintenant afficher la première ligne de la procédure RECTANGLE. Changeons le nom en "BOITE". Servez-vous de la flèche vers la droite pour mettre le curseur sous le R de RECTANGLE, puis inscrivez BOITE . Souvenez-vous de la surimpression: inscrire les lettres à inscrire par dessus les anciennes pour les remplacer. Effaçons les lettres en trop en appuyant en même temps sur la touche SHIFT et sur la flèche vers la gauche . Nous pouvons voir les autres lignes de la procédure en appuyant plusieurs fois soit sur ENTER , soit sur la touche flèche vers le haut. 18 Un bon programmeur présente c lairement la structure d' une procédure en mettant des paragraphes en retrait. Voici la présentation de la procédure BOITE: FAIS BOITE AV 50 DR 90 AV 30 DR 90 AV 50 DR 90 AV 30 FIN Pour faire ces changements , il faut insérer deux espaces au début des deuxième et troisième lignes . Déplacez la deuxième ligne vers le bas de l ' écran en vous servant des touches flèche vers le haut et flèche vers le bas . Le curseur se place en début de la ligne chaque fois que vous changez de ligne . Pour insérer les espaces, appuyez en même temps sur la touche SHIFT sur la touche flèche vers la droite . S ' i l n'y a pas d ' insertion d'espace , c ' est que la l igne est déjà pleine . Insérez des espaces au début de la ligne 3 également. La structure de la procédure serait même plus claire si on la présentait ainsi: FAIS AV AV AV AV FIN BOITE 50 DR 90 30 DR 90 50 DR 90 30 Ces changements exigent que nous scindions les lignes. Pour couper une ligne, placez le curseur à l'endroit où vous voulez la coupure, appuyez en même temps sur la touche SHIFT et sur la flèche vers le bas . Et comment faire pour ajouter des l ignes à une procédure? Par exemple, si nous voulions ajouter une ligne diagonale à travers la boîte? Eh bien , i l faudra dire à la tortue de tourner et d 'avancer. Il vaudrait mieux exécuter la procédure BOITE pour avoir une idée de l ' angle et de la distance (souvenez-vous: appuyez sur BREAK, puis appuyez sur X et inscrivez BOITE). Il faut tourner la tortue de plus de 90 degrés pour qu'elle s'oriente dans le sens de la diagonale. Essayez de deviner et retournez en mode EDITION (BREAK, E) . Maintenant, placez le curseur sous la lettre F du mot FIN; appuyez en même temps sur la touche SHIFT et sur la flèche vers le bas. Cette commande permet d ' insérer une ligne vide (essayez la flèche vers le haut pour constater que FIN est descendu d' une l igne) . Maintenant, vous pouvez insérer vos commandes DR et AV dans cette nouvelle l igne vide . B ien entendu, il faudra plusieurs essais pour arriver à la longueur et à l ' angle précis; ce sera un bon exercice d ' aller-retour entre les modes EXECUTION et EDITION. (Inutile de faire appel à vos connaissances en trigonométrie; avec les tortues , vous êtes censé expérimenter. ) Dans ce chapitre, nous avons étudié deux sujets principaux. Nous avons appris a ecnre et à modifier des procédures à commandes multiples et nous savons comment apprendre à la tortue à comprendre un plus grand nombre de commandes complexes à l ' aide des procédures . 19 5. REPETITIONS ET SOUS-PROCEDURES Une fois que nous avons appris à la tortue un mot nouveau grâce à une procédure, il peut nous servir dans d 'autres procédures . Retournez en mode EDITION et supprimez les commandes servant à dessiner la diagonale U'ai utilisé DR 1 22 AV 59) de BOITE . Maintenant, passez à une nouvelle l igne (appuyez sur ENTER) . En fait , passer un ligne entre les procédures en facilite la lecture; puis appuyez sur ENTER de nouveau . Nous allons écrire une autre procédure pour dessiner l a forme de quatre boîtes. Nous l 'appellerons "QUATRE"; inscrivez: FAIS QUATRE BOITE BOITE BOITE BOITE FIN Remarquez que nous avons utilisé BOITE comme commande de tortue de la même façon que nous nous sommes servis de AVANT et de DROITE dans BOITE. Exécutez QUATRE pour en vérifier le fonctionnement. Le résultat est le même qu'à la page * 1 8. Pour exécuter l a procédure QUATRE , l ' ordinateur doit avoir à sa disposition la sous-procédure BOITE. Les deux procédures doivent être dans la mémoire de programme lors de l 'exécution, mais leur ordre n ' a pas d ' importance . Nous aurions pu écrire QUATRE en premier et BOITE ensuite, et nous aurions obtenu exactement le même résultat. Il est possible de raccourcir la procédure QUATRE grâce à l ' instruction REPETE. QUATRE prend alors la forme suivante: FAIS QUATRE REPETE 4 (BOITE) FIN "REPETE" dit à la tortue de répéter le nombre de fois indiqué les actions placées entre les parenthèses; soit quatre fois dans le cas qui nous intéresse . L'espace après le nombre quatre est facultatif. Les parenthèses peuvent inclure toute une l iste de commandes de la tortue et de noms de sous-procédures. La liste entre parenthèses peut s'étendre sur plusieurs l ignes, mais les parenthèses sont obligatoires. Maintenant que nous avons appris à la tortue ce que signifie QUATRE, nous pouvons passer à une procédure de niveau supérieur. Essayons: FAIS BEAUCOUP REPETE 10 (QUATRE DR 9) FIN 21 Sans doute êtes-vous maintenant un peu fatigué de suivre le manuel et votre curiosité est-elle piquée au vif. Qu ' arriverait-il si je changeais le nombre de REPETE dans BEAUCOUP? Et qu'arriverait-il si je changeais l ' angle dans BEAUCOUP? Et si je rétablissais les commandes pour tracer la diagonale dans BOITE? N'hésitez pas à essayer; c'est l'objet même du LOGO Couleur. Essayez des angles différents, des pentagones , des hexagones, au lieu de vous contenter de carrés et remplacez les quatre par des cinq ou des trois . Voici un autre exemple: FAIS LOSANGE AV 50 GA 45 AV 50 GA 1 35 AV 50 GA 45 AV 50 FIN FAIS LOSANGE2 REPETE 29 (LOSANGE DR 40) FIN 22 Le LOGO Couleur est un langage structuré . Un programme complexe écrit en LOGO Couleur pourrait avoir la structure suivante: Chaque lettre dans un carré représente une procédure; chaque alignement horizontal comprend les sous-procédures d ' un niveau donné; les l ignes relient les sous-procédures aux procédures qui les utilisent. Ce programme comporte quatre niveaux de procédures. La procédure principale A (niveau 0) pourrait utiliser les sous-procédures du niveau 1 dans l 'ordre B , C, D, C . La sous-procédure B pourrait utiliser les sous-procédures du niveau 2 dans l ' ordre E, F, E; la sous-procédure C peut utiliser les sous-procédures du niveau 2 dans l 'ordre G, F, H, etc . Remarquons que les sous-procédures peuvent être utilisées bien des fois et à maints endroits dans l'ensemble du programme . Jusqu'ici , dans nos exemples , nous avons travaillé de bas en haut, défi nissant une première procédure, puis en écrivant une seconde qui utilise la première comme sous-procédure, etc . Cette façon de procéder est typique des manuel s de programmation dans lesquels on s ' intéresse au processus du langage plutôt qu'à l a résolution des problèmes . I l est parfois amusant d' adopter cette méthode avec le LOGO Couleur, parce q ue les résultats qu'elle donne sont souvent imprévisibles et intéressants . Cependant, en devenant de plus en plus sérieux , nous aurons souvent des problèmes à résoudre, et il nous faudra travailler du haut vers le bas . Illustrons le processus. Le problème sera de créer la figure suivante: 23 Evidemment, la figure est symétrique au point où elle se répète. En plus, le nombre des répétitions doit être de six . L'important, c 'est de reconnaître que l ' é lément qui se répéte six fois est un carré renfermant un cercle . Donc , notre principale procédure devrait être: FAIS FIGURE REPETE 6 (CARRE··CERCLE DR 60) FIN La symétrie à six côtés nous dit de répéter six fois avec des angles de 60 (comme 6 * 60 360) . Mais nous ne savons pas encore comment dessiner un carré renfermant un cercle. Maintenant, nous passons au niveau inférieur suivant. FAIS CARRE-CERCLE CARRE CERCLE FIN Encore une fois , nous allons subdiviser la tâche en éléments plus simples . Cette fois , la répartition est évidente: on dessine un carré avec un cercle à l ' intérieur en dessinant un carré et puis un cercle. Maintenant, descendons au niveau 2. La procédure pour dessiner un carré est assez évidente: FAIS CARRE REPETE 4 (AV 70 DR 90) FIN Nous aurons notre carré , mais il y encore une difficulté . Il faut aussi dessiner un cercle à l ' intérieur du carré et CARRE laisse la tortue à un coin du carré . Le coin est un endroit plutôt bizarre pour commencer à dessiner un cercle qui doit être à l ' intérieur du carré . Cet exemple prouve que pour pouvoir utiliser des procédures ensemble , il faut veiller à bien les harmoniser. Le cercle et le carré entrent en contact au milieu des côtés . Il faudra donc intégrer les deux procédures en commençant et en finissant le carré au centre d'un côté . 24 FAIS CARRE REPETE 4 (AV 35 DR 90 AV 35) FIN comment allons-nous faire dessiner un cercle par la tortue? Une bonne façon de le savoir, c'est de jouer à la tortue . Marchez en cercle et pensez à ce que vous faites en fonction des commandes de la tortue. Vous verrez que, pour décrire un cercle, il faut avancer un peu puis tourner un peu jusqu' à ce qu'on ait fait un tour. Le mei lleur cercle devrait s'obtenir par la commande suivante , n 'est-ce pas? Maintenan t , , FAIS CERCLE REPETE 360 (AV 1 DR 1 ) FIN avez tort ! Ces instructions nous donnent une figure à huit côtés. (Je vais vous expliquer pourquoi , mais si vous trouvez que c ' est trop difficile, passez le paragraphe suivant . ) Quand une tortue avance d'un pas, elle peut prendre huit directions . Vous 8 1 2 7 X 3 6 5 4 qui pointe droit en avant (vers le 1 ) . Nous la tournons un petit peu, disons de cinq degrés vers la droite. Les deux seules possibilités sont d ' al ler vers le carré l ou vers le carré 2, et le carré 1 est plus près de la direction correcte que Je carré 2 . Puisque le LOGO Couleur ne connait que les nombres entiers, on suppose que la tortue est dans le centre du carré 1 , et le processus se répète au déplacement suivant. Avec de plus grands pas , la tortue peut se déplacer vers un plus grand nombre de carrés et Je cercle devient plus régulier. En général , évitez les petits pas et les petits angles. I l s donnent de mauvais résutats . Au début, la tortue La procédure suivante permet de dessiner un cercle assez régulier: FAIS CERCLE REPETE 36 (AV 6 DR 1 0) FIN Nous retombons sur le même problème que pour la première procédure de carré: le cercle ne sera pas au centre du carré.. Nous pouvons régler Je problème en remarquant qu'en fait, ce que nous dessinons , faible résolution de c'est un polygone à 36 côtés qui ressemble à un cercle, en raison de la l'écran. Le principe est le même qu' auparavant; commençons au milieu du côté. FAIS CERCLE REPETE 36 (AV 3 DR 1 0 AV 3) FIN Maintenant , exécutez FIGURE pour vérifier s1 cet ensemble de procédures est bien une solution au problème d ' origine . 25 Analysons ce que nous venons de faire . La carte routière pour aborder le problème , c 'était de le diviser en un ensemble de sous-problèmes, et ensuite de répartir chacun des sous-problèmes en sous-problèmes encore plus simples jusqu'à ce que les sous-problèmes puissent être résolus par un simple énoncé REPETE. En fait, nous avons divisé le problème d 'origine en un problème qui consiste à dessiner CARRE-CERCLE six fois; nous avons divisé CARRE-CERCLE en problèmes consistant à dessiner un carré et à dessiner un cercle. Ces deux derniers problèmes ont été facilement résolus avec un simple énoncé REPETE . En général , nous suivons cette séquence pour nous attaquer à un problème, même si nous n 'affirmons pas que la procédure du niveau le plus bas consiste en un simple énoncé REPETE . Le LOGO Couleur est utile aux enfants , car i l constitue entre autres un excellent moyen de leur enseigner une méthode de résolution des problèmes puissante et générale , méthode que nous venons d ' il lustrer. Fondamentalement, elle oblige à analyser du général au particulier en subdivisant chacun des problèmes en ses éléments constitutifs . 26 6 . LES VARIABLES On se sert du mot "Variable" pour décrire les adresses où sont conservés les nombres . Une variable se compose du signe "deux-points"(:) suivi d ' un mot pouvant comprendre plusieurs lettres ou chiffres . Il est toujours possible de remplacer un nombre par une variable, ce qui élargit considérablement le champ d' application des procédures. Voici un exemple type de l 'utilisation d'une variable: FAIS CARRE :COTE REPETE 4 (AV :COTE DR 90) FIN Si vous arrivez en droite ligne du chapitre précédent, vous avez une autre version de CARRE en mémoire. En mode BREAK , pour effacer la mémoire , appuyez sur SHIFT CLEAR . Ensuite passez en mode EDITION et inscrivez la nouvelle version de CARRE. Maintenant, pour exécuter CARRE, passez en mode EXECUTION et inscrivez: CARRE 40 Etant donné que nous avons inséré la variable :COTE dans l 'énoncé FAIS, il faudra lui donner une valeur !osque nous appellerons ou utiliserons la procédure CARRE. Maintenant, essayez avec plusieurs autres nombres, par exemple: CARRE 60 CARRE 20 Qu'arrive-t-il si nous oublions le nombre? Essayez: CARRE Si nous ne mettons pas de nombre, l 'ordinateur fournit un zéro à la place. Le bref clignotement provient du fait que la tortue tourne sur place en dessinant un carré dont les côtés ont une longueur de zéro. On peut également utiliser des variables dans d 'autres positions . En voici un autre exemple: FAIS DESSIN :LONGUEUR :FOIS REPETE :FOIS (CARRE :LONGUEUR DR 360/:FOIS) FIN Inscrivez-le et essayez de l 'exécuter avec quelques valeurs différentes de :FOIS et de :LONG UEU R . Par exemple: DESSIN 40 24 DESSIN 50 1 0 27 L'ordinateur suit les variables dans l 'ordre dans lequel elles sont données. Puisque l 'ordre des variables dans l ' énoncé FAIS DESSIN est :LONGUEUR :FOIS , la commande DESSIN 40 24 affecte la valeur 40 à :LONGUEUR et la valeur 24 à :FOIS . Remarquons en outre que le nom de la variable dans l ' appel de CARRE (CARRE :LONGUEUR) n ' est pas nécessairement le même que le nom dans la définition de CARRE (FAIS CARRE :COTE) . Au moment où l 'on appelle CARRE , :LONGUEUR a une valeur (par exemple, 40) qui est affectée par CARRE à la variable :COTE . Les variables figurant dans l 'énoncé FAIS sont des variables locales. Une fois de plus, nous i l lustrerons ce principe à l ' aide des programmes précédents . Inscrivez: FAIS DESSIN :LONGUEUR :N 1 REPETE :N (CARRE :LONG UEUR DR 360/:N) FIN FAIS CARRE :N REPETE 4 (AV :N DR 90) FIN Ici, on se sert de la variable :N pour deux quantités différentes , l ' une dans la procédure principale DESSIN et l ' autre dans l a sous-procédure CARRE. Il n 'en résulte ni problèmes ni confusion , parce que les variables des deux procédures restent tout à fait séparées dans la mémoire. La variable :N de la procédure principale n'est pas emmagasinée au même emplacement de mémoire que la variable :N de la sous-procédure . Si nous voulons qu ' une variable soit considérée comme locale pour une procédure, i l faut l ' indiquer dans l 'énoncé FAIS qui introduit l a procédure . Une procédure ne peut avoir plus de cinq variables locales . Nous pouvons aussi créer des variables globales , variables qui occupent en commun un même emplacement de mémoire dans toutes les procédures où elles figurent. On crée des variables globales en les utilisant dans une procédure sans les inclure dans l 'énoncé FAIS. C ' est un moyen pratique de partager l ' information entre les procédures. 28 DESSIN renferme notre premier exemple d'expressions arithmétiques, ici 360/:N. Le LOGO Couleur permet d'exécuter les quatre opérations arithmétiques normales: addition ( + ) soustraction (-), multiplication ( * ) , et division (.!). Aucune parenthèse n ' est requise, sauf si les opérations ne sont pas dans l 'ordre normal . II n 'est pas tenu compte des parties fractionnaires . Ainsi , en LOGO Couleur: , 5 / 3 1 2 * 3 + 4 2 * ( 3 + 4) = = = 10 14 On peut uti l iser les nombres de -32768 à 32767 . Pour éliminer le signe d'un nombre, utiliser la fonction ABS (" ABS - 1 0 vaut + 1 0"). " Les procédures suivantes donnent d 'autres exemples de l ' utilisation des variables et des expressions arithmétiques. FAIS FIORITUR E AV 7 REPETE S (AV 4 DR 45) AV 7 REPETE S (AV 4 GA 45) AV 7 FIN FAIS FIORITURES :COTE :ANGLE REPETE 360/:ANGLE (REPETE :COTE (FIORITURE) DR :ANG LE) REPETE 360/:ANGLE (REPETE :COTE (FIORITURE) GA :ANGLE) FIN Remarquez qu'on util ise deux fois le REPETE imbriqué dans FIORITURES. Si :ANGLE est égal à 1S0 et :COTE à 4 , chacune des paires de REPETE i mbriqué se répétera 2*4, soit 8 fois. Essayez: FIORITURES 1 20 FIORITURES 3 60 FIORITURES 4 90 29 30 7. LES COULEURS Les pistes de la tortue se colorent et peuvent changer de couleurs . Votre ordinateur couleur TRS-80 vous donne le choix entre deux couleurs sur l'écran à haute résolution où vit la tortue. Jusqu'ici, vous avez travaillé avec un écran de couleur 0 . La commande COULEURS vous permet de changer la couleur de l ' écran . Passez en mode EXECUTION et inscrivez: COULEURS 1 pour changer la couleur de l'écran . Puis mscnvez COULEURS 0 pour revenir à la couleur de départ . Chaque jeu de couleurs comprend quatre couleurs numérotées 0, 1 , 2 et 3 . La couleur normale pour le dessin est la couleur 0 et la couleur de fond normale est la couleur 3 . Changez la couleur de fond en inscrivant: FOND 1 ou, en abrégé: FD 1 Changez la couleur du crayon (ou à dessin) en inscrivant CRAYON 2 ou, en abrégé: cc 2 Une partie du dessin peut être effacée en choisissant une couleur de crayon identique à celle de la couleur du fond et en dessinant sur la partie que nous voulons faire disparaître. Ajoutons de la couleur à certaines des procédures antérieures. Un choix intéressant est QUATR E . Réinscrivez BOITE (voir page 1 9) , puis inscrivez la procédure QUATRE comme suit: FAIS QUATRE REPETE 2 (CC 1 BOITE CC 2 BOITE) FIN et pour faire une expérience facile, transformez BEAUCOUP en: FAIS BEAUCOUP :N REPETE :N (QUATRE DR 90/:N) FIN 31 Nous aimerions pouvoir prec1ser les couleurs que vous obtiendrez avec telles ou telles couleurs de crayon et d ' écran , mais les couleurs varient d ' un téléviseur à l ' autre et selon le réglage de la couleur sur la télévision; elles peuvent même changer quand vous remettez votre ordinateur en marche. Essayez d'exécuter BEAUCOUP avec une valeur de 1 0 . Puis réglez les contrôles de couleur et de teinte de votre téléviseur à votre satisfaction . Sur certains téléviseurs , l'écran de couleur 1 donne un assortiment de couleurs plus intéressant; alors ne manquez pas de l'essayer auss1 . Vous pouvez changer la couleur de l'écran sans redessiner la figure en inscrivant: COULEURS 1 Les changements suivants créeront une variation intéressante: FAIS BOITE CC 1 AV 50 DR 90 CC 2 AV 30 DR 90 AV 50 DR 90 CC 1 AV 30 FIN 32 FAIS QUATRE REPETE 4 (BOITE) FIN FAIS BEAUCOUP :N REPETE 2*:N/3 (QUATRE DR 90/:N) FIN Essayez tortues avec :N 90 . Si c ' est trop lent, ou si vous vous inquiétez pour les pauvres petites q u i doivent se traîner aussi lamentablement, cachez la tortue (CT) avant d'appeler = BEAUCOU P . Peut-être préférerez-vous les couleurs que l 'on peut obtenir avec un fond sombre. Alors mettez le fond à 0 , et recommencez les deux exemples précédents: BEAUCOUP 1 0 et BEAUCOUP 90. 33 8. AUTRES COMMANDES DE LA TORTUE Il existe quelques autres commandes de la tortue que nous n ' avons pas encore utilisées . On peut lever et abaisser la queue de la tortue , pour qu'elle laisse ou non une trace derrière elle. Comme vous l ' aurez deviné, les commandes sont LEVE (abréviation LC) et BAISSE (abréviation BC) (Lève Crayon et Baisse Crayon) . Illustrons en effaçant les lignes d ' une couleur de la figure précédente . Transformez BOITE en: FAIS BOITE LC AV 50 DR 90 BC CC 2 AV 30 DR 90 AV 50 DR 90 LC AV 30 FIN et exécutez de nouveau B EAUCOUP 90. Jusqu' ici chaque figure commençait au CENTRE, c 'est-à-dire au milieu de l ' écran . Quand nous passons en mode EXECUTION, la tortue se rend automatiquement au centre . Mais la tortue peut partir d'ailleurs , si nous le désirons . La tortue peut être envoyée n ' importe où sur l ' écran au moyen des commandes VALX (Valeur de X: abréviation VX) et VALY (Valeur de Y: abréviation VY). Ces deux commandes donneront des résultats absolus, c 'est-à-dire qui ne dépendent pas de la position antérieure de la tortue . Aucune ligne n ' est tracée et aucun changement de direction n'est apporté. Par exemple: FAIS DOUBLE VALX 60 BEAUCOUP 90 VALX 1 80 BEAUCOUP 90 FIN 35 En outre, i l est possible de réorienter la tortue, de façon absolue, quelle que soit son orientation initiale. La commande est CCAP (Change de Cap, abréviation: VC ou VALC) . L'orientation peut être toute valeur entre 0 et 359 degrés. 0 degré signifie droit vers le haut. Essayez: FAIS DOUBLE CT vx 60 BEAUCOUP 90 vx 1 80 vc 0 BEAUCOUP 90 FIN Il reste encore une commande de la tortue: c 'est CENTRE . Cette i nstruction renvoie la tortue chez elle, soit au milieu de l ' écran , selon une orientation de 0 degré (droit vers le haut) . Les procédures qui tracent des cercles et des segments de cercles (arcs) sont très utiles pour toutes sortes d'autres travaux . La procédure CERCLE du chapitre 5 présente certains inconvénients. Il est difficile de prévoir la dimension du cercle d' après la longueur du pas , de trouver le nombre optimal de pas pour arriver au meilleur cercle et de déterminer où est le centre du cercle. Les procédures suivantes constituent une solution de rechange utile: FAIS ARC :X :Y : RAYON :DEGRE LC VX :X VY :Y REPETE :DEGRE (AV : RAYON POINT AR : RAYON DR 1 ) FIN FAIS POINT BC AV 1 AR 1 LC FIN Ces procédures sont plus lentes que CERCLE, mais elles donnent les cercles les plus précis qu'on puisse tracer sur l ' écran . Avec certaines valeurs de :RAYON , vous pourriez arriver à la même exactitude en moins de pas (par exemple, REPETE 1 80 et RT 2) , mais alors il faudrait diviser le nombre de degrés pour arriver au nombre exact de REPETE . Vous pourriez aussi vouloir agrandir les points . FAIS POINT DR 90 AR 1 BC AV 1 AV 1 AR 1 LC GA 90 FIN Le programme suivant utilise encore le VX et le VY pour arriver au bon espacement relatif des parties indépendantes . Il faut chercher les nombres corrects pour les deux par tâtonnement. Essayez les procédures avec différentes couleurs de crayon et de fond: 36 FAIS ROSACE EFFACE VX 60 VY 80 REPETE 1 8 (PENT 20 DR 20) VX 95 VY 82 REPETE 9 (PENT 1 5 DR 40) . FIN FAIS PENT :COTE REPETE 5 (AV :COTE GA 72) AV :COTE FIN 37 9. ENREGISTREMENT, CHARGEMENT ET IMPRESSION DES PROCEDURES DU LOGO COULEUR Les procédures du LOGO Couleur permettent de faire une quantité étonnante de choses avec très peu de codes, mais i l serait quand même fastidieux de réécrire les procédures chaque fois que nous remettons la machine en marche. On peut enregistrer les procédures sur cassette ou sur disquette (cassette seulement dans la version cartouche) . Pour simplifier, toutes les procédures en mémoire sont enregistrées dans un seul module et toutes les procédures d ' un module sur disquette ou cassette sont chargées en même temps en mémoire. Il n ' y a pas <f i ndex des modules (un index prendrait presque autant de place que bien des procédures du LOGO Couleur) . Pour enregistrer des procédures sur cassette ou sur disquette, ou pour les effacer, il faut passer en mode BREAK . Vous avez sans doute déjà un certain nombre de procédures en mémoire , et vous aimeriez les garder. Passez en mode EDITION e t supprimez tout c e que vous n e voulez pas conserver. (Pour supprimer une procédure, il faut l 'effacer caractère par caractère) . Puis passez en mode B REAK (touche B REAK) et appuyez sur G (pour "GARDE"). L'ordinateur affiche alors le message suivant: LOGO: GARDE: 11 faut alors dire à l ' ordinateur où garder les procédures qui sont en mémoire . Apprenons d' abord à enregistrer sur cassette . B ien entendu , il faut commencer par brancher le magnétophone, conformément aux indications fournies dans le manuel de l ' ordinateur couleur TRS-80. Assurez­ vous que la commande de volume est autour de cinq . Rembobinez la cassette (REWIND, STOP) . Ensuite, appuyez en même temps sur les touches RECORD et PLAY. Si utilisez une cassette avec amorce , retirez la fiche MIC pendant environ cinq secondes . (Pour vous assurer que vous commencerez l 'enregistrement sur la bande et non sur l 'amorce) . Vous êtes alors prêt à enregistrer vos procédures. Répondez simplement T ENTER au message qui est affiché: LOGO: GARDE : Une fois l'enregistrement terminé, l ' ordinateur affiche à nouveau l e message d u mode BREA K . Lorsqu'un chiffre e t un point d ' interrogation apparaissent après l e T, les procédures n'ont pas été enregistrées correctement. II est alors nécessaire de recommencer l ' enregistrement . Pour pouvoir utiliser une disquette en LOGO Couleur, i l faut commencer par la formater. A cette fin, on utilise la commande DSKINI0, lorsque l 'ordinateur fonctionne en B ASIC . Cependant, le LOGO Couleur n ' utilisant pas l 'index du B ASIC, une fois qu' une disquette a servi à enregistrer des programmes de LOGO Couleur, elle ne peut plus être utilisée avec les programmes BASIC. Si vous n'avez pas de disquette formatée , enregistrez vos procédures sur cassette en suivant les instructions ci-dessus , et arrêtez l 'ordinateur couleur. Puis remettez-le en marche. L'ordinateur est alors en BASIC. Insérez une disquette vierge (souvenez-vous , l ' étiquette vers le loquet) . Ensuite, inscrivez DSKIN10 et appuyez sur ENTER Si vous recevez un message d 'erreur, retirez la disquette, placez-la bien au centre de son enveloppe de papier et essayez de nouveau . Puisqu 'il est toujours utile de pouvoir conserver une copie de ses programmes sur disquette, formatez donc une seconde disquette , pendant que vous y êtes . Dès que vous recevrez la réponse "OK" , vous pourrez recharger le LOGO Couleur, en suivant les instructions du chapitre 2 , et recharger vos procédures à partir de la cassette, conformément aux explications ci-dessous. 39 Les disquettes de programmes du LOGO Couleur sont subdivisées en 1 6 modules. Chaque module occupe deux pistes ou 36 secteurs , si bien que la capacité d'un module est de 9K. Vous ne remplirez pas un module avec un ensemble de procédures, parce que les procédures du LOGO sont relativement courtes. (Si vous remplissez 9K, l'éditeur refusera d'accepter d' autres textes) . Les modules sont indexés à l ' aide des lettres A à P. Pour enregistrer toutes les procédures en mémoire sur une disquette, inscrire une lettre entre A et P en réponse au message du mode BREAK: LOGO: GARDE: Pour commencer l 'enregistrement, appuyez sur ENTER . Pendant que vous y êtes , retirez la disquette, i nsérez une autre disquette formatée et enregistrez les procédures sur le même module (appuyez de nouveau sur G , la lettre du module et sur ENTER) . Dans de rares circonstances, i l peut arriver que l 'on éprouve quelques difficultés à enregistrer des programmes sur disquette . Le problème semble provenir de la position relative de la disquette ou du câble plat et du téléviseur. Quoi qu' i l en soit, après avoir enregistré sur disquette, essayez immédiatement de recharger le module. S i le chargement ne se fait pas , vous recevrez un message d'erreur (un 6 suivi d'un point d'interrogation) , mais les procédures seront encore en mémoire et vous pourrez essayer de les enregistrer de nouveau sans avoir à les réécrire. Nous vous conseillons de rempl ir i mmédiatement une fiche pour toute nouvelle disquette de programmes de LOGO Couleur. Aucune étiquette de disquette ne sera assez grande pour vous permettre d ' y i nscrire toutes les procédures, et il n ' est pas recommandé d'écrire sur les étiquettes u ne fois qu'elles ont été apposées sur les disquettes . Ecrivez bien le nom de la disquette sur votre fiche et sur l 'étiquette de la disquette avant qu'elles ne soient séparées . Voici un exemple de fiche: Nom de la disquette: 1 A B J K L M N c D E F G H 0 p Il est tout ausssi simple de charger les programmes à partir d'une cassette et d' une disquette. Là encore i l faut passer en mode B REAK . En réponse au message du mode BREAK, appuyez sur C (pour CHARGE) . L'ordinateur affiche alors le message suivant: LOGO: CHARGE: Fournissez les mêmes réponses que pour la fonction GARDE: utilisez les lettres A à P pour charger un module à partir d'une disquette et la lettre T pour charger à partir d'une cassette. Dans les deux cas , appuyez sur ENTER pour exécuter le processus . Bien entendu, avec la cassette , il faudra régler le volume autour de 5 , rembobiner la cassette et appuyer sur la touche PLAY avant d 'appuyer sur ENTER . 40 Si vous disposez d 'une imprimante avec votre ordinateur couleur, vous pourrez imprimer toutes les procédures en mémoire . C ' est l 'ensemble qui sera imprimé, mais vous pourrez toujours interrompre l ' impression en appuyant sur BREAK sans endommager ou effacer les programmes résidant en mémoire. Pour imprimer, connectez l ' imprimante en suivant les instructions du manuel; placez le papier et mettez l ' imprimante en marche. En mode BREAK, i nscrivez: 1 pour simple i nterligne Q pour double interl igne pour procéder à l ' impression . Si vous voulez supprimer les sauts de l igne en fin de ligne (pour profiter au maximum de la largeur du papier) , passez en mode EDITION et insérez le caractère "@" à la fin de chaque ligne où vous voulez supprimer le retour de chariot et Je saut de ligne. (Pour insérer un caractère "@" dans une ligne en mode EDITION, il faut appuyer deux fois sur la touche "@") . 11 nous reste à examiner la façon d ' enregistrer les résultats, c 'est-à-dire les images sur l ' écran . Nous pensons que la meilleure méthode consiste à prendre des photographies (c'est la seule façon d'obtenir la couleur à un prix raisonnable) . Pour éviter les déformations causées par l'interaction entre l 'obturateur de l ' appareil photographique et l 'affichage vidéo, nous recommandons un temps de pose d 'une demi-seconde. Servez-vous d ' un trépied et d'un déclencheur à câble pour l 'appareil photographique . L'ouverture dépendra de la luminosité du téléviseur et bien entendu de la sensibilité de la pell icule. Au départ, il convient de régler Je téléviseur à une luminosité moyenne et de se servir d 'une ouverture d 'environ f8 pour une pellicule de sensibilité 1 00 ASA. Les rouges apparaissent plutôt brunâtres et, au développement, on a tendance à surexposer les épreuves à fond sombre . Cependant, les illustrations de ce manuel montrent bien ce que l 'on peut faire sans trop de difficultés . Pour réduire la distorsion , vous pouvez utiliser un téléobjectif. Ce chapitre est relativement court. En effet, les fonctions d 'enregistrement, de chargement et d'impression sont très faciles à exécuter. Souvenez-vous que vous disposez de beaucoup d'espace pour les procédures; en conséquence , pour un nouveau projet, si vous avez besoin de certains éléments faisant partie d ' un travail antérieur, commencez par charger celui-ci . Vous pourrez toujours effacer de la mémoire les parties inutiles, et il vous restera largement de place pour votre nouveau programme . 41 10. RECURRENCE Dans le langage du LOGO Couleur, toute procédure peut appeler toute procédure . Lorsqu 'une procédure s'appelle elle-même, nous avons affaire à une structure logique très puissante appelée récurrence . Hofstader, dans son livre «Gode!, Escher, Bach» nous en fournit un excellent exemple . Loi d' Hofstader: les choses prennent toujours plus de temps que prévu , même compte tenu de la loi d'Hofstader. Il existe deux types de récurrence. Nous commencerons par le plus facile: la récurrence dans laquelle l ' appel constitue le dernier énoncé de la procédure. Comme d'habitude, il est plus facile de raisonner sur des exemples . On peut utiliser la récurrence pour remplacer l ' instruction REPETE . FAIS CERCLE AV 3 GA 1 0 CERCLE FIN Lorsqu'on exécute CERCLE, la tortue avance de trois pas et tourne. Puis on appelle CERCLE , ce qui la fait avancer de trois pas et tourner, etc . En principe, c e processus pourrait se répéter à perpétuité. Cependant, chaque fois qu'on appelle une procédure, la mémoire se remplit partiellement. A un moment donné , la mémoire est pleine et nous recevons le message suivant: «MA M EMOIRE EST PLEINE.» Essayez. Donc , on peut utiliser la récurrence exactement comme l ' instruction REPETE, mais cette façon de procéder présente certains i nconvénients. Il faut trouver un moyen d' arrêter l 'ordinateur, sinon il va manquer de mémoire . Mais ce type de récurrence présente par ailleurs des avantages considérables . Le programme suivant figure dans tous les livres et manuels de LOGO: FAIS POLYSPI :COTE :ANGLE :PAS AV :COTE DR :ANGLE POLYSPI ( :COTE + :PAS) :ANGLE :PAS FIN Cette procédure est si amusante que nous vous i nvitons à l 'exécuter avant de passer aux explications. Un conseil avant de commencer: les figures créées déborderont certainement des limites de l'écran longtemps avant que la mémoire ne soit pleine. La fonction de bouclage de l'écran créera alors des effets frappants et curieux. Pour commencer, supprimons le bouclage . Passez en mode EXECUTION et inscrivez: OUVERT 43 Ensuite , essayez quelques variantes, par exemple: POLYSPI POLYSPI POLYSPI POLYSPI POLYSPI POLYSPI POLYSPI 1 1 1 1 1 1 1 90 1 90 5 1 20 3 1 22 3 1 44 5 1 45 1 1 76 3 �- Si vous voulez voir ce qui se produit quand l 'ordinateur permet le bouclage, inscrivez: FERME et exécutez quelques figures . Maintenant, essayons de comprendre comment fonctionne ce POL YSPI . Il est utile de subdiviser un programme en LOGO Couleur en plusieurs niveaux: le programme principal est une procédure de niveau 0 , une sous-procédure appelée du niveau 0 est de niveau 1 , une sous-procédure appelée du niveau 1 est de niveau 2 , etc . Le schéma suivant permet d 'analyser le fonctionnement d'un programme comme BEAUCOUP: Niveau 0 (BEAUCOUP) Niveau 1 (QUATRE) etc. Niveau 2 (BOITE) Le va-et-vient entre les niveaux 0 et 1 est contrôlé par l 'énoncé REPETE de BEAUCOUP (en bas au niveau 1 ) et l 'énoncé FIN de QUATRE (en haut au niveau 0) . Le va-et-vient entre les niveaux 1 et 2 est contrôlé par l 'énoncé REPETE 4 de QUATRE (en bas au niveau 2 quatre fois) et l 'énoncé FIN de BOITE (en haut au niveau 1 ) . 44 Dans un programme comme POLYSPI , le chemin est, en fait, moins compliqué: Niveau 0 (POLYSPI) Niveau 1 (POLYSPI) Niveau 2 (POL YSPI) Niveau 3 (POL YSPI) Les transitions vers le bas sont contrôlées par l'énoncé . POLYSPI ( :COTE + : PAS) :ANGLE :PAS Il n'y a pas de transitions de retour vers le haut, parce que la procédure n ' atteint jamais l 'énoncé FIN. Alors l ' ordinateur s 'enfonce d ' u n niveau à l 'autre jusqu' à ce qu' il manque de mémoire . POLYSPI donne des figures intéressantes , à cause de la différence de valeur des variables aux différents niveaux . Nous commençons le programme avec la commande: (Niveau 0) POLYSPI 1 90 5 L'appel récurrent de la procédure devient (en remplaçant par la valeur actuelle des variables): POLYSPI 6 90 5 (Niveau 1 ) Donc, au niveau 0 , l a commande A V a pour longueur 1 et, au niveau 1 , elle a pour longueur 6. La figure se poursuit avec: POLYSPI 1 1 90 5 POLYSPI 1 6 90 5 (Niveau 2) (Niveau 3) jusqu'à ce que la tortue quitte l 'écran (OUVERT) ou que l 'ordinateur manque de mémoire (FERME) . INSPI est une autre procédure du même genre . Dans ce cas, c'est l ' angle qui augmenté de façon récurrente . FAIS INSPI :COTE :ANGLE :PAS AV :COTE DR :ANGLE INSPI :COTE ( :ANGLE + :PAS) :PAS FIN Ce programme mérite aussi qu'on s'y attarde un peu . Essayez: INSPI 10 90 5 INSPI 1 0 90 3 INSPI 7 5 3 (Inscrivez d' abord VX 80 VY 1 40 pour que tout tienne sur l 'écran) INSPI 3 5 2 45 Soit dit en passant, si vous voulez vous débarrasser des caractères en bas de l ' écran, vous pouvez toujours utiliser une procédure comme celle-ci : FAIS TEST :COTE :ANGLE : PAS EFFACE INSPI :COTE :ANGLE :PAS FIN L' analyse d' INSPI ressemble tellement à celle de POLYSPI que nous ne nous donnerons pas la peine de l 'exposer ici . Examinons maintenant un genre de récurrence plus complexe dans laquelle il est possible de remonter au niveau supérieur. ARBRE est un autre programme en vogue en géométrie de la tortue: FAIS A R B R E :N 1 SI :N < 2 (ARRET) 2 3 4 5 6 7 8 9 46 AV : N DR 1 5 ARBRE (3* : N/4) GA 30 ARBRE (3* :N/4) DR 1 5 AR :N FIN Les numéros de ligne ne font pas partie de l a procédure; ce ne sont que des références pour notre exposé. Inscrivez cette procédure (sans les numéros de l igne bien entendu) et essayez de l'exécuter en donnant à :N une valeur de 20 à 30. Vous pourriez essayer de modifier un peu les facteurs numériques dans les deux appels de ARBRE (lignes 4 et 6), afin de produire un arbre asymétrique . On peut aussi modifier les angles, mais remarquez que la somme des deux virages à droite est égale au virage à gauche . Maintenant, essayons de comprendre le programme . Nous avons introduit deux idées nouvelles à la ligne 1 . La première est le SI conditionnel . Le SI doit être suivi d 'une expression ayant une valeur vraie. Dans ARBRE, l 'expression est: :N < 2 Si la valeur actuelle de :N est inférieure à 2 , cette expression est vraie et le reste de l 'énoncé sera exécuté . Si la valeur actuelle de :N est égale ou supérieure à 2, l 'expression est fausse et on sautera le reste de l 'énoncé. Le reste de l 'énoncé est mis entre parenthèses; il peut se composer de plusieurs commandes et s'étendre sur plusieurs lignes. La seconde idée nouvelle de la ligne 1 est l 'énoncé de contrôle ARRET. On l ' utilise pour mettre fin à une procédure . ARRET a le même effet que FIN, mais un énoncé FIN ne peut figurer qu'à la fin d 'une procédure . ARBRE sera plus facile à comprendre s i nous y apportons quelques simplifications . Remplacez la condition de la ligne 1 par :N < 1 8 , les virages à droite (lignes 3 et 7) par des virages à 45 degrés et le virage à gauche (ligne 5) par un virage à 90 degrés. Puis exécutez ARBRE 32 et vous obtiendrez un arbre plus simple. Le schéma et le tableau suivants donnent l 'analyse du fonctionnement de ARBRE: Niveau 0 :N 32 Niveau 1 : N 24 Niveau 2 : N 18 Niveau 3 : N 13 47 ETAPE :N DEBUT FIN a 32 0 R45 h 24 R90 1-4 R 1 35 R l 35 1 R90 e 18 R 1 35 g h 24 J 13 R4 5 13 L45 13 f 13 18 18 k 18 1 m n 0 p 18 24 32 24 1 -4 R45 18 c d LIGNES R 1 35 R45 1 -4 S,6 1 R45 R4 3 R90 0 5,6 R4 5 1 R4 5 R90 0 R45 R45 L4 5 L45 0 R45 L45 L45 0 7-9 1 ,4 5,6 1 7-9 R4 5 7-9 0 1 -4 L45 5.6 etc. Commençons par examiner le schéma. Le programme essaie de descendre au niveau le plus bas de la procédure j usqu' à ce que l 'énoncé ARRET ou l 'énoncé FIN le force à remonter. Grâce à une méthode que nous expliquerons au chapitre 1 4 , nous pouvons exécuter le programme étape par étape: inscrivez: COUVE 1 ARBRE 32 Maintenant, chaque fois que vous appuierez sur ENTER , l 'ordinateur exécutera une instruction de la procédure. Par exemple , dès le début (étape A), le premier ENTER exécute SI :N < 1 8 , l e second ENTER exécute A V : N (que vous pouvez voir) , l e troisième ENTER exécute D R 45 (visible également) , et le quatrième ENTER exécute l ' appel par récurrence. Il est possible de suivre exactement le tableau, mais il faut bien comprendre que l 'énoncé SI :N < 1 8 (ARRET) est un énoncé unique si la condition est fausse, mais qu'il constitue deux énoncés si la condition est vraie (il exécute l ' ARRET) . Chaque étape du tableau comprend toutes les lignes exécutées à partir du moment où l ' on accède à un niveau et jusqu'à ce qu'on le quitte . Il y a trois façons de quitter un niveau: par ARRET ou par FIN , qui mettent fin à la procédure de ce niveau et remontent; ou par appel d 'une autre procédure, qui laisse la procédure en cours en supens et descend. Plutôt que de donner une longue explication sur ce qui se produit, nous vous recommandons d 'exécuter le programme étape par étape et de comparer le tableau et le déroulement du programme. Si vous ''OUS perdez en route, recommencez. La récurrence est un peu complexe, mais elle est si puissante qu'elle mérite bien qu'on fasse un petit effort pour la comprendre. 48 Le programme suivant dessine une figure appelée "fractal". Il s ' agit d' une figure qui reste semblable à elle-même , même lorqu'on l ' agrandit considérablement (bien entendu , nous sommes limités ici par la résolution de l ' écran ) . Dans cet exemple , nous commencerons par la forme élémentaire: __/\_ Chacune de ces quatre l ignes devrait elle-même avoir la forme élémentaire . A un niveau de détail plus poussé, voici ce que nous obtenons: Chacune des l ignes de ce dessin est à son tour constituée des quatre l ignes de la forme élémentaire, etc. Voilà un cas parfait de récurrence. FAIS FRACTAL :N SI :N < 1 5 (AV : N ARRET) FRACTAL ( : N/3) GA 60 FRACTAL ( : N/3) DR 1 20 FRACTAL (:N/3) GA 60 FRACTAL ( : N/3) FIN Exécutez FRACTAL 50 et vous verrez apparaître la figure. (Peut-être voudrez-vous i nscrire DR 90 et VX 0 avant d 'exécuter FRACTAL 50 , pour faire pivoter la figure et la placer dans la même position que dans le manuel) . Remarquez que le segment est divisé en tiers; c ' est la raison pour laquelle nous divisons par trois à chaque appel récurrent. Cependant, la longueur globale peut varier quelque peu , selon l 'énoncé SI conditionne l , en raison des pertes par arrondissement lors des opérations arithmétiques sur les entiers . Pour mettre ce phénomène en évidence, vous pouvez remplacer la condition par quelque chose de détaillé, comme :N < 4. La figure ressemble au contour d ' un flocon de neige . A lors , pourquoi ne pas lui donner six côtés? 49 FAIS FLOCON :N EFFACE REPETE 6 (FRACTAL :N DR 60) FIN Il faudra peut-être modifier la position de départ (VX et VY) et la dimension pour obtenir une belle figure sans bouclage . Peut-être préférez-vous FLOCON avec trois côtés à 1 20 degrés. Il existe encore d' autres variantes . Nous pouvons remplacer AV :N dans l 'énoncé SI par une série de commandes plus élaborées. En voici quelques exemples: FAIS FLOCON :N EFFACE vx 50 VY 50 REPETE 3 (FRACTAL :N DR 1 20) FIN Remplacez l 'énoncé conditionnel de FRACTAL par: SI :N < 9 (AV : N/4 DR 80 AV :N GA 1 60 AV :N DR 8 0 A V : N/4 ARRET) et exécutez: FLOCON 1 50 En vo1c1 encore une autre variante: SI :N < 9 (AV : N/4 DR 80 AV 2* :N GA 1 60 AV 2*:N DR 80 AV :N/4 ARRET) 50 Exécutez: FLOCON 1 50 FLOCON 70 On peut se servir de la récurrence pour dessiner un nombre infini de figures de remplissage . Voici un exemple classique: FAIS FOO :COTE : NIVEAU :PARITE CT SI :NIVEAU 0 (ARRET) GA : PARITE*90 FOO :COTE ( :NIVEAU-1 ) ( : PARITE*-1 ) AV :COTE DR : PARITE*90 FOO :COTE ( : NIVEAU-1 ) :PARITE AV :COTE FOO :COTE ( : NIVEAU-1 ) :PARITE DR : PARITE*90 AV :COTE FOO :COTE ( : NIVEAU-1 ) (: PARITE*-1 ) GA : PARITE*90 FIN = 51 Vous pouvez utiliser les paramètres suivants: FOO 6 6 1 Dans ce chapitre, nous avons essayé de vous donner quelques idées de programmes util isant le principe de la récurrence . Cependant, nous n ' avons fait qu'effleurer les multiples possibilités de création du LOGO Couleur. Allez-y, pratiquez et montrez à vos amis les magnifiques figures que vous aurez inventées . 52 11. MODE DESSIN - PROCEDURES SANS DACTYLOGRAPHIE Le LOGO Couleur comporte un mode dans lequel il est possible d'écrire des procédures graphiques sans avoir à i nscrire les commandes telles que AVANT ou DROITE. Il a été conçu pour permettre aux jeunes enfants qui ne savent encore ni lire ni écrire d 'utiliser le langage et de pouvoir pratiquer les principes de la pensée structurée qui le caractérisent. Les fonctions du mode DESSIN ont été spécialement prévues pour ce genre d'usagers . Naturellement, ces enfants ne pourront pas lire le manuel , il faudra donc que les parents ou un enseignant guident leurs pas . Dans le présent chapitre et dans le suivant, nous allons présenter deux méthodes d ' utilisation du LOGO Couleur avec les enfants . On trouvera au chapitre 1 3 quelques activités suggérées pour les enfants. Le présent chapitre , quant à lui, est consacré au fonctionnement du mode DESSIN . Le principe du mode DESSIN, c 'est de permettre par pression sur une seule touche de fournir une instruction graphique à l 'ordinateur: un certain nombre de commandes simples ont été ainsi programmées . Avant de commencer, prenez la grille de recouvrement de clavier fournie avec le LOGO Couleur, et placez-la sur le clavier. Les symboles qui se trouvent au-dessus de la première rangée de touches i ndiquent les fonctions accessibles par les touches numériques en mode DESSIN (voir appendice 1 , page 1 1 9). En mode DESSIN , ces symboles sont affichés en bas de l 'écran lorsqu'on appuie sur les touches, et apparaissent dans les procédures ainsi créées. En mode EXECUTION, appuyez sur la touche «@» pour passer au mode DESSIN, ce qui affiche un signe «égale» en bas de l 'écran . Il faut alors donner un nom à la procédure que vous allez créer. Inscrivez simplement le nom que vous désirez; vous pouvez n 'utiliser qu' une seule lettre ou un seul chiffre si vous voulez. Après avoir écrit le nom , appuyez sur ENTER . L'ordinateur est maintenant en mode DESSIN et les touches de la rangée supérieure du clavier donnent les fonctions i ndiquées ci-dessous: ( 1 ) E FFACE (5) DR 45 (9) DR 1 5 (2) CENTRE (6) GA 45 (0) GA 1 5 (3) LEVE (7) AV 1 (4) BAISSE (8) AV 1 0 Essayez-les une par une. B ien entendu, la touche 1 (EFFACE) efface l ' écran et vous n 'aurez pas grand'chose à voir. Notez la correspondance entre les symboles sur les touches , les symboles en bas de l 'écran et l ' action de la tortue. Rappelez-vous qu'un seul virage de 1 5 degrés ne suffit pas à faire tourner la forme de la tortue: il faut en exécuter trois d 'affilée . Alors maintenant que vous avez une petite idée du mode DESSIN, essayons de faire quelque chose d'utile. Pour repartir à neuf, appuyez sur BREAK pour passer du mode DESSIN au mode BREA K . Effacez la mémoire réservée aux procédures en appuyant sur SHIFT CLEAR . Passez en mode EXECUTION (appuyez sur X) , puis en mode DESSIN (appuyez sur le @). La raison pour laquelle nous passons toujours par le mode EXECUTION pour nous rendre en mode DESSIN, c'est q u ' i l est parfois intéressant de présenter des figures sur l'écran en mode EXECUTION, pour qu'ensuite l ' enfant réagisse, ou les copie , en mode DESSIN . Remarquez que l'écran ne s 'efface pas, lorsqu'on passe en mode DESSIN. Appelons «S» la procédure que nous allons créer (inscrivez S et appuyez sur ENTER) . 53 Commençons par dessiner une boîte en nous servant des touches de la rangée supeneure . Une fois la boîte terminée , quittez le mode DESSIN en appuyant sur la touche BREAK. Puis passez en mode EXECUTION et exécutez la procédure S . La seule différence entre celle-ci et la procédure que nous appelions BOITE plus tôt , c ' est que S s 'exécute un peu plus lentement. Pour constater que S existe vraiment sous forme de procédure , passez en mode EDITION et examinez-la. Remarquez qu'elle est affichée avec les symboles exacts utilisés lors de sa définition. Nous pouvons, en fait , éditer S en mode EDITION , comme toute autre procédure. Par exemple, nous poumons ajouter une diagonale à la boîte de différentes façons. Nous pouvons ajouter des instructions que nous connaissons déjà bien , comme: DR 45 AV 60 Ce qui démontre qu'on peut allier les commandes du mode DESSIN aux commandes ordinaires . Cependant, en un certain sen s , cette façon d'éditer va à l 'encontre de l 'objectif du mode DESSIN, puisque l 'enfant ne pourra pas comprendre le changement. Pour qu'il lui reste compréhensible, nous éditerons en utilisant les symboles du mode DESSIN en mode EDITION . Chaque symbole du mode DESSIN peut s 'obtenir en appuyant sur «@» suivi de la touche appropriée . Dans ces condition s , les instructions nécessaires s 'écrivent grâce aux touches suivantes: @5@8@8@8@8@8@8 Soit un DR 45 (@5) suivi de six AV 1 0 (@8) . Essayez. Evidemment, ce genre d'édition serait très utile dans un cadre de travail où l'enfant utiliserait le mode DESSIN et le moniteur le mode EDITION . Toutefois, c ' est en mode DESSIN qu'il peut être utile d' apporter les corrections . Souvent, on se dit: «je n ' aurais pas dû faire ce dernier pas en avant» ou «je n 'aurais pas dû tourner aussi loin» . Pour pratiquer, passez en mode DESSIN (BREAK, X , @) et donnez un nouveau nom de procédure , par exemple B . Maintenant, touche par touche , dessinez une boîte , mais faites un pas de trop sur le dernier côté . La flèche gauche (recul) permet d'effacer le dernier pas de la procédure . Malheureusement, elle fait aussi disparaître de l'écran la liste de la procédure et efface l'écran , mais elle redessine la forme en supprimant le dernier pas . En appuyant à répétition sur la touche flèche de gauche , essayez d'effacer les pas , un à u n . La procédure corrigée est conservée en mémoire et on peut la voir en mode EDITION . Un autre genre d'édition que l 'enfant pourra vouloir faire consistera à ajouter quelque chose à la fin d' une procédure existante . Il n ' y a pas de méthode simple pour y arriver, mais il est facile de produire l'effet désiré . Passez en mode EXECUTION et exécutez la version existante de la procédure . La figure apparaît sur l'écran. Passez en mode DESSIN et donnez un deuxième nom . Remarquez que la tortue est au centre et non à la fin du dessin . Commencez la nouvelle procédure avec CENTRE (touche 2), levez le crayon (touche 3), allez à la fin du petit dessin et baissez le crayon (touche 4) . Maintenant , vous êtes prêt à terminer le chef-d 'oeuvre. Pour obtenir la forme entière lors de l'exécution , il existe deux possibilités: soit exécuter les deux procédures l ' une à la suite de l' autre , soit, en mode EDITION , supprimer l 'énoncé FIN de la première procédure et l'énoncé du nom FAIS de la deuxième procédure . Si vous retenez cette 54 dernière façon de procéder, vous pouvez aussi supprimer toutes les commandes de CENTRE jusqu'à BAISSE au début de la seconde procédure . Jusqu' ic i , nous nous sommes limités aux lignes horizontales, verticales et à 45 degrés . Et les autres angles? Il pourrait être utile de relire la partie portant sur les cercles au chapitre 5 . Nous y avions v u qu'avec u n pas e n avant d' une unité, les seuls angles possibles étaient de 45 degrés (0, 45 , 90, . . . ) . En mode DESSIN, les seuls pas en avant possibles sont d' une unité et de dix unités. Nous avons déjà dit que les seuls virages qui comptent avec un pas avant sont les virages qui sont des multiples de 45 degrés. Les seuls virages qui ont du sens avec un pas en avant de dix unités sont les multiples de 1 5 degrés . (Ce n ' est pas aussi évident ni aussi absolu que dans le cas d'un pas en avant d' une unité; alors si le problème ne vous saute pas aux yeux , essayez la procédure suivante: FAIS TEST :ANGLE DR 90 + :ANGLE REPETE 2 (AV 1 0) FIN Le critère , c 'est que 1 5 degrés représente la plus petite fraction de 45 degrés qui donne une ligne régulière de biais) . Vous pouvez, si vous le voulez, dessiner n ' importe quel angle en mode DESSIN . Il faudra simplement utiliser davantage de touches . La combinaison des touches AV 1 sans virage ou avec virage à 45 degrés permet de tracer une ligne à n ' importe quel angle . Par exemple , on pourrait tracer un tout petit angle en répétant, le nombre de fois voul u , la série AV 1 0 (touche 8) suivie de neuf AV 1 (touche 7 ) , un DR 45 (touche 5 ) , un AV 1 , et un GA 45 (touche 6) . C'est un peu lourd, mais rappelez-vous qu'on ne s'en servira guère . La plupart des jeunes enfants se contenteront de virages de 1 5 et de 45 degrés. Les imprimantes n 'ont pas les caractères du mode DESSIN . Si vous essayez d ' imprimer une procédure créée en mode DESSIN, les caractères spéciaux apparaîtront sous forme de lettres minuscules . Il n ' est donc pas pratique d ' imprimer les procédures du mode DESSIN. Remarquez aussi que le caractère « @ » a un sens particulier en mode EDITION . Si vous voulez insérer un caractère « @ » dans une ligne de procédure pour supprimer un saut de ligne à l ' impression , il vous faudra appuyer deux fois de suite sur « @ » . 55 12. DESSINS AVEC UNE SEULE TOUCHE Lorsqu'on ne cherche plus à enregistrer ni à éditer les entrées de l 'enfant sous forme de procédures, le mode DESSIN peut se prolonger en un ensemble sans fin d 'opérations à frappe unique . Pour ce faire , il faut utiliser un jeu de procédures toutes faites appelables par une seule touche, que nous appellerons le jeu I D (un doigt) . Pour commencer, .définissons un ensemble de procédures comportant des noms à un seul caractère. Puis, en appuyant sur la touche correspondante et sur ENTER , nous pourrons exécuter l ' action désirée. C ' est plus facile à faire qu'à dire . Dans u n premier temps , il faut définir u n ensemble d e procédures qui coïncide avec chacune des touches du mode DESSIN. Puisque nous n ' allons ni enregistrer, ni éditer les procédures , nous ne dessinerons pas les symboles spéciaux au bas de l ' écran (si nous le voulions, nous pourrions les dessiner avec les commandes de tortue) . Effacez la mémoire et inscrivez les procédures suivantes: FAIS 1 E FFACE FIN FAIS 2 CENTRE FIN FAIS 3 LC FIN FAIS 4 BC FIN FAIS 5 DR 45 FIN FAIS 6 GA 45 FIN FAIS 7 FAIS 8 AV 1 FIN AV 1 0 FIN FAIS 9 DR 1 5 FIN FAIS 0 GA 1 5 FIN Cet ensemble de procédures permettra à l 'enfant de déplacer la tortue librement sur l'écran en mode EXECUTION en se servant des touches qu'il connaît déjà en mode DESSIN. Les avantages de cette méthode deviennent manifestes lorsqu'on allonge la liste des procédures. Voici quelques procédures caractéristiques: FAIS T VC 0 CT BC AV 8 DR 1 50 AV 1 5 TRI 1 5 VC 0 AV 5 LC MT FIN 57 FAIS TRI :COTE SI :COTE < 2 (ARRET) REPETE 3 (DR 1 20 AV :COTE) TRI ( :COTE-2) FIN T dessine un triangle . Vous vous demanderez peut-être pourquoi T est si compliqué; après tout, nous pourrions très bien dessiner un triangle comme suit: FAIS TVITE REPETE 3 (AV 1 5 DR 1 20) FIN Le problème, c ' est que l 'orientation d ' un triangle dessiné par TVITE dépend de l ' orientation préalable de la tortue . Dans les exercices auxquels nous songeons, nous voulons que le sommet du triangle soit orienté vers le haut (VC 0) . Nous voulons aussi colorier le triangle et le dessiner autour de la position de départ de la tortue. Donc , nous utilisons la procédure TRI et nous avançons de huits unités avant de commencer le triangle. En cachant la tortue , on gagne de la vitesse. TRI fonctionne par récurrence et dessine un triangle plei n . Pour le remplir complètement, il faut commencer au sommet approprié du triangle (ce n ' est pas évident, mais c'est une conséquence de la façon dont l ' ordinateur couleur produit les couleurs en haute résolution) . La ligne DR 1 50 AV 1 5 de T nous fait changer de sommet. Vous pourriez essayer de remplacer cette ligne par DR 30 pour obtenir un triangle hachuré et modifier TRI avec REPETE 4 (DR 1 29 AV :COTE) pour obtenir une figure encore plus intéressante . Les i nstructions de T suivant TRI 1 5 ramènent la tortue au point de départ avec une orientation de 0 degrés. On peut faire appel à un ensemble identique de procédures pour définir un carré et un cercle. FAIS C VC 45 CT BC AV 1 0 DR 45 CAR 1 4 DR 1 35 AV 1 0 VC 0 LC MT FIN FAIS CAR :COTE SI :COTE < 2 (ARRET) REPETE 4 (DR 90 AV :COTE) CAR (:COTE-1 ) FIN FAIS O VC 0 CT BC AV 8 DR 90 REPETE 1 5 (AV 4 DR 24) DR 22 CHANGE :X 7 REPETE 7 (CER :X DR 90 AV 1 GA 90 CHANGE :X :X-1 ) DR 1 35 AV 2 VC 0 LC MT FIN 58 FAIS CER :PAS REPETE 8 (AV : PAS DR 45) FIN L'avant-dernière l igne de 0 ramène la tortue à sa position initiale . Il n ' est pas facile de calculer les mouvements nécessaires pour atteindre la position d ' origine, et il faut y arriver par tâtonnement. Exécutez 0 immédiatement après être passé en mode EXECUTION, pour que la tortue soit à la position du centre ( 1 28 ,96) avant de commencer ses pérégrinations. Quand la procédure est terminée, faites VX 1 28 et VV 96 . Observez comment la tortue bouge . En analysant ses mouvements , nous saurons quels changements apporter à l 'avant-dernière ligne de 0 pour ramener la tortue à sa position d ' origine . Avec ces procédures, l 'enfant peut déplacer la tortue sur l ' écran en se servant des touches numériques et il peut faire des triangles en appuyant sur T, des carrés en appuyant sur C et des cercles en appuyant sur O . Mai s , vous direz-vous, cette méthode est censée s 'adresser aux enfants qui ne savent pas l ire. Alors, nous vous conseillons de recouvrir les touches choisies de petites étiquettes adhésives sur lesquelles vous aurez dessiné les symboles appropriés . Ici , par exemple , i l faudrait coller une étiquette avec u n triangle sur l a touche T , une étiquette avec un carré sur la touche C et le "O" peut naturellement rester tel quel . Bien entendu, vous pouvez donner libre cours à vos préférences et utiliser les touches de votre choix en changeant le nom des procédures. Comme en mode DESSIN , i l nous faut un moyen d'effacer les erreurs . Pour le faire, on redessine la figure avec un crayon dont la couleur est la même que celle de l 'arrière-plan . Il faut aussi choisir un moyen pour contrôler l 'effaçement. Décidons d 'appuyer deux fois sur la même touche pour demander l 'effacement. Avec un petit changement de nom , nous obtenons les procédures suivantes: FAIS T cc 1 T1 FIN FAIS TT cc 3 T1 FIN FAIS T1 VC 0 CT BC AV 8 DR 1 50 AV 1 5 TRI 1 5 VC 0 AV 5 LC MT FIN Le fait que nous replacions la tortue à sa position d ' origine rend l 'effacement possible . 59 Des changements semblables à C et 0 donnent: FAIS C cc 2 C1 FIN FAIS CC cc 3 C1 FIN FAIS O cc 0 01 FIN FAIS OO cc 3 01 FIN Nous ne nous sommes pas donnés la peme de réimprimer les versions originales de 0 et de C qui doivent être renommées 01 et C1 . Pendant que nous y sommes , nous pourrions étendre les doubles frappes aux commandes du mode DESSIN. Un exemple devrait suffire: FAIS 77 CC 3 AR 1 FIN En fait, nous construisons un langage spécial composé de commandes à frappe unique . Comme les enfants n ' aiment guère les contrariétés , il est particulièrement important qu'il soit complètement fonctionne l . A cet effet, il nous faut prévoir une procédure pour toutes les autres touches du clavier. Voic i : FAIS A FAIS B FAIS D FIN Remarquez que nous avons omis le C , déjà utilisé . Notons aussi qu'il n ' est pas nécessaire de terminer chaque procédure par un énoncé de FIN, vu que l 'énoncé FAIS suivant y met fin automatiquement. Ces procédures évitent ! ' apparition du message: JE NE CONNAIS PAS ... qui apparaîtrait si !'enfant appuyait par inadvertance sur une touche non étiquetée. Dans ce chapitre , nous avons exposé comment construire complexes qu'un jeune enfant puisse appeler en appuyant que nous avons donnés sont simples , mais les possibilités et votre imagination. Voyons maintenant comment utiliser 60 des formes ou des éléments d'images sur une seule touche . Les exemples ne sont limitées que par votre temps ces outils avec les tout petits . 13 . UTILISATION DU MODE DESSIN ET DU JEU lD Dans les chapitres précédents, nous avons parlé d e l ' utilisation d u mode DESSIN e t d u jeu I D . Il faut bien distinguer entre ce qui est possible et ce qui est utile . Dans le présent chapitre , nous formulerons quelques suggestions à l ' intention des adultes qui travaillent auprès de jeunes enfants . Nous avons puisé nos idées à un certain nombre de sources . Mais nous tenons à préciser que, le LOGO Couleur offrant la possibilité d ' initier des enfants plus jeunes que ceux auxquels on s' adressait précédemment avec d' autres programmes , nul ne sait vraiment à l ' heure actuelle ce qui est possible et ce qui est le plus profitable. Rappelons-nous qu 'il s ' agit d ' un manuel d'utilisation d'un langage d'ordinateur et non d'un manuel sur l ' éducation des jeunes enfants . N'hésitez pas à mettre en doute nos suggestions et à mettre de nouvelles idées à l ' essai . Il se peut que la meilleure façon de commencer avec les très jeunes enfants soit de les laisser jouer. Par jouer, nous entendons leur permettre d 'explorer les effets produits par les différentes touches . Avec de très jeunes enfants , il faut beaucoup de temps . Si vous avez changé les figures du jeu 1 D depuis la dernière séance , il faut donner à l 'enfant la possibilité d'explorer le nouvel ensemble de touches . Rappelez-vous que la durée d' attention d'un enfant n 'est pas aussi longue que la vôtre, et ne tentez pas de prolonger les séances. Nos premières idées pour le LOGO Couleur sont nées d' une tentative en vue de créer quelque chose pour un enfant de 4 ans qui voulait imiter papa et «travailler à l 'ordinateur» . Vous pouvez aussi commencer en pratiquant avec le mode DESSIN jusqu'à ce que vous l ' ayez maîtrisé, puis préparer un ensemble de procédures pour le Jeu 1 D. Ainsi vous serez prêt quand , un beau soir, un petit minois viendra se pencher sur votre épaule . Il y a une méthode qui a toujours réussi pour faire faire aux enfants leurs premiers pas en LOGO . Elle consiste à associer les commandes de tortue aux mouvements du corps . On demande à l 'enfant de jouer à la tortue et de reproduire ses mouvements . Par exemple, pour dessiner une boîte , on peut demander à l 'enfant de suivre un chemin qui a la forme d' une boîte et ensuite de dire à la tortue ce qu' il a fait. Ce conseil s' inspire des résultats positifs que nous avons obtenus auprès d ' enfants plus âgés , et il ne sera peut-être pas aussi efficace avec de très jeunes enfants qui ne savent pas encore lire . Il serait peut-être utile de leur donner des objets dont ils feraient le tour, afin de rendre la forme moins abstraite . Une technique largement utilisée dans l 'enseignement aux très jeunes enfants consiste à demander à l'élève de copier quelque chose . Un ouvrage intitulé Mathematics Their Way de Mary Baratta­ Lorton (Addison-Wesley Publishing Company, 1 976) fait appel à cette technique pour l'enseignement des mathématiques aux débutants; on y puisera une foule d' idées pour des projets en mode DESSIN. Fondamentalement, la méthode consiste à écrire de la façon conventionnelle une procédure créant une figure ou une forme , qu'on pourra afficher en mode EXECUTION. On demande alors à l'enfant de la copier, de la compléter, de la remplir, de l ' intervertir, de la faire tourner ou, de faire une manoeuvre quelconque avec cette figure . Si la procédure que l'enfant développe mérite d'être conservée , il faut travailler en mode DESSIN . Sinon, ou si la procédure nécessite l ' utilisation de modes plus complexes , utilisez l 'ensemble de procédures du jeu I D. Passons maintenant à des activités plus précises . Un grand nombre d'exercices reposent sur l'idée de continuation et de généralisation des figures . Ils conviennent particulièrement au Jeu ID; il est donc indiqué d'y ajouter les procédures suivantes. L'un des types les plus simples est une figure qui peut être placée sur une ligne pointillée . Traçons d' abord deux lignes pointillées parallèles: 61 FAIS POINTS EFFACE CT DR 90 VX 5 VY 1 50 POINTILLES VX 5 VY 50 POINTILLES FIN FAIS POINTILLES REPETE 20 (POINT AV 1 2) FIN FAIS POINT AV 1 BC DR 90 AV 1 REPETE 4 (DR 90 AV 2) LC AR 1 GA 90 AR 1 LC FIN POINT est un peu trop complexe pour nos besoins actuels, mais nous voudrons être sûrs plus tard que le point sera centré sur le point de départ. Nous allons utiliser POINT dans d 'autres exemples . Ensuite, nous dessinons quelques figures répétitives très simples sur la première rangée de points . Nous utiliserons POINTS dans la procédure de dessin de la figure . Vous en trouverez plusieurs exemples par la suite . FAIS FIGURE1 POINTS VX 5 VY 1 50 REPETE 1 0 (BC AV 1 2 LC AV 1 2) VX 5 VY 50 MT BC FIN Exécutez FIGURE1 . Dans ce cas , l 'enfant doit reproduire sur la ligne inférieure la figure qui se trouve sur la ligne supérieure et, quand il aura réussi , recommencer avec d' autres formes . Mais avant d e l e donner à faire , essayez donc vous-même ! Copiez l a figure sur l a ligne pointillée inférieure . Vous constaterez que c ' est trop difficile . Le déplacement de la tortue du nombre exact d 'unités ( 1 2 dans la procédure actuelle) est inutilement difficile . Nous pourrions rendre l 'exercice beaucoup moins ennuyeux en y apportant quelques petits changements . Remarquons que ceux-ci ne nous écartent pas du but de cet exercice qui est de reconnaître et de compléter la figure . FAIS POINTILLE REPETE 1 2 (POINT A V 20) FIN Le remplacement par AV 20 signifie que l 'enfant peut relier les points en deux frappes (touche 8 produisant AV 1 0 à chaque frappe) . Il faut également modifier FIGURE1 . 62 FAIS FIGU RE1 POINTS VX 5 VY 1 50 REPETE 6 (BC AV 20 LC AV 20) VX 5 VY 50 MT BC FIN Vous vous demanderez peut-être pourquoi nous ne vous avons pas donné les versions finales tout de suite . C 'est tout simplement que nous espérions que vous essaieriez de créer vos propres exercices et nous voulions vous faire constater quil est possible de les rendre beaucoup plus efficaces en prêtant un peu d' attention aux détails . Surtout avec de très jeunes enfants , il est important de vérifier le n iveau de difficulté des exercices avant de les faire faire aux enfants . Ils sont censés être tout aussi amusants q u ' instructifs , et non une cause de frustrations. Les mêmes données de base peuvent servir à un exercice légèrement plus difficile . FAIS FIG U RE2 POINTS VX 5 VY 1 50 REPETE 6 (BC GA 60 AV 40 DR 1 20 AV 40 GA 60) VX 5 VY 55 GA 90 AV 1 0 DR 90 AV 40 DR 90 AV 1 0 AR 1 0 GA 90 MT FIN 63 Il s ' agit ici de reproduire la figure indiquée en développant les formes ébauchées sur la ligne du bas . Les deux formes élémentaires étant différentes , cet exercice porte plus sur la forme que sur la copie proprement dite. Nous pourrions aussi utiliser les formes les plus réussies que nous avions définies dans le Jeu 1 D. Dans l ' exemple qui suit, on demande encore de compléter la figure , mais celle-ci est visuellement plus i ntéressante . Il nécessite de disposer des procédures T et TRI du chapitre 1 2 . FAIS FIGURE3 CHANGE :X 0 CHANGE :Y 50 E FFACE CT REPETE 1 0 (REPETE 7 (VX :X VY :Y CARRE CHANGE :Y :Y + 20) CHANGE :X :X + 20 CHANGE :Y 50) CHANGE :X 1 1 CHANGE :Y 58 REPETE 4 (REPETE 5 (VX :X VY :Y T CHANGE :X :X + 40) CHANGE :X 1 1 CHANGE :Y :Y + 40) VX 31 VY 1 58 MT FIN FAIS CARRE REPETE 4 (AV 20 DR 90) FIN On demande à l 'enfant de compléter la figure en déplaçant la tortue et en appuyant sur la touche de triangle. Il existe de nombreuses variantes sur ce thème . La procédure FIGURE3 fait largement appel à l 'énoncé CHANGE et nous n 'en avions pas encore parlé . L'énoncé CHANGE remplace la variable qui le suit par la valeur donnée dans l 'expression placée en deuxième position . Par exemple: CHANGE :X :X + 40 remplace la valeur de départ de :X par la même valeur augmentée de 40. 64 Évidemment, il n ' est pas nécessaire que tous les exercices utilisant des triangles , des carrés et des cercles aient un but précis. Demandez à l 'enfant de faire un dessin ou une bordure autour de l'écran. On peut aussi lui demander d ' achever un dessin . On peut considérer que l ' écran est constitué de quatre quadrants autour du centre. On dessine une figure dans un quadrant et on demande ensuite à l 'enfant de compléter la figure dans les trois autres quadrants . Ici , on peut utiliser le mode DESSIN ou le Jeu I D. S i vous avez inclus les procédures d'effacement des commandes DESSIN dans le Jeu I D , ce dernier est préférable . Voici une figure simple: FAIS FIGURE4 EFFACE DR 90 REPETE 2 (AV 60 VX 1 28 VY 96 DR 45) CENTRE FIN Nous avons écrit la procédure pour qu'il soit facile d'y ajouter des lignes pour rendre la figure plus compliquée . Cependant, nous recommandons de se limiter à des figures utilisant des angles faciles à obtenir en mode DESSIN (c'est-à-dire des multiples de 1 5 ou 45 degrés) . Nous ramenons la tortue au centre avec VX et VY au lieu de CENTRE , pour qu'elle garde son orientation. Une fois de plus , le AV devrait être multiple de I 0, afin de réduire le nombre de frappes requises . Voici une figure plus complexe: FAIS FIGURES EFFACE LIGNES 60 1 28 1 0 CENTRE FIN 65 FAIS LIGNES :LONGUEUR :X :PAS SI :LONGUEUR 0 (ARRET) VX :X VY 36 VC 0 AV :LONGUEUR DR 90 AV :LONGUEUR LIGNES ( : LONGUEUR - :PAS) (:X + :PAS) :PAS FIN = On choisit les points de départ de la figure pour qu'elle soit centrée . Puisque le centre est à 1 28 ,96, le point de départ de la première ligne est à 1 28 ,36, soit à 60 unités au-dessous du centre. Nous avons décidé d 'orienter la figure de telle sorte que l ' enfant puisse commencer à dessiner sans faire tourner la tortue . A un moment donné, l ' enfant va devoir pratiquer les lettres et les chiffres. Il apprendra à les reconnaître, notamment en les examinant très attentivement et l ' utilisation des éléments du mode DESSIN peut l ' y i nciter. Les enfants voudront probab lement se servir des lettres plus tard pour écrire des mots simples , et nous allons donc enregistrer les procédures correspondantes. Les premiers exercices pourraient tout simplement consister à copier un modèle. Puisque la plupart des gens assimilent les ordinateurs aux mathématiques, nous irons à l'encontre de cette tendance en prenant des lettres comme exemples . Commençons par la lettre F. Il nous faut une procédure pour dessiner le modèle . FAIS LETTRE-F EFFACE VX 50 VY 1 46 DR 1 80 AV 50 VX 50 VY 1 46 GA 90 AV 30 VX 50 VY 1 26 AV 20 CENTRE FIN Elle dessine un grand F majuscule, comme vous pourrez le voir en exécutant la procédure. Mais el le le dessinera si rapidement que 1 'enfant ne pourra pas voir dans quel ordre il faut dessiner les lignes . L'ordre peut être indiqué de plusieurs façons . On peut se servir de couleurs (dessiner d 'abord la partie rouge , puis la partie bleue). Ou introduire des pauses entre les frappes pour décomposer le déroulement de l 'exemple. Nous allons utiliser les deux méthodes. 66 FAIS LETTRE-F EFFACE VX 50 VY 1 46 DR 1 80 CC 1 AV 50 ATTENDS 6 VX 50 VY 1 46 GA 90 CC 2 AV 30 ATTENDS 6 VX 50 VY 1 26 AV 20 ATTENDS 6 CENTRE FIN FAIS ATTENDS :T REPETE :T (REPETE 820 ( ) ) FIN Remarquez que la procédure ATTENDS ne REPETE intérieur a été choisi pour que le de secondes de délai . Assurez-vous que la une correspondance simple entre le nom et mémoire , il faudra y supprimer F . fait rien d'autre que de compter. Le chiffre du nombre :T représente approximativement le nombre procédure de l 'enfant s 'appelle F , pour q u ' i l y ait le dessin . Si vous avez toujours le Jeu 1 D en Une fois que l 'enfant connaît la forme d e la lettre o u d e plusieurs lettres, vous pouvez lui demander d 'essayer de faire des lettres en reliant des points . Dans ce cas la procédure doit dessiner les points , en commençant de préférence à la position du centre. FAIS POINTM EFFACE POINT AV 60 AV 30 GA 45 GA 45 AV 30 POINT DR 90 CENTRE FIN POINT DR 1 35 POINT DR 45 AV 60 POINT 67 Dans cette procédure , nous avons pris soin de faire pointer la tortue dans la direction horizontale pour que l 'espacement des points soit parfaitement régulier, mais ce n ' est peut-être pas indispensable . Cet exercice qui consiste à rel ier des points entre eux convient mieux aux lettres et chiffres qui s'écrivent sans que le crayon quitte le papier. Pour la plupart des lettres, il faut relever le crayon . Dans ces conditions, Je schéma en pointillé se complique , et peut même présenter un défi digne d ' intérêt. Si la tâche devient trop difficile , il est toujours possible de colorier les points selon un code de deux ou trois teintes ou d ' ajouter des points intermédiaires. Il peut être intéressant d ' imaginer comment les choses apparaîtront dans d 'autres positions . On présente une figure dans une position , puis on demande à l 'enfant de la redessiner dans une autre position . Puis on réutil ise la procédure de l 'enfant pour faire une comparaison des résultats. Nous allons donc utiliser Je mode DESSIN. On peut demander à l 'enfant de compléter un dessin partiellement fin i , mais dans une autre position. FAIS FIGU R E& DR 1 80 VX 70 AV 50 DR 90 AV AV 20 GA 90 AV 1 0 DR GA 90 AV 1 0 GA 90 AV AV 1 0 GA 90 AV 20 DR DR 90 AV 50 DR 90 AV VX 1 98 VY 96 VC 1 80 AV 50 DR 90 AV 70 DR FIN 68 20 90 10 90 70 DR AV DR AV 90 10 90 20 90 AV 50 Rappelez-vous qu'en passant en mode DESSIN , il sera nécessaire de donner un nom à la procédure que l 'enfant va créer. La comparaison des deux figures est faci le à faire . Supposons que la procédure de l 'enfant s 'appelle ZZ. Dès qu'elle est terminée, passez en mode EXECUTION et exécutez les commandes suivantes: DR 1 80 FIGURES vx 70 VY 1 46 cc 2 zz Ces i nstructions feront pivoter la figure initiale; puis, dans une autre couleur, la figure de l'enfant viendra recouvrir l 'original tourné . Le résultat sera encore plus satisfaisant, quand l 'enfant dessinera toute la figure dans sa nouvelle position . Bien entendu , l 'ensemble d ' instructions c1dessus peut être regroupé dans une autre procédure afin d 'accélérer la comparaison. Les projets du mode DESSIN peuvent devenir fort complexes . Par exemple, en mode DESSIN , on pourrait patiemment enseigner à la tortue à écrire à la mai n . La clé est de donner à chaque procédure le nom de la lettre qu'elle est censée dessiner en cursive . Ainsi, la procédure A pour la lettre "a", la procédure B pour la lettre "b" , etc . . . Et en mode EXECUTION, chaque fois qu'on frappera une lettre (suivie de ENTER) , 1 'ordinateur affichera la lettre cursive correspondante . On pourrait aussi définir une procédure avec un mot épelé (espaces entre les lettres) et le résultat serait le mot en lettres cursives . FAIS CURSIVE C H A T FIN écrira chat en lettres cursives, si les procédures C , H, A et T ont été correctement définies . Pour que tout fonctionne bien, la tortue devra se retrouver en bonne position après chaque lettre. Si ce défi ne vous suffit pas , vous pouvez toujours essayer de dessiner les lettres comme dans un manuel de calligraphie ! Il n ' y a pas de doute que vous devrez les faire un peu plus grosses pour obtenir l 'effet désiré . La seule limite , c ' est que vous ne pourrez pas avoir en même temps majuscules et minuscules . Il y a des limites à tout, même en LOGO Couleur! 69 Ce chapitre vous a donné une idée de ce que l 'on peut faire avec le Jeu I D et le mode DESSIN . A partir de là, il y a plusieurs façons de poursuivre. On pourrait par exemple continuer en mode DESSIN à faire faire des exercices de plus en plus diffici les ou encourager l 'enfant à créer des procédures utiles que vous l 'aiderez à utiliser en mode EXECUTION. S ' il est raisonnablement bon au clavier, il n 'aura guère besoin d ' aide. On pourrait aussi lui apprendre à étendre le Jeu 1 D en y ajoutant les procédures qu'il crée en mode DESSIN (il peut faire ses propres étiquettes de touches et les coller lui-même au fur et à mesure qu' il nomme les procédures) . Par exemple , vous pourriez proposer de dessiner un camion , une maison , un arbre et une personne en mode DESSIN et puis lui faire dessiner des scènes de rue en utilisant ces éléments ajoutés au Jeu 1 D. B ien entendu, il voudra bientôt ajouter de la couleur. Il lui faudra alors apprendre à insérer les commandes CC dans ses procédures et, avant longtemps , il saura dactylographier et éditer comme un grand . 70 14. TORTUES MULTIPLES Jusqu ' ici , nous avons dessiné sur l 'écran avec une seule tortue . Nous avons créé des figures complexes en en dessinant une partie à la fois jusqu'à ce que petit à petit le dessin se termine. Avec le LOGO Couleur, il existe une autre façon d'exécuter un dessin complexe . Il est possible de dessiner toutes les parties en même temps à condition de faire appel à plusieurs tortues . Les tortues multiples offrent nombre d 'autres possibilités . Elles permettent de faire des jeux , par exemple . Il est beaucoup plus facile de programmer des jeux quand chaque joueur dispose d' une tortue qui garde sa place jusqu' au prochain tour. C'est particulièrement vrai pour le LOGO Couleur, car souvent nous ne connaissons pas la place de la tortue en coordonnées absolues et il est donc difficile d'enregistrer un point de retour. Nous verrons qu'il est souvent possible de simplifier la programmation en donnant à chacune des tortues une sous-tâche différente d'un jeu . Il est possible de réaliser des dessins en chargeant les tortues de dessiner les différents éléments d ' un tout. De cette façon , le dessin semble évoluer plutôt qu' apparaître par pans successifs . Sur un plan plus sérieux et plus abstrait, les tortues multiples peuvent servir à illustrer le principe de la multiprogrammation . Commençons par inscrire quelques procédures pour faire évoluer les tortues . Effacez la mémoire et inscrivez: FAIS BOITE :COTE :X :Y VX :X VY :Y REPETE 4 (AV :COTE DR 90) FIN FAIS CERCLE :COTE :X :Y VX :X VY :Y REPETE 20 (AV :COTE DR 1 8) FIN Exécutez chacune de ces procédures pour en vérifier l 'exactitude . Nous allons créer de nouvelles tortues au moyen de la commande COUVE . Voici la syntaxe de cette instruction: COUVE No. de tortue procédure à exécuter ou pour donner un exemple précis: COUVE 1 BOITE 50 30 60 Ici , le sens de COUVE est évident (faire éclore). Le chiffre suivant, 1 est le nom ou numéro de la tortue . Les tortues peuvent recevoir n ' importe quel numéro de 1 à 254. (La tortue 0 est la tortue principale - toujours présente, même si elle est cachée par une commande CT - c 'est la seule que nous ayons utilisée jusqu' ici) . BOITE est le nom de la p1 océdure que nous demandons à la tortue 1 d'exécuter. Les chiffres qui suivent BOITE sont comme d'habitude les valeurs à transmettre aux variables locales de BOITE. , 71 Ensuite, essayons un programme simple de tortues multiples. Inscrivez ce qui suit: FAIS TEST COUVE 1 BOITE 50 30 60 COUVE 2 BOITE 40 1 80 90 COUVE 3 BOITE 60 1 00 90 FIN Remarquez que chaque tortue a sa propre procédure et ses propres ensembles de valeurs pour les variables . Bien sûr, plusieurs tortues peuvent se servir de la même procédure, mais chacune a toujours son propre ensemble de valeurs courantes pour les variables . Quand vous exécuterez la procédure, vos espoirs seront peut-être déçus . Pourquoi le programme s' arrête-t-il avant de dessiner les boîtes? Remarquez qu'il y a quatre tortues sur l 'écran: les trois que vous avez créées avec les commandes COUVE et comme toujours la tortue maîtresse . Lorqu'il y a plusieurs tortues , le LOGO Couleur donne son tour à chaque tortue. A chaque tour, l 'ordinateur exécute une commande unique de tortue ou une opération logique dans un énoncé de co ntrôle . (Un énoncé de contrôle est un énoncé qui contrôle l'enchaînement des opérations dans la procédure; par exemple: «SI» ou «REPETE») . Donc , ayant créé la tortue 1 , le LOGO Coulsur donne à la tortue 1 un tour et crée la tortue 2 , puis il donne aux tortues 1 et 2 un tour chacune, et crée la tortue 3 . Puis il donne aux tortues 1 , 2 et 3 un tour chacune et rencontre l ' instruction FIN . Puisque la tortue 0 est toujours là, fa tortue 0 attend de savoir quoi faire . Puisque nous n ' avons rien donné à faire à la tortue 0 , elle attend une commande du clavier. Si nous appuyons sur ENTER (commande qui dit à la tortue 0 de ne rien faire), toutes les autres tortues bénéficient alors d ' un autre tour. Essayez. Souvenez-vous que c'est un moyen pour exécuter les procédures étape par étape pour y détecter les erreurs . Bien entendu , i l n ' est pas très amusant de rester au clavier pour appuyer sur ENTER. Mais tout peut fonctionner nonnalement, si l 'on donne aussi à la 1.ortue 0 une procédure à exécuter. Essayez: FAIS TEST COUVE 1 BOITE 50 30 60 COUVE 2 BOITE 40 1 80 40 COUVE 3 BOITE 60 1 00 20 BOITE 20 1 50 1 20 FIN Le dernier appel de BOITE n'est pas précédé de COUVE , et par conséquent il s 'adresse à la tortue 0. Voilà qui est mieu x ! Si vous voulez voir un peu plus en détail ce qui se passe vraiment, réduisez la vitesse . Toute procédure peut être ralentie avec l ' instruction LENT: FAIS TEST LENT 30 COUVE 1 COUVE 2 COUVE 3 BOITE 20 FIN 72 BOITE 50 30 60 BOITE 40 1 80 40 BOITE 60 1 00 20 1 50 1 20 Le chiffre qui suit LENT dit à l 'ordinateur de combien il faut ralentir. Il doit être compris entre 0 et 1 27 . Zéro correspond à la vitesse normale , et 1 27 à la vitesse la plus lente . La commande LENT règle la vitesse pour toutes les procédures et celle-ci demeurera inchangée tant qu'elle n 'aura pas été modifiée par une autre commande LENT ou qu'on aura pas quitté le mode EXECUTION pour y revenir. Avant de passer à autre chose , remarquons qu'à l ' achèvement de sa procédure, chaque tortue disparaît et que la seule à rester à la fin est la tortue 0 . Bien entendu , nous pouvons utiliser plusieurs procédures pour les différentes tortues . Essayez: FAIS TEST2 COUVE 1 BOITE 50 30 60 COUVE 2 BOITE 40 1 80 90 COUVE 3 BOITE 60 1 00 20 COUVE 4 CERCLE 3 30 1 40 COUVE 5 CERCLE 4 1 80 1 20 CERCLE 5 90 90 FIN Profitons de cette procédure pour signaler un point susceptible de présenter des difficultés. Supposons que nous modifiions la procédure de la tortue 0 en BOITE 80 90 90 . En pratique , on constatera que les cercles restent incomplets et que les deux tortues qui dessinent les cercles demeurent sur l ' écran , parce que la tortue 0 termi ne l 'exécution de ses commandes avant les autres . Pour éviter le problème, il faut toujours placer la procédure de la tortue 0 en dernier lieu, et veiller à ce qu'elle soit la plus complexe. On trouvera une autre solution à ce problème dans la procédure ABSTRAIT. FAIS ABSTRAIT EFFACE COULEURS DR 25 COUVE 1 CHEMIN 1 DR 43 COUVE 2 CHEMIN 1 DR 67 COUVE 3 CHEMIN 3 DR 1 05 COUVE 4 CHEMIN 0 DISPARAIS FIN 1 4 30 4 20 4 40 4 10 Remarquez que la tortue 0 pivote entre chaque COUVE . La pos1t10n et l ' orientation initiales de chaque nouvelle tortue sont les mêmes que celles de la tortue mère (la tortue qui a couvé la nouvelle) . Dans notre exempl e , la tortue 0 est la mère, et chaque nouvelle tortue aura à son apparition la position et l ' orientation de la tortue 0 . Après la naissance des quatre nouvelles tortues , la tortue 0 reçoit la commande DISPARAIS. La commande DISPARAIS dit à une tortue de cesser d'exister. Une fois disparue, la tortue 0 ne reçoit plus de tours et ne peut plus arrêter la procédure par manque de commandes . 73 Bien entendu , cette procédure a besoin de CHEMIN pour fonctionner. FAIS CHEMIN :COULEUR :1 :L CT CC :COULEUR QUAND 1 (AV :L DR 90 LC AV :1 DR 90 BC AV :L GA 90 LC AV :1 GA 90 BC SI JUSQUA 255 > 1 50 (DR 1 08) ) FIN CHEMIN renferme certaines idées nouvelles qui méritent une explication . Commençons par l 'énoncé QUAND. Le QUAND, c 'est un peu un REPETE conditionnel . Habituel lement, il sert à répéter une partie du programme , tant qu' une condition est respectée, c 'est-à-dire "vraie" (par exemple , QUAND :X < 3) . L'ordinateur évalue la condition et lui donne la valeur nulle si elle est fausse , ou une valeur non nulle si elle est vraie . Dans notre cas , nous voulons qu ' i l répète indéfiniment, et nous donnons donc à la condition la valeur 1 , qui est toujours interprétée comme "vraie" . Les parenthèses suivant le QUAND renferment les commandes à répéter. L ' autre idée nouvelle, c ' est l ' utilisation de la fonction JUSQUA. Celle-ci donne la distance qui existe entre notre tortue et la tortue désignée . En fait, ce qu'on obtient, c'est le total des pas selon l ' axe des X et l ' axe des Y jusqu 'à la tortue désignée . Dans CHEMIN, l 'énoncé se présente ainsi: SI JUSQUA 255 > 1 50 (DR 1 08) Notre tortue (rappelez-vous 1 , 2, 3 ou 4) demande sa distance jusqu'à la tortue 255 , qui n 'existe pas . Losqu'on demande sa distance jusqu'à une tortue qui n 'existe pas, on obtient la distance du centre . Donc, cet énoncé signifie que , si notre tortue est à plus de 1 50 pas du centre , elle doit tourner à droite de 1 08 degrés . Après une si longue explication , tâchons d'exécuter un programme qui dure longtemps. ABSTRAIT répondra sûrement à la demande; il fonctionne jusqu'à ce qu'on appuie sur BR EAK . . ou qu ' il y ait une panne d ' électricité ! . 74 Peut-être voudriez-vous une figure différente: FAIS MELANGE COULEURS 1 FD COUVE 1 ETALE COUVE 2 ETALE COUVE 3 ETALE COUVE 4 ET ALE DISPARAIS FIN 0 1 2 3 2 3 3 3 3 60 30 0 60 1 60 90 1 90 1 60 1 80 1 90 30 270 FAIS ETALE :COL :INT :X :Y :H REPETE 1 2 (CT CC :COL VX :X VY :Y VC :H REPETE 92/:INT (BC AV 1 00 LC AR 1 00 DR :INT) ) CHANGE :COL :COL + 1 ) FIN Il est certain que plus il y a de tortues sur l 'écran , plus elles ralentissent. Mais il s'y passe davantage de choses . Jusq u ' ici , nous n 'en avions pas beaucoup , et nous n ' avons donc pas remarqué le ralentissement. Mais si nous exécutions un programme qui créerait beaucoup de tortues? Pour voir, reprenons un programme de récurrence et utilisons-le avec des tortues m ultiples . ARBRE en est un excellent exemple . Essayez: FAIS ARBRE :S SI MOI = 0 (EFFACE VALY 0) SI :S > 6 (AV :S GA 30 COUVE 1 ARBRE (3* :S/4) DR 60 COUVE 2 ARBRE (3*:S/4) DISPARAIS) FIN 75 Encore une fois, cette procédure présente une idée nouvelle. Il s ' agit de la fonction MOI . La fonction MOI permet de trouver le numéro d' identité de la tortue active . L'énoncé: SI MOI = 0 (EFFACE VALY 0) signifie: si notre tortue est la tortue 0, efface l 'écran et continue . Puisqu'on dit ensuite à la tortue 0 de disparaître (DISPARAIS) , cette instruction ne s'exécutera qu' une seule fois . La procédure fait éclore périodiquement ou récursivement de nouvelles tortues, toutes nommées ou 2. Etant donné que les appels récurrents maintiennent une distinction entre les niveaux , c ' est acceptable , mais des fonctions comme JUSQUA donneraient des résultats imprévisibles , puisque les tortues n ' ont pas de nom distinct. Cette procédure permet de mettre à l ' essai un certain nombre de choses intéressantes . Par exemple, on peut la comparer à la version précédente de ARBRE en ce qui concerne la rapidité. Dans un cas , vous avez tout ce qu'il faut pour un programme purement récurrent et, dans l 'autre, vous avez l 'organisation nécessaire pour suivre toutes les tortues . Pour que la comparaison ait du sens , il faudra veiller à ce que les deux versions dessinent un arbre de même dimension , mais c ' est faci le à réaliser. La comparaison peut vous aider à découvrir tout l ' intérêt de la multiprogrammation . Vous pouvez accélérer la version à tortues multiples en réduisant le nombre de fois qu ' i l faut dessiner la tortue . Insérez simplement une commande CT au début de la procédure . Avec un autre changement, vous pouvez faire apparaître l 'arbre en pleine floraison. Essayez: FAIS ARBRE :S SI MOI = 0 (EFFACE VY 0) SI :S > 6 (AV :S DR 30 COUVE 1 ARBRE (3* :S/4) DR 60 COUVE 2 ARBRE (3*:S/4) DISPARAIS) SINON (REPETE 500 ( ) ) FIN L'élément ajouté est l 'énoncé SINON . SINON va de pair avec l 'énoncé SI. Dans notre programme, leur utilisation est la suivante: si la valeur courante de :S est supérieure à 6, on exécute toutes les commandes placées entre parenthèses (de AV :S jusqu'à DISPARAIS) ; mais si :S n ' est pas supérieur à 6 , seules sont exécutées les commandes placées entre parenthèses après SINON. Les commandes qui suivent SINON retardent simplement l ' achèvement de la procédure , pour que nous puissions voir l 'arbre avec une tortue au bout de chaque branche . 76 C'est si facile de dessiner des arbres avec les tortues multiples qu'on pourrait aussi bien dessiner toute une forêt. En fait , nous allons faire deux forêts , l ' une d'arbres à feuilles caduques, en hiver, et l 'autre de conifères , à la saison qui vous conviendra. FAIS PIN1 :N :X :Y CT VX :X VY :Y CC 0 AR :N/2 DR 90 AV : N/4 GA 90 AV 6 + :N/2 DR 90 PIN1 1 :N :X FIN FAIS PIN1 1 :N :X CC 1 DR 1 5 AV :N GA 1 29 AV 3* :N QUAND ?X MOI > :X (AV 2) FIN FAIS PIN2 :N :X :Y CT VX :X VY :Y CC 0 AR :N/2 GA 90 AV : N/4 DR 90 AV 6 + :N/2 GA 90 PIN22 : N :X FIN FAIS PIN22 :N :X CC 1 GA 15 A V :N DR 1 29 AV 3* :N QUAND ?X MOI < :X (AV 2) FIN FAIS PIN :N :Y :T CT COUVE :T PIN1 :N :X :Y COUVE :T + 1 PIN2 :N :X :Y SI :N > 20 (ARRET) PIN (:N + 1 ) :X :Y :T FIN FAIS CONIFERE :ARBRES CT QUAND :ARBRES > 0 ( CHANGE :X ALEA 200 + 20 CHANGE :Y ALEA 1 00 + 30 CHANGE :T :ARBRES*3 COUVE :T PIN 2 :X :Y :T REPETE 30 ( ) CHANGE :ARBRES :ARBRES-1 ) DISPARAIS FIN 77 Essayez d'exécuter cet ensemble de procédures, d 'abord avec un arbre , puis avec plusieurs . Sur certains téléviseurs , le feuillage apparaît en vert et les troncs en brun; alors essayez ! Sinon , vous pourrez toujours prétendre que ce sont des sapins bleus . On trouve deux nouvelles idées dans les deux dernières procédures. En PIN1 1 , nous avons utilisé la fonction ?X. Elle fournit la coordonnée X de la tortue désignée à l'écran . Ici :X est le point de départ pour la moitié droite de l ' arbre . Quand ?X revient au point de départ, la procédure est terminée . Dans PIN , remarquez l 'usage de la variable :T qui i ndique le numéro de .la tortue . Dans CONIFERE , nous avons introduit la fonction ALEA qui produit un nombre aléatoire entre 0 et l 'argument 1 Par exemple - . ALEA 200 + 20 ajoute 20 à un nombre aléatoire entre 0 et 1 99 . Le résultat doit être un nombre entre 20 et 2 1 9 . Grâce à cette technique, les arbres restent éloignés du bord de l 'écran où le bouclage leur ferait subir une déformation . Notez aussi l ' utilisation de QUAND en combinaison avec: CHANGE :ARBRES :ARBRES� On obtient un nombre qui diminue d ' une unité à chaque fois qu'il passe par la boucle QUAND. :ARBRES es� utilisé pour varier le nombre de tortues pour chaque arbre dessiné. La forêt d' arbres à feuilles caduques utilise la procédure ARBRE, que nous avons déjà vue . A cela, nous devons ajouter: FAIS FORET FON D 1 vx 236 REPETE 3 (VY 1 0 VX ?X MOI + 40 COUVE 1 ARBRE 20 VX ?X MOI + 40 COUVE 2 ARBRE 30 ) NUAGES FIN 78 FAIS NUAGE :TAILLE :X CCAP 90 REPETE ( :TAILLE/6) (CHANGE :X ALEA ( :TAILLE/2) LC AV :X/2 BC AV :TAILLE-:X LC AR :TAILLE-:X/2 VY ?Y MOl-2) FIN FAIS N UAGES CC 2 VX 1 0 VY 1 80 NUAGE 60 VX 1 00 VY 1 64 NUAGE 30 VX 1 90 VY 1 76 NUAGE 65 FIN De nouveau dans cet exemple , nous avons créé de nombreuses tortues avec les mêmes nombres en les couvant par récurrence . Les deux dessins à arbres multiples montrent deux façons de créer des tortues multiples. Peu importe la méthode, à moins que vous n ' ayez besoin de vous référer à la tortue par son numéro. Dans ce cas , il faut un numéro unique pour chaque tortue . Remarquez l 'énoncé VX ?X MOI + 40. qui signifie VX (?X MOI) + 40, et non VX ?X (MOI + 40). 79 15. NOUVELLES FORMES DE TORTUES Toutes les tortues naissent égales; du moins elles se ressemblent toutes . Dans les exemples que nous avons vus j usq u ' ici , cela n ' avait pas d'importance; mais il serait utile dans bien des cas de pouvoir distinguer les tortues par leur apparence . Bien des jeux seraient impossibles si toutes les pièces ou tous les joueurs se ressemblaient. Mais le LOGO Couleur permet de changer la forme de chacune des tortues . Comme nous le verrons , c'est une fonction dont on peut profiter pour faire de l 'animation simple . On change la forme de la tortue au moyen de l 'énoncé FORME . A la suite de FORME, on trouve la liste des commandes de formes de la tortue . On dessine la forme de la tortue grâce à un ensemble très limité de commandes graphiques , essentiellement un pas en avant ou en arrière , tourner à droite ou à gauche de 45 degrés , et crayon levé ou baissé . Les commandes dans un énoncé FORME sont absolument sans effet sur la position et l' orientation de la tortue ou sur l 'état du crayon . On trouvera les symboles à utiliser dans le tableau suivant: COMMANDES RESULTAT A Avance d'un point. Si le crayon est baissé , la couleur du point est inversée . R Recule d'un point. Si le crayon est baissé , la couleur du point est i nversée. D Tourne à droite de 45 degrés. G Tourne à gauche de 45 degrés. L Lève le crayon de forme de la tortue . Ce crayon est toujours baissé au début de la commande FORME. Le crayon de forme de la tortue est tout à fait indépendant du crayon de la tortue normale ; les commandes LC et BC sont sans effet sur le crayon de forme de la tortue ; L e t B sont sans effet sur le crayon d e la tortue . B Baisse le crayon de fom1e de la tortue . Si le crayon de forme de la tortue était levé, en l ' abaissant, on inverse la couleur du point. Remarquez que , puisqu'on ne peut avancer ou reculer que d'un seul point, les seuls virages qui ont du sens sont à 45 degrés. Ce sera plus clair avec un exemple . Supposons que la tortue soit orientée droit vers le haut. Dans ces conditions la commande: FORME LDDAAAGGBAAAAG­ AAAGGAAAGAAAA 81 dessinera l a forme de tortue suivante: Remarquez que les commandes de forme de la tortue peuvent prendre plus d' une ligne. Il faut alors utiliser un trait d 'union pour relier la l igne à la suivante, qui doit commencer à la colonne 1 . Il s ' ensuit que la dimension et la complexité d'une forme de tortue sont illimitées. Mais la forme de la tortue doit être redessinée chaque fois que la tortue se déplace, et plus la forme de la tortue sera grande et complexe, plus le dessin ralentira. Il est assez difficile de créer par tâtonnement au clavier les formes de tortue désirées , et il est encore plus difficile de localiser une erreur au milieu d'une chaîne de commandes de forme de tortue . Les méthodes suivantes nous ont paru efficaces . Commencez par dessiner la forme de la tortue sur une feuil le quadrillée . Le fait de pouvoir tourner le papier quand vous dessinerez la forme, vous empêchera d'avoir mal au cou en essayant de jouer à la tortue sur votre clavier. Une fois la forme dessinée sur le papier quadrillé, il est possible d'utiliser l 'une des deux méthodes suivantes. Si la forme de la tortue est simple, réal isez-la en mode DESSIN . Rappelez­ vous que les touches 3 , 4, 5 , 6 et 7 correspondent exactement aux commandes de forme de la tortue L , B , D, G et A. Seul manque le R , et celui-c i , bien que très utile, n ' est pas i ndispensable . Le mode DESSIN vous permet de toujours connaître exactement votre orientation . Cependant, la tortue dessinée en mode DESSIN ne ressemble pas exactement à la tortue définitive, pour plusieurs raisons . Les lignes tracées en mode DESSIN ont deux points de large , alors que les lignes réelles de la forme de la tortue n ' ont qu'un point de large . En outre, les lignes transversales des formes de l a tortue, i nversent les couleurs , alors qu'elles ne les inversent pas en mode DESSIN . Cependant, en la dessinant, vous verrez la forme apparaître dans sa version à peu près définitive et dans son exacte dimension finale. Une fois terminée la forme en mode DESSIN , vous pouvez passer en mode EDITION et traduire la procédure en une procédure pour dessiner u ne nouvelle forme . Insérez simplement la commande FORME avant la liste de commandes et transposez chaque 3 en L, chaque 4 en B , chaque 5 en D, chaque 6 en G, et chaque 7 en A , en recouvrant les anciens caractères par les nouveaux . Commençons par un exemple très simple. Nous voulons que la tortue prenne la forme d'une flèche . Sur le papier quadrillé, nous dessinons l ' image avec des croix . La tortue doit se trouver en bas de la flèche . Passez en mode DESSIN, nommez la procédure NOUVEAU et dessinez la figure . Les touches à utiliser sont les suivantes: 777777766677555537755747. Vous serez peut-être surpris de la tail le réduite de la tortue , mais vous pourrez toujours en dessiner une plus grosse après avoir appris la technique. Maintenant, passez en mode EDITION et examinez NOUVEAU. Insérez FORME au début de la liste des 82 symboles et remplacez les symboles de DESSIN par les commandes appropnees de forme de la tortue . N 'oubliez pas de mettre u n trait d' union à la fin de la première ligne de commande . Votre procédure doit alors se présenter comme suit: FAIS NOUVEAU FORME AAAAAAAGGGAADDDD­ LAADDABA FIN Pour voir à quoi ressemble la nouvelle forme , exécutez NOUVEAU et puis exécutez des commandes , comme AV 20 et DR 90 . Rappelez-vous que la tortue peut être dessinée en huit orientations différentes. Essayez les positions en diagonale (par exemple, DR 45) , parce que la forme changera légèrement quand la tortue prendra ces orientations. Pour en connaître la raison , retournez au papier quadrillé et suivez les i nstructions de tortue en commençant le long d ' u ne diagonale. Il est préférable de travailler sur le papier quadrillé avant de passer à l 'ordinateur, car la forme de la tortue peut se désagréger en pivotant si elle n ' a pas été dessinée dans l 'ordre approprié . Pour voir ce qui pourrait se produire , essayez ce qui suit . Nous aurions pu dessiner essentiellement la même forme avec les commandes suivantes: AAAAADDLAABGGAAGGAA en position verticale ou horizontale; mais de biais , la figure se désagrège comme vous pouvez le voir si vous suivez les instructions sur le papier quadrillé . Maintenant , passons à un exemple un peu plus compliqué: l 'esquisse d'un avion . Voici le schéma: X XX X x x xx x x � � x xx x xx x xxxxx �� x xx x x x X ��XX X � � et voici la procédure créée en mode DESSIN et transposée en mode EDITION: FAIS AVION FORME DDAAAGGAGGADAD­ AAAAAADDAAAAAAA­ GAGGAGAAAAAAADDA­ AGAGGAGAADDAAAA­ AAAGAGGAGAAAAAA­ ADDAAAAAADADAGG­ AGGAA FIN 83 Lorqu'on passe à des formes plus complexes , il est préférable de travailler sur le papier plutôt qu'en mode DESSIN , pour plusieurs raisons. D' abord, la commande R est très utile. En outre, il faut veiller à éviter tout problème quand la forme de la tortue est orientée en diagonale. Comme d 'habitude, nous illustrerons le principe par un exemple. Nous allons nous servir de ce petit mannequin comme forme de tortue: v 4. , 2 3. Il faut choisir très soigneusement le chemin à suivre sur la figure . Les points délicats sont ceux où les lignes se croisent. Pour éviter les problèmes, ne cherchez pas les raccourcis et retournez aux points de jonction en revenant exactement sur vos pas . Le chemin à emprunter est indiqué sur la seconde figure . Les lignes pointillées i ndiquent la marche arrière , crayon relevé . Rappelez-vous que , Jorqu'on ne lève pas le crayon en reculant, la couleur des lignes est inversée une deuxième fois , ce qui a pour résultat de les faire disparaître . Le seul endroit où il n ' est pas nécessaire de reculer, c ' est la tête . Lorqu'une figure fermée est symétrique , elle reste fermée à la rotation. Un autre élément qui mérite toute notre attention , c ' est de savoir quand lever ou baisser Je crayon . Lorque le crayon est baissé au moment où l ' on passe sur un point ou encore, lorsqu 'on l 'abaisse sur un point, la couleur du point est inversée. En clair: lorsqu'on trace une ligne et qu'ensuite on traverse cette ligne le crayon baissé , Je point de croisement se trouve effacé. En suivant le chemin i ndiqué, nous obtiendrons la procédure suivante . Comme nous l ' avons dit plus tôt, il vaut mieux travailler sur papier et passer directement en mode EDITION, pour pouvoir util iser la commande R . FAIS UN FORME GG LGGAAAABAADDDAAAAAA­ DDAAAAAAGGAALRRGGAAAAAADAB­ AAAAAAAADDAAAAGAALRRDRRRR­ DABAAAGGAALRRGGAAAADAB­ AAGADAADADAADADAADADA FIN 84 Essayez d'exécuter UN et de faire pivoter la forme . Notez que quand on la tourne suffisamment, elle est à l 'envers . Peut-être ne voudrez-vous pas que les tortues aient un comportement aussi bizarre , et d ' avoir une tortue qui ressemble vraiment à une tortue . Si vous dessinez une tortue vue de côté, elle apparaîtra assez étrange lorsque son cap sera aux environs de 1 80 degrés . Mais si vous dessinez une tortue vue du haut, elle aura l ' air bien normale quelle que soit son orientation . Nous avons dessiné un mannequin pour vous montrer comment utiliser le LOGO Couleur pour faire de l ' an imation très simple. Nous voulons une figure qui puisse marcher. (Si votre enfant a dessiné le paysage urbain d ' u n des chapitres précédents, vous pourriez y ajouter ce module pour y mettre un promeneur.) Nous voulons une autre position du mannequi n . Alors dessinons­ la. Le processus est le même que dans le cas précédent. Transposez le chemin indiqué en une procédure: FAIS DEUX FORME GGLDDAABRRGGAAAAAADDD­ AAADDDAAAAGAALRRDRRRRDAAADAB­ AAAAAAAAADDDAAAAGGAA­ LRRGGAAAAGGABAAAGGAG RGGAAAAGABAGADAADAD­ AADADAADADA FIN Maintenant que nous avons les formes , nous allons pouvo1r nous amuser un peu . D'abord, faisons-les marcher: 85 FAIS MARCHE CT LC VX 1 00 DR 90 REPETE 1 00 (UN MT ATTENDS 1 00 CT AV 6 DEUX MT ATTENDS 1 00 CT AV 6) FIN FAIS ATTENDS :T REPETE :T ( ) FIN Remarquez que , dans ce cas , nous voulons que la forme de la tortue soit à angle droit avec son déplacement . L'énoncé FO�ME en tient compte . En outre , remarquez qu' i l faut ralentir la procédure en y incluant l ' instruction ATTENDS; sinon elle s'exécute si vite qu'il est difficile de voir la forme . Essayez d' autres valeurs de :T, pour varier la vitesse. Pour faire grimper la figure, il suffit d ' inscrire GA 1 5 avant de réexécuter MARCHE. On peut même la faire tourner en rond: FAIS TOURNE-EN-ROND CT LC VX 1 00 DR 90 REPETE 1 00 (UN MT ATTENDS 1 00 CT DR 1 5 AV 6 DEUX MT ATTENDS 1 00 CT DR 1 5 AV 6) FIN Vous préférerez peut-être le mouvement obtenu avec une procédure de contrôle différente . Remplacez MARCHE par ce qui suit: FAIS MARCHE1 CT LC VX 1 00 DR 90 REPETE 1 00 (COUVE 1 MARCHEA REPETE 8 ( ) CT AV 6 COUVE 1 MARCHES REPETE 8 ( ) CT AV 6 ) FIN FAIS MARCHEA CT UN MT REPETE 1 0 ( ) FIN 86 FAIS MARCHES CT DEUX MT REPETE 1 0 ( ) FIN Ici , on cherche à synchroniser les délais (c'est-à-dire les REPETE avec parenthèses vides) . Les délais en MARCHE1 doivent coïncider avec les délais en MARCHEA et MARCHES . S ' il y a mauvaise synchronisation dans une direction, les deux figures apparaîtront ensemble et, s ' il y a une mauvaise synchronisation dans l ' autre sens, le mouvement sera saccadé . Après tout ces beaux discours sur les tortues , nous nous sentons presque obligés de dessiner quelque chose qui ressemble un peu à une tortue . En guise de dernier exemple, nous allons dessiner une famille de tortues ! 1\ ( /--"'� �--� &' 2. 3 ___. . t. [ ' l _ ' 1 3. _ - FAIS TORTUE1 FORME GG­ RDDADDAGGADDAGGAAAAGRRRDAG­ AAADAGRRLAAADABAAAAADAAA­ GADRRRGADAAALRRRGABAAAAAAAA­ GGAAGAAGGAADRGRGGADADDAAAAA­ DADAGAAAGAAAAAAAAGAAAGADA FIN FAIS TORTUE2 FORME GG­ RDDADDAGGADDAGGAAAADDAALRR­ GGABDDAAAGGAALRGGABAADDAAAAAAA­ DDAALAGGABGGAAADDADDAAAGGALR­ GGAAADDABAAAAAAA­ GGAAGAAGGAADRGRGGADADDAAAAA­ DADAGAAAGAAAAAAAAGAAAGADA FIN FAIS RAMPE :T :X :Y CT LC VX :X VY :Y DR 90 REPETE 1 00 ( COUVE :T + 1 T1 REPETE 8 ( ) CT AV 2 COUVE 1 T2 REPETE 8 ( ) CT AV 2 SI ?X MOI > 230 (DISPARAIS) FIN 87 FAIS T1 CT TORTUE1 MT REPETE 1 0 ( ) FIN FAIS T2 CT TORTUE2 MT REPETE 1 0 ( ) FIN FAIS FAMILLE EFFACE CT CHANGE :1 0 CHANGE :T 1 REPETE 20 ( SI :1 < 1 0 (CHANGE :1 :1 + 1 ) CHANGE :J 1 QUAND :J < :1 (COUVE :T RAMPE :T 0 (:J*1 8) CHANGE :T :T + 2 CHANGE :J :J + 1 ) REPETE 900 ( ) FIN Bien que les formes des tortues présentent beaucoup de possibilités , i l semble assez évident que le LOGO Couleur ne sera jamais un instrument pour créer des dessins animés à la télévision ! Il n ' a pas non plus été conçu dans ce but. Mais c ' est un outil qui permettra à l 'enfant d ' obtenir des résultats qui satisferont sa soif de création . 88 16. JEUX Les jeux sont l ' une des applications les plus en vogue de l 'ordinateur. Le LOGO Couleur peut servir à créer une grande variété de jeux . Dans le présent chapitre , nous exposerons deux exemples de jeux de tortues . Bien entendu, ils ne sont pas comparables aux jeux vidéo du commerce. Ils donnent cependant une excellente illustration de quelques techniques utiles de communication entre les tortues . Avant d 'entrer dans l e détail d u premier jeu , nous tenons à signaler certaines choses qui pourront sembler évidentes . La plupart des jeux vidéo commerciaux et des jeux d ' ordinateurs sont très rapides. Le joueur doit réagir aux événements de plus en plus vite jusqu ' à ce qu'il soit dépassé . Vous avez déjà une idée de la vitesse à laquelle l 'animation s'exécute en LOGO Couleur. Mais ce langage n 'est pas assez rapide pour créer des jeux palpitants de "Guerre des Etoiles" qui sauraient vous captiver longtemps . Toutefois , ses capacités permettent à l 'utilisateur de créer des jeux plutôt que de se contenter de les exécuter. Si vous voulez créer des jeux qui présentent un défi aux joueurs , songez à des programmes qui exigent la coordination de plusieurs objets en mouvement (ainsi la vitesse réduite importe peu) ou à des jeux où la stratégie exige que le joueur réfléchisse tout en jouant. Notre premier jeu échantillon s 'appelle CHASSOURI . Il y a deux joueurs (ou un joueur avec deux mains) qui déplacent les objets sur l 'écran en appuyant sur les touches du clavier. L'objectif: le poursuivant (le chat) doit attraper le poursuivi (la souris) . Quand il y arrive, le score augmente d'un point, et la chasse recommence . Les tortues multiples nous permettent d'assigner une tâche à chaque tortue, ce qui simplifie beaucoup la programmation . Par exemple, il n ' est pas nécessaire de déplacer le curseur sur le tableau pour marquer les points et ensuite retourner faire le prochain mouvement . La procédure principale sert simplement à nommer les procédures e t affecter quatre tâches à quatre tortues . Nous nous servons de la tortue 0 et de trois autres. FAIS CHASSOURI EFFACE COUVE 1 KELTOUCH COUVE 2 SOURIS 20 COUVE 3 CHAT SCORE 0 FIN Les noms des procédures pour les quatre tortues sont assez descriptifs: SOURIS qui dirige le poursuivi et CHAT, le poursuivant . SCORE marque les points. KELTOUCH lit les entrées provenant du clavier. Bien entendu , les différentes tortues doivent communiquer: c ' est la grande idée nouvelle que nous illustrons dans cet exemple . 89 Commençons par le clavier. FAIS KELTOUCH :X CT QUAND 1 (CHANGE:X TOUCHE SI :X 'S (ENVOIE 2 1 ) S I :X ' D (ENVOIE 2 45) SI :X 'A (ENVOIE 2 31 5) SI :X ' K (ENVOIE 3 1 ) S I :X ' L (ENVOIE 3 45) SI :X 'J (ENVOIE 3 31 5) ) FIN Nous retrouvons là une recette que nous avons déjà vue: l ' utilisation de QUAND 1 pour répéter indéfiniment. Le second élément nouveau est la fonction TOUCHE. Elle permet de savoir si on a appuyé sur une touche du clavier. Dans la négative , TOUCHE donne une valeur nulle . Donc , au moment où la tortue 1 exécute l 'énoncé: CHANGE :X TOUCHE Si aucune touche n ' est abaissée , la variable :X prend la valeur 0 . Dans le cas contraire , :X prend la valeur ASCII de la touche. Par conséquent, la fonction TOUCHE donne soit la valeur ASCII de la touche util isée , soit 0 si aucune touche n 'est utilisée. La valeur ASCII est un nombre affecté à chaque touche du clavier selon une convention universellement utilisée en informatique. Grâce à celle-ci , i l n ' est pas nécessaire de connaître ce nombre , parce qu'un littéral (par exemple 'S) calcule automatiquement la valeur ASCII correspondante . Ensuite la procédure doit reconnaître quelle est la touche sur laquelle on a appuyé, et envoyer un message à l a tortue appropriée. Il s ' agit de déterminer quelles touches nous allons utiliser pour déplacer le chat et la souris comme nous l ' entendons . Voici la répartition: S faire avancer A - faire tourner D faire tourner K - faire avancer - - J L - - la la la le souris souris à gauche souris à droite chat faire tourner le chat à gauche faire tourner le chat à droite Maintenant nous savons donc quelle touche a été utilisée, le cas échéant. Examinons d'abord l ' énoncé: SI :X 90 'S (ENVOIE 2 1) Le littéral 'S donne la valeur ASCII de l ' argument S . C 'est-à-dire que la condition :X 'S combinée à la fonction TOUCHE précédente vérifie si l ' on a appuyé sur la touche S . Dans l 'affirmative , l 'énoncé ENVOIE est exécuté . = L'énoncé ENVOIE envoie un message à une autre tortue en le laissant dans une boîte à lettres. Le premier chiffre après ENVOIE est l 'adresse du message . Sur la ligne qui nous intéresse , l'adresse est 2 , donc seule la tortue 2 peut aller récupérer le message dans la boîte à lettres. L'adresse peut être une expression ou un nombre. Le second chiffre après ENVOIE est le message . Dans notre cas , le message est le chiffre 1 ; en général , le message peut être tout nombre valable en LOGO Couleur (-32768 à 32767) ou une expression donnant un nombre dans cette gamme . Récapitulons: ENVOIE 2 1 envoie le message 1 à la boîte à lettres pour la tortue 2. Puisque la touche S doit faire déplacer la souris (tortue 2) , le message 1 doit signifier déplacer. C'est ce que nous verrons dans la procédure SOURIS. Il existe un moyen d'envoyer un message général à la première tortue qui va chercher son courrier, mais nous n ' y aurons pas recours dans cet exemple-ci . Il suffit d' utiliser l 'adresse de la tortue 255 et la première tortue qui le demande recevra le message . Si nous voulions envoyer un bulletin à tous les points à toutes les tortues, nous pourrions le faire en définissant une variable globale (voir chapitre 6). Le reste de KELTOUCH ressemble beaucoup à ce qui précède . Nous vérifions chacune des touches qui contrôlent la souris et envoyons un message à la tortue 2 , si l ' une des touches est abaissée, et nous vérifions de même les trois touches qui contrôlent la tortue 3 . Remarquons que le QUAND 1 fait faire à la tortue 1 un sondage ininterrompu du clavier. Certaines fonctions du LOGO Couleur rendent cette partie de la programmation très simple . En affectant à une tortue la tâche de surveiller le clavier en tout temps , nous nous assurons que les deux joueurs ont un accès égal aux touches; nous ne risquons guère de perdre des frappes pendant qu'il se passe quelque chose d 'autre et l ' interrogation régulière du clavier est réglée automatiquement par la logique des tortues multiples. Voyons maintenant le comportement de la SOURIS: FAIS SOURIS :X LC VX :X FORME AAAAAAAALRRRDDA� AALRRRBRRR QUAND 1 (CHANGE :X LETTRE 1 SI :X (SI : X 1 (AV 8) SINON (DR :X) = FIN 91 SOURIS établit un point de départ pour la souris, lève le crayon pour que la souris ne laisse pas de trace (ce qui ne change en rien la poursuite , mais permet de garder l 'écran vide) , et dessine une forme pour que la souris fasse peau neuve . Ensuite, nous entrons un autre QUAND 1 qui s 'exécute indéfiniment. La tortue . souris va voir sa boîte à lettres grâce à la fonction LETTRE. Le chiffre qui suit LETTRE ( l ' argument) est le numéro de la tortue dont la tortue souris acceptera le courrier. Dans notre cas , la tortue 2, la souris, demande le courrier en provenance de la tortue 1 , la tortue du clavier. S ' i l n ' y a pas de message, LETTRE transmet la valeur 0. L'énoncé: SI :X vérifie la valeur de :X. Si :X est nul , les énoncés entre parenthèses sont omis . Puisque tout le reste des commandes se trouve entre parenthèses , 0 fait redémarrer la boucle . Donc , la tortue continue à demander son courrier jusqu'à ce qu'elle reçoive un message de l a tortue 1 . Si nous revenons à KELTOUCH , nous voyons qu'un message 1 signifiait déplacer. Donc , si :X = 1 , la souris avance de 8 . S i , à ce point, le message n ' est pas 1 , il faut que ce soit 45 ou 3 1 5 . L ' u n ou l 'autre de ces nombres fait tourner la souris vers la droite (rappelons-nous que DR 31 5 a le même effet que GA 45) . Le déplacement est alors terminé , et la tortue retourne vérifier son courrier en provenance de l a tortue 1 . Avant d ' al ler plus loin , exami nez l a disposition des deux énoncés SI dans SOURIS. Remarquez que les parenthèses après le premier SI renferment un second SI et un SINON, ce qui apparie le SINON avec le second S I . En voici Je sens: si :X n ' est pas nul ( le premier SI) , alors fais l ' une ou l 'autre des deux choses suivantes: si :X est égal à 1 , avance , sinon tourne . La procédure CHAT est semblable à SOURIS, mais elle comprend un test capture réussie . FAIS CHAT :X QUAND 1 (CENTRE LC QUAND JUSQUA 2 > 1 2 (CHANGE :X LETTR E 1 SI :X (SI :X = 1 (AV 1 6) SINON (DR :X) ) ENVOIE 0 1 ) FIN CHAT i nclut des énoncés QUAND emboîtés. Le premier fait partir Je chat et se poursuit indéfiniment . Celui qui est à l ' intérieur fonctionne jusq u ' à une capture éventuelle. Il y a capture lorsque l a fonction JUSQUA transmet une valeur inférieure ou égale à 1 2 . La partie de la procédure contrôlée par la condition JUSQUA 2 > 1 2 est identique à celle que l 'on trouve dans SOURIS. Rappelons que la fonction J USQUA fournit le nombre total de pas X et Y depuis notre tortue jusq u ' à la tortue désignée , ici la tortue 2 . Donc, la partie intérieure de la 92 procédure continue à vérifier le coumer et à exécuter des déplacements tant que la souns reste à plus de 1 2 pas. Dans le cas contraire , la tortue 3 , le chat, envoie un message ( ! ) au marqueur (tortue 0) . Ayant envoyé le message , le chat reprend position au centre et la poursuite recommence . Passons maintenant à la procédure de décompte des poi nts: FAIS SCORE :S CT VX 200 VY 1 80 QUAND 1 (ECRIS " " ECRIS :S QUAND LETTRE 255 CHANGE :S :S + 1 0 () ) FIN Une fois de plus , c 'est une procédure qui comporte plusieurs idées nouvelles . Les premières étapes consistent à cacher la tortue et à la placer de façon qu'elle garde le tableau des points . Nous mettons le score à 0 lors de l ' appel de la procédure et nous utilisons encore un QUAND 1 . L'énoncé ECRIS affiche tout ce qui se trouve entre guillemets là où se trouve notre tortue . Celle-ci ne se déplace pas . L'énoncé ECRIS peut aussi servir de la même façon à imprimer la valeur actuelle d' une variable . Ici , on utilise ces deux possibilités . LETTRE 255 est une version particulière de la fonction LETTRE qui permet d'accepter les messages provenant de toutes les autres tortues . Nous aurions pu tout aussi bien utiliser LETTRE 3, puisque la tortue 3 est la seule susceptible d'envoyer des messages au marqueur. La ligne suivante: QUAND LETTRE 255 = 0 () continue de vérifier jusqu'à ce que du courrier ait été reçu . Comme tout bon réseau postal , la fonction LETTRE permet de ramasser le courrier. Donc , si un ou plusieurs expéditeurs ont envoyé plusieurs messages, la fonction LETTRE livrera le plus ancien des messages non livrés et gardera les autres pour livraison ultérieure . ENVOIE 255 va s'inscrire sur la liste de toutes les tortues . Le message disparaît de toutes les listes , dès qu' une tortue l'a accepté . Maintenant que vous avez inscrit l'ensemble des procédures, vous pouvez essayer d'exécuter le jeu . Pour commencer, exécutez CHASSOURI . Souvenez-vous qu'il s'agit d' une expérience éducative et non d'un pur divertissement. Vous constaterez peut-être qu'il y a une lacune dans le jeu . Si la souris se fait attraper près du centre, elle est incapable de s'échapper, parce que le chat retourne au centre après chaque capture; et le score continue à augmenter. On peut résoudre le problème soit en déplaçant le chat, lorsque la souris est trop proche de la maison , soit en augmentant simplement la position X du chat d'un nombre important, par exemple 1 00, après chaque capture . Le second jeu s'appelle REBOND. II nécessite l ' utilisation des manettes de contrôle . Le but du jeu est de faire rebondir une balle sur deux raquettes orientables vers une cible . Ici , il nous faudra quelques tortues de plus . Commençons par subdiviser la tâche: lecture des deux manettes de contrôle, décompte des points, et mise en route. 93 FAIS R EBOND EFFACE CT COUVE 2 MANETTE1 COUVE 3 MANETTE2 COUVE 6 SCORE VAS-Y FIN Voyons d'abord les manettes de contrôle: FAIS MANETTE1 CT VX 60 VY 1 80 TOURNE 0 FIN FAIS TOURNE :P :X QUAND 1 (CHANGE :X MANETTE :P/2 LIGNE 3 VC 45 + 3*:X LIGNE 0 :X ( ) QUAND MANETTE :P/2 FIN FAIS LIGNE :COULEUR CC :COULEUR AV 1 5 AR 1 5 AR 1 5 AV 1 5 FIN MANETTE1 définit la pos1t1on de la première manette sur l 'écran . Il appelle TOURNE qui reçoit les données de la manette de contrôle. La nouveauté dans TOURNE, c 'est l ' utilisation de la fonction MANETTE . La fonction MANETTE transmet un chiffre entre 0 et 63 pour l 'entrée désignée . Le nombre dépend de la position de la poignée de l ' appareil de contrôle . Les entrées 0 et 1 correspondent aux positions horizontale et verticale de l ' appareil de gauche et les entrées 2 et 3 aux positions horizontale et verticale de l 'appareil de contrôle de droite . Ains i , MANETTE 1 par l ' instruction TOU RNE 0 dit à la procédure TOURNE de lire la position horizontale de l 'appareil de gauche (gauche, c 'est-à-dire correspondant à l a fiche de gauche à l ' arrière de l 'ordinateur couleur) . Puisque l ' instruction s'écrit: CHANGE :X MANETTE :P/2 la de la de variable :X est un nombre compris entre 0 et 3 1 . Cette division de la lecture de l 'appareil contrôle par 2 réduit la sensibilité de l ' affichage et accélère la réponse . Remarquons qu'après première itération de TOURNE, la procédure recherche une variation du réglage de l ' appareil contrôle. E l le reste dans la boucle: QUAND MANETTE :P/2 94 = :X ( ) jusqu 'à ce qu' i l y ait un changement. Lorsque c ' est le cas , elle passe par la boucle extérieure qui met :X à jour, efface l ' ancienne raquette (LIGNE 3), calcule une nouvelle orientation (VC 45 + 3*:X) , et dessine la nouvelle raquette (LIGNE 0) . Rappelez-vous que :X est compris entre 0 et 3 1 , si bien que l 'orientation de la raquette peut être entre 45 et 45 + 3*(3 1 ) 1 3 8 . La procédure LIGNE dessine et efface réellement les raquettes . Le AR est subdivisé en deux étapes , pour correspondre exactement aux pas AV de façon à assurer un effacement parfait. = La deuxième raquette est commandée par le second appareil de contrôle . Nous pouvons encore utiliser TOURNE et LIGN E . FAIS MANETTE2 CT VX 1 80 VY 1 2 TOURNE 2 FIN Il nous reste à créer la balle et la cible . VAS-Y engage: FAIS VAS-Y CT COUVE 4 BALLE DISPARAIS FIN La balle doit se diriger vers la première raquette à partir d ' un point choisi au hasard . Le façon la plus facile de procéder est de créer la tortue balle à la première raquette et de la déplacer (alors qu'elle est invisible) dans la direction choisie au hasard. Ces deux tâches sont exécutées par les procédures LANCEBALLE et PT-DE-DEPART. FAIS BALLE LANCEBALLE 0 QUAND LETTRE 5 (PT-DE-DEPART COUVE 5 CIBLE REPETE 45 (AV 1 0 S I JUSQUA 2 < 20 (AV 1 0 GA (CAP 4 CAP 2 + 1 80)*2 AV 35) SI JUSQUA 3 < 25 (AV 1 0 GA (CAP 4 CAP 3)*2 A V 45) VAS-Y FIN 95 En même temps, nous créons la cible à une position choisie au hasard (COUVE 5 CI BLE) . La boucle REPETE déplace la balle. Si la balle est à proximité de la première raquette (tortue 2) , sa direction est modifiée. GA (CAP 4 - CAP 2 + 1 80)*2 Un changement semblable se produit quand la balle est proche de la seconde raquette (tortue 3 ) . Remarquez que , lorsque la balle a parcouru la distance maximale, elle engage une nouvelle balle avant de disparaître . FAIS LANCEBALLE CT LC FORME LAADDBADADAADADAADADAAD­ ADA CHANGE :Y ALEA 60 + 1 60 FIN FAIS PT-DE-DEPART CT VC :Y VX 60 VY 1 80 REPETE 6 (AV 1 0) QUAND ?X 4 > 7 & ?Y 4 > 7 (AV 1 0) DR 1 80 MT AV 1 0 FIN LANCEBALLE crée une forme de balle appropriée et définit un point de départ au hasard en choisissant l 'orientatio n . PT-DE-DEPART cache la tortue balle, la localise à la première raquette , la déplace jusqu' à ce qu 'elle atteigne le bord de l ' écran , et enfi n , la retourne et la rend visible . CIBLE procède au décompte des points . D ' abord, elle choisit une position au hasard et crée une forme de cible . Puis , elle surveille le rapprochement de la balle venant du bas (si la balle s'approche en venant du bas , elle n ' a pas rebondi sur la deuxième raquette) . Si la balle (tortue 4) s 'approche suffisamment, un message est envoyé au marqueur et à la balle . FAIS CIBLE vc 0 CT VX ALEA 1 00 + 1 35 VY ALEA 40 + 1 20 FORME B DDAAAAAAAAAGGGBAAAA­ AGAAAAAAAAAGAAAAA MT REPETE 1 00 (SI J USQUA 4 < 1 5 & ABS (CAP 4 - 1 80) > 90 (ENVOIE 6 1 ENVOIE 4 1 ) DISPARAIS FIN 96 La procédure SCORE est essentiellement la même qu' auparavant. FAIS SCORE :PTS CT VX 200 VY 1 80 QUAND 1 (ECRIS " " ECRIS :PTS QUAND LETTRE 5 0 () CHANGE :PTS :PTS + 1 COULEURS 1 COULEURS 0 ) FIN = Nous espérons que ces deux exemples stimuleront votre imagination et vous inciteront à mettre au point des jeux encore plus élaborés. 97 1 7 . LE FOURRE-TOUT Dans ce dernier chapitre , nous allons vous présenter quelques autres exemples de programmes qui , nous l 'espérons, vous donneront des idées pour entreprendre vos propres projets . Nous avons déjà exposé toutes les fonctions du LOGO Couleur; nous nous contenterons donc de vous donner ici les procédures avec un minimum de commentaires . Le premier ensemble est contrôlé par la procédure BOND. FAIS BOND QUAND 1 (COULEURS 1 EFFACE CT DELAI 1 000 TUNNEL MARCHE PEINS) FIN FAIS MARCHE VX 28 BONHOMME2 MT DELAI 2000 REPETE 29 (BONHOMME2 DELAI 1 000 CT VX ?X MOI + 3 BONHOMME1 MT DELAI 1 00 ) BONHOMME2 DELAI 800 VX ?X MOI -8 DELAI 500 VX ?X MOI + 1 6 DELAI 500 VX ?X MOI -1 6 DELAI 500 VX ?X MOI + 8 REPETE 3 ( CT DELAI 20 MT DELAI 30) FIN FAIS TUNNEL CC 1 CT VX 60 VC 0 REPETE 1 8 (AV 20 DR 1 24 AV 56 AR 56 GA 1 04 FIN FAIS BONHOMME1 FORME D.D LAAAGGBAGAD­ AAGAADDDAGGAADDA­ GAGGGAADDAGADDAG­ AAGAGAGAGAAGADAA­ AAGGADDDAGAADAG­ AADDAA FIN 99 FAIS BONHOMME2 FORME DDLAAAGGBAA­ AAGAADDDAGGAADDA­ GAGGGAADDAGADDAG­ AAGAGAGAGAAGADAA­ AAGGADDDAGAAAAAA FIN FAIS PEINS CC 2 CT CHANGE :X 1 REPETE 3 (COU LEU RS 0 DELAI 1 00 COU LEURS 1 DELAI 1 00) VX 1 1 4 VY 1 02 VC 0 REPETE 1 3 (SPIRALE :X VX ?X MOI ---6 VY ?Y MOI -2 CHANGE :X :X + 5 FIN FAIS SPIRALE :X REPETE 8 (AV :X DR 1 35 AV 8 AR 8 GA 90) FIN FAIS DELAI :TEMPS REPETE :TEMPS ( ) FIN 100 Ce programme s' adresse à une clientèle un peu plus jeune: FAIS HORLOGE : DELAI :INT EFFACE CADRAN TEMPS : DELAI :INT FIN FAIS CADRAN CHANGE :NOMBRE 1 2 VY 1 80 VX 1 04 VC 90 REPETE 1 2 (AV 22 DR 90 AV 5 AR 5 LC AR 1 0 ECRIS :NOMBRE AV 1 0 BC GA 90 AV 22 DR 30 CHANGE :NOMBRE :NOMBRE + 1 SI :NOMBRE > 1 2 (CHANGE :NOMBRE 1 ) ) FIN FAIS TEMPS :DELAI :INTERVALLE CT REPETE 24 (CHANGE :HR 0 QUAND :HR < 1 2 (CHANGE :MIN 0 QUAND :MIN < 60 (NUMERIQUE :HR :MIN cc 1 PETITE-AIGUILLE :HR :MIN cc 2 GRANDE-AIGUILLE :MIN REPETE :DELAI ( ) cc 3 PETITE-AIGUILLE :HR :MIN GRANDE-AIGUILLE :MIN CHANGE :MIN :MIN + :INTERVALLE) CHANGE :HR :HR + 1 ) ) FIN FAIS GRAN DE-AIGUI LLE :MINUTE VX 1 28 VY 96 VC 6* :MI NUTE GA 8 AV 60 DR 30 AV 1 8 DR 1 30 AV 1 8 D R 32 AV 60 FIN 101 FAIS PETITE-AIGUILLE :HEURE :MIN VX 1 28 VY 96 VC 30* : H EURE + :MIN/2 GA 32 AV 30 DR 60 AV 30 DR 1 20 AV 30 DR 60 AV 30 FIN FAIS N U MERIQUE :HEURE :MINUTES VX 0 VY 1 80 ECRIS " VX 8*( :HEURE < = 9 & :HEURE < > 0) SI :HEURE (ECRIS :HEURE) SINON (ECRIS 1 2) VX 1 6 ECRIS " :" VX 24 SI :MINUTES < 1 0 (ECRIS "0" VX 32) ECRIS : MINUTES FIN Remarquez que vous pouvez fixer l ' i ntervalle à un nombre quelconque de minutes et que vous pouvez régler la vitesse avec :DELAI . Essayez avec: HORLOGE 300 5 Ensuite, voici une figure assez colorée: FAIS ARAIGNEE :X COULEURS 1 FD 0 REPETE 36 (COUVE 1 DECALAGE :X :C CHANGE :C :C+ 1 DR 1 0) DISPARAIS FIN FAIS DECALAGE :LONGUEUR :COULEUR CC :COULEUR AV : LONGUEUR GA 30 AV : LONGUEUR DR 30 AV : LONGUEUR FIN 102 Essayez cette valeur: ARAIGNEE 45 Ensuite , voici quelque chose qui vous rappellera le début de tous les films de science-fiction . Nous ne pouvons pas le reproduire dans le manuel , parce que tout est dans l ' animation FAIS FUSEE COULEURS 1 FD 0 CT CHANGE :X 4 QUAND 1 (COUVE 1 ETOILE1 DR 67 COUVE 1 ETOILE2 DR 207 COUVE 1 ETOILE1 DR 11 4 COUVE 1 ETOILE2 DR 87 VALX ?X MOI + :X SI J USQUA 255 > 30 (CHANGE :X :X*-1 COUVE 1 PLANETE) ) DISPARAIS FIN FAIS ETOILE1 CT FORME AADDADDA LC AV 2 MT REPETE 25 (AV 3) FIN 103 FAIS ETOILE2 CT FORME A LC AV 2 MT REPETE 35 (AV 3) FIN FAIS P LANETE CT SI ?X MOI > 1 28 (VALC 75) SINON (V ALC 300) AV 1 0 FORME AADAADAADAADAAD­ AADAADAA LC AV 6 MT REPETE 20 (AV 4) FIN Et maintenant , un programme qui illustre l 'orbite d' une lune autour d' une planète et qui utilise des tortues mul tiples pour simplifier la partie mathématique . FAIS ORBITE COULEURS 1 FD 0 A V 1 0 DR 90 CC 3 REPETE 8 (AV 6 DR 45 AV 6) CENTRE LC VALC 90 VY 1 64 CHANGE :POSLUNE 0 FORME HAAAAADDBAADAAAADAAAADAAAA­ DAAAADAAAADAAAADAAAADA QUAND 1 (REPETE 4 (COUVE 1 LUNE : POSLUNE REPETE 6 ( ) CHANGE :POSLUNE :POSLUNE + 20 ) AV 1 0 DR 9 FIN FAIS LUNE :POS CT LC D R : POSLUNE AV 20 FORME HAAAADDBADAADAADAADAADAADAADAADA MT REPETE 9 ( ) DISPARAIS FIN 104 Et pour notre dernier exemple, voici une figure assez réussie . FAIS TABLEAU COU LEURS 1 FD 0 NPOLY 8 1 2 3 VX 70 VY 72 N2POLY 8 48 1 2 FIN FAIS NPOLY :N :S :C CC :C REPETE :N (POLYGONE :N :S DR 360/:N FIN FAIS POLYGONE : N :S REPETE :N (AV :S DR 360/:N) FIN FAIS N2POLY :N :S1 :S2 :1 CT LC CHANGE :1 1 QUAND :1 < = :N (COUVE :1 N POLY :N :S2 (1 + :1-:1/2*2) AV :S1 DR 360/:N CHANGE :1 :1 + 1 ) DISPARAIS FIN 105 Bien entendu, vous pouvez essayer cette procédure en changeant les paramètres utilisés dans SAMPLE. A vous de jouer maintenan t ! Nous sommes certains que les exemples que nous venons de donner ne constituent qu'un survol très superficiel de tout ce qu'il serait possible de réaliser avec le LOGO Couleur. Nous espérons que vous éprouverez autant de plaisir à mettre au point vos propres procédures de démonstration que nous en avons eu à préparer les nôtres . 106 APPENDICE 1 SOMMAIRE DU LANGAGE LOGO COULEUR MICROPI POUR L'ORDINATEUR COULEUR RADIO SHACK MISE EN MARCHE DU LOGO Cartouche enfichable: Insérer la cartouche LOGO Couleur dans le logement rectangulaire, puis mettre l 'ordinateur en marche . Disquette: Mettre la disquette dans l ' unité 0 , inscrire LOADM "LOGO" et appuyer sur la touche ENTER, attendre que la lampe témoin de l 'unité s'éteigne , i nscrire EXEC , puis appuyer sur ENTER. LES MODES DU LOGO COULEUR En LOGO Couleur l ' utilisateur a le choix entre quatre "modes". On trouvera ci-après une brève explication de chacun des modes. MODE BREAK On se trouve dans ce mode lors de la mise en marche du système et il suffit d 'appuyer sur BREAK pour y revenir. Dans ce mode , l ' utilisateur peut charger ou enregistrer des programmes sur cassettes ou sur disquettes, 1mpnmer ses programmes ou passer aux modes EDITION ou EXECUTION . MODE EDITION On y accède à partir du mode BREAK en appuyant sur la touche E . Dans ce mode , l ' utilisateur peut afficher, créer ou modifier des programmes . MODE EXECUTION On y accède à partir du mode BREAK en appuyant sur la touche X. Dans ce mode , l ' utilisateur peut entrer les commandes de tortue, appeler les programmes à exécuter ou passer en mode DESSIN. MODE DESSIN On y accède à partir du mode EXECUTION en appuyant sur la touche "a commercial" . Dans ce mode , l ' utilisateur peut esquisser une image tout en créant une procédure à l 'aide de touches spécialement programmées. 107 MODE BREAK Dès la mise en marche du LOGO Couleur, on accède automatiquement au MODE BREAK et, pour y revenir à partir de tout autre mode , il suffit d' appuyer sur la touche BREAK. Il est indiqué par l 'affichage du message "LOGO:" On trouvera ci-après les commandes du mode BREA K . S H I FT CLEAR efface la mémoire réservée aux programmes. X passe au mode EXECUTION . E passe au mode EDITION. imprime le contenu de la mémoire réservée aux programmes sur l ' imprimante branchée sur la sortie série. a imprime comme la commande 1, mais envoie un saut de ligne après le retour de chariot . c demande l a désignation d u module e n faisant apparaître le message "CHARGE:", puis lit et transfère le module à partir de la source indiquée dans la mémoire réservée aux programmes . Pour charger à partir d 'une cassette, inscrire "T" . Pour charger à partir d' une disquette, inscrire l ' identificateur de module, constitué d' une seule lettre de A à P. Dans les deux cas , appuyer sur ENTER pour obtenir l 'exécution . La version disquette permet le chargement des programmes sur disquette ou sur cassette. La version cartouche ne charge que les programmes sur cassette . G demande la désignation du module en faisant apparaître le message "GARDE: " , puis écrit le contenu de la mémoire réservée aux programmes à la destination indiquée . Pour enregistrer sur cassette , inscrire "T" . Pour enregistrer sur disquette, inscrire l ' identificateur de module, constitué d' une seule lettre de A à P. Dans les deux cas, appuyer sur ENTER pour obtenir l 'exécution . La version disquette permet l 'enregistrement des programmes sur disquette ou sur cassette . La version cartouche n'enregistre les programmes que sur cassette . 108 MODE EDITION Pour passer au mode EDITION à partir du mode BREAK, appuyer sur E. II est alors possible d'éditer les modules déjà chargés en mémoire. Pour effacer tout le contenu de la mémoire de programmes, appuyez sur SHIFT CLEAR en mode B REAK avant d'appuyer sur E. L'éditeur est d'une utilisation très facile. II fonctionne selon le principe de la transparence , c 'est-à-dire que vous obtenez exactement ce que vous voyez. La première ligne du texte (s'il y en a un) apparaît en bas de l ' écran . II suffit d' inscrire les lignes de texte sur l ' écran . Le curseur apparaît toujours à la ligne inférieure, mais le texte peut être déplacé à volonté vers le haut ou vers le bas . Les touches suivantes ont des fonctions particulières. ENTER fait monter le texte d' une ligne sur l 'écran ou , s ' il est déjà sur la dernière l igne, ajoute une nouvelle ligne à la fin du texte. Flèche HAUT fait monter le texte d'une ligne , sauf s ' il est déjà sur la dernière ligne. Flèche BAS fait descendre le texte d'une ligne, sauf s'il est déjà sur la première ligne . Flèche GAUCHE déplace le curseur vers la gauche d'un caractère , sauf s ' i l est déjà au début de la ligne . Flèche DROITE déplace le curseur vers la droite d'un caractère, sauf s ' i l est déjà à l a fin de la ligne . CLEAR fait monter à la première ligne du texte . SHIFT + flèche HAUT fait défiler le texte vers le haut continuellement tant qu'on n ' appuie pas sur une touche . SHIFT + flèche BAS insère une ligne vide au-dessus de la ligne, si le curseur est dans la colonne 1 (la ligne existante disparaît par le bas de l'écran) ou coupe la ligne à l 'emplacement du curseur s ' i l ne se trouve pas dans la première colonne. SHIFT + flèche GAUCHE efface le caractère sous le curseur et déplace le reste de la ligne vers la gauche pour combler le vide . S ' il n'y a pas de caractères sur la ligne , elle est supprimée . 109 SHIFT + flèche DROITE insère un espace à l 'endroit où se trouve le curseur et déplace le reste de la ligne d'un espace vers la droite. Il ne se passe rien si la ligne est déjà complète . BREAK sort du mode EDITION et revient au mode BREAK . @ permet d 'accéder à un code de commande à touche unique . Pour inscrire un véritable "@" , appuyer deux fois sur la touche . En général , pour inscrire une nouvelle ligne, il suffit de la dactylographier, puis d' appuyer sur ENTE R . Pour modifier une ligne , positionner le curseur à l' aide des touches de flèche, et modifier le texte en i nscrivant le nouveau texte par dessus l ' ancien ou en i nsérant ou supprimant des caractères, en suivant les instructions ci-dessus . N .B . : Quand la mémoire de programme est pleine , l 'éditeur refuse les caractères supplémentaires. L'éditeur est suffisamment général pour servtr non seulement à écrire des programmes en LOGO Couleur, mais encore à faire du traitement de texte simple . Après avoir édité un texte, vous pouvez l ' imprimer ou l ' enregistrer sur disquette ou sur cassette. Vous pouvez, par exemple, écrire une documentation sur vos programmes de LOGO Couleur. La longueur maximum de la ligne est de 32 caractères, mais il existe un moyen d ' i mprimer des lignes de texte plus longues sur l ' imprimante. Quand une ligne se termine par un caractère "@", le retour de chariot est supprimé , si bien que la ligne suivante sur l ' écran se trouve juxtaposée sur le papier. MEMOIRE DE PROGRAMME C ' est en mode EDITION qu'on inscrit les procédures du LOGO Couleur. Elles peuvent alors être enregistrées sur disquette ou cassette, pour être ensuite rechargées et exécutées à nouveau . La mémoire de programme peut contenir un nombre quelconque de procédures de LOGO Couleur. Chaque procédure commence par un énoncé "FAIS" qui doit être le seul sur la ligne . En dehors de ce cas particulier, il est permis de placer plusieurs énoncés sur une même ligne, à condition de les séparer par un ou plusieurs espaces . Toute procédure doit se terminer par un énoncé "FIN". La mémoire de travail peut contenir plusieurs procédures en même temps. Il est recommandé de ménager au moins une ligne en blanc entre les procédures pour en faciliter la lecture . En outre , on conseille de découper les lignes de programme avec des alinéas pour en faire ressortir la structure logique . Tous les exemples qui figurent dans le présent manuel sont présentés de cette façon . 1 10 ESPACE TORTUE La TORTUE est une créature qui possède une FORME, une POSITION et une DIRECTION visibles. La position est définie par une paire de coordonnées X et Y , et la direction (le "cap") par un angle de 0 à 359 degrés. En général, la tortue vit et se déplace dans le plan de l'écran d' affichage . Les COMMANDES GRAPHIQUES DE TORTUE permettent de la déplacer et, si l ' on veut, lui faire laisser une trace . Au départ, la tortue se trouve à la position CENTRE, 1 28 , Y 96) . Sa direction est alors de 0 soit approximativement au milieu de l 'écran (X degrés, c'est-à-dire qu'elle regarde droit vers le haut. L'axe des X va de 0 à 255 (de gauche à droite) ; c'est la largeur de l ' écran . L'axe des Y va de 0 à 1 9 1 (de bas en haut; c 'est la hauteur de l'écran) . Le coin inférieur gauche de l 'écran a pour coordonnées (0,0) . Le coin supérieur droit a pour coordonnées (25 5 , 1 9 1 ) . En situation normale , l ' écran est un espace fermé: dès que la tortue disparaît du haut de l ' écran , elle reparaît en bas . Si elle quitte le côté gauche de l ' écran , elle revient à droite . Dans ces conditions , on peut considérer que le plan dans lequel la tortue évolue est infini dans toutes les directions . La tortue peut prendre toute orientation de 0 à 359 degrés. La direction verticale vers le haut est le cap 0 degrés, et le nombre de degrés augmente au fur et à mesure que la tortue tourne vers la droite, dans le sens des aiguilles d 'une montre . = = MODE EXECUTION Pour passer au MODE EXECUTION à partir du MODE BREAK , appuyer sur X. Immédiatement, l ' écran s 'efface et la tortue apparaît à la partie inférieure. Une FENETRE DE TEXTE de trois lignes est ménagée en bas de l ' écran . Il est alors possible d'utiliser les commandes graphiques de tortue ou d' appeler les procédures du LOGO Couleur déjà inscrites en MODE EDITION ou en MODE DESSIN . Toutes les commandes suivantes sont directement accessibles en MODE EXECUTION, à condition de n ' en utiliser qu'une par ligne . Pour exécuter la commande après l ' avoir inscrite , appuyer sur la touche ENTER. COMMANDES DIRECTES E N MODE EXECUTION EFFACE CENTRE AVANCE ARRIERE DROITE GAUCHE LEVE BAISSE CRAYON MONTRE CACHE VALX VALY CCAP LENT COULEURS FOND FERME OUVERT ENVOIE ECRIS COUVE DISPARAIS Certaines de ces commandes peuvent s'abréger selon la liste ci-dessous. Un certain nombre d' autres commandes du LOGO Couleur ne sont pas accessibles en mode EXECUTION. On ne peut les utiliser que dans les procédures. 111 EXÉCUTION D' PROCEDURE DU LOGO COULEUR EN MODE EXECUTION Pour exécuter une procédure déjà écrite en mode EDITION ou en mode DESSIN, il suffit d'inscrire son nom , suivi de tout argument à transmettre à la procédure , puis d' appuyer sur ENTER. Chaque argument doit être précédé d ' au moins un espace. Un argument peut se présenter sous la forme d ' un nombre , d' une variable ou d' une expression . Si l ' argument est une expression , celle-ci doit être placée entre parenthèses . MODE DESSIN Pour. passer au mode DESSIN à partir du mode EXECUTION, appuyer sur la touche @ Le mode DESSIN permet d e créer des procédures graphiques de tortue pour dessiner des figures sans que l ' uti lisateur ait même besoin de savoir lire . En mode DESSIN, l'écran affiche un signe . L' utilisateur doit donner un mot (avec ou sans signification) d ' au moins une lettre ou un chiffre puis appuyer sur ENTER . Le mot représente le nom de la procédure qui sera c:-éée lors du dessin de la figure . A partir de ce moment, les touches numériques (identifiées par le gabarit spécial de recouvrement) peuvent servir à exécuter des commandes graphiques de tortue . Chaque fois qu'on appuie sur une touche, la tortue exécute la commande particulière à cette touche . En même temps , il se crée une procédure dans la mémoire de programme . I l est possible d e visualiser la procédure e n passant e n mode EDITION . Lors de l 'entrée des instructions , on peut utiliser la touche BACKSPACE pour effacer la dernière commande fournie . Dans ce cas, tout ce qu' il y a sur l'écran disparaît et l 'ordinateur redessine la figure , moins. la dernière commande . Pour quitter le mode DESSIN , appuyer sur BREAK . Une procédure créée en mode DES S IN peut être appelée à partir du mode EXECUTION , pour dessiner à nouveau la figure . Pour ce faire, il suffit d ' inscrire le nom qui a été donné lors de l'entrée en mode DESSIN . " " = " Les commandes d u mode DESSIN sont les suivantes: ! )EFFACE 2)CENTRE 3)LC 4)BC S)DR 6)GA 7)AV 1 8)AV 1 0 9)DR 1 5 0)GA 1 5 112 " . ENONCES ET INSTRUCTIONS LOGO COULEUR ENONCES DE CONTROLE SI expr (liste d 'énoncés) L'expression est évaluée . Si sa valeur est vraie (non nulle) , l a liste d 'énoncés entre parenthèses est exécutée . Si elle est fausse (0) , la liste d'énoncés est omise. On peut ajouter le mot ALORS après l 'expression . L'énoncé SI peut être suivi d ' un énoncé SINON . La liste d'énoncés mentionnée en regard d ' un certain nombre d ' instructions (voir SINON, REPETE et QUAND) se compose d ' aucun ou de plusieurs énoncés entre parenthèses. Ces énoncés peuvent inclure toute commande de tortue ou autre énoncé de contrôle, sauf l 'énoncé FAIS. On peut placer plusieurs énoncés sur une même l igne, et utiliser un nombre quelconque de lignes. SINON (liste d 'énoncés) REPETE expr (liste d 'énoncés) QUAND expr (liste d 'énoncés) ARRET Cet énoncé doit suivre un ·énoncé SI . Si la valeur de l 'expression de l 'énoncé SI est fausse , la l iste d'énoncés suivant SINON est exécutée. Sinon elle est omise . L'expression est évaluée; si sa valeur est inférieure ou égale à zéro, la liste d'énoncés est omise . Sinon , la liste d'énoncés est exécutée le nombre de fois indiqué. L'expression est évaluée; si elle est fausse (0) , la l iste d 'énoncés est omise. Si elle est vraie (non-zéro), la liste d 'énoncés est exécutée. Après exécution de la liste, le contrôle revient au QUAN D. L'expression est alors réévaluée et la liste d'énoncés est exécutée de façon répétitive jusqu' à ce que l 'expression devienne fausse. Cette instruction met fin à l 'exécution d ' une procédure. Le contrôle revient à la procédure d ' appel , s ' il y en a une. Si la procédure a été appelée directement du mode EXECUTION, le contrôle revient alors au mode EXECUTION. Si la procédure a été appelée par un énoncé COUVE, la tortue correspondante cesse d'exister. 113 FAIS procédure liste de paramètres Cet énoncé définit l e début d'une procédure d e LOGO Couleur. Il doit être placé à la première position d' une ligne et n'être accompagné d'aucun autre énoncé sur la ligne. La "procédure" est représentée par son nom, composé d 'une ou de plusieurs lettres . Les paramètres de la "liste des paramètres" peuvent comporter de 0 à 5 variables. Chacune d 'entre elles se compose du signe suivi d ' un mot d 'une ou plusieurs lettres. "·" FIN Cet énoncé est le dernier d 'une procédure . L'exécution de l 'énoncé FIN équivaut à celle de l 'énoncé ARRET. DISPARAIS L'énoncé DISPARAIS élimine la tortue . CHANGE var expr La valeur de l 'expression est affectée à la variable . ECRIS "texte" ECRIS expr La partie littérale ou la valeur de l 'expression est affichée à l 'endroit où se trouve la tortue . Celle-ci ne se déplace pas . OUVERT Normalement, l'écran est en mode fermé . C'est-à-dire qu'une tortue qui quitte l ' écran d ' un côté réapparaît du côté opposé. L'exécution de l 'énoncé OUVERT supprime cette particularité . Si une tortue quitte l'écran, le programme se termine et l 'ordinateur affiche le message d 'erreur "JE ME SAUVE" . FERME Replace l ' écran en mode fermé . COUVE expr procédure liste d ' arguments 114 Crée une nouvelle tortue . La tortue prend le départ à la position (X ,Y) de sa mère (la tortue qui l ' a couvée) et elle est orientée dans la même direction . Elle a la forme des tortues ordinaires. La valeur de l 'expression devient le numéro d' identité de la nouvelle tortue (un nombre entre 1 et 254) . La "procédure" précise la procédure à exécuter par la nouvelle tortue. La "liste d' arguments" est facultative; elle précise les arguments à transmettre à la procédure . La nouvelle tortue évolue en même temps que les autres tortues actives sur l ' écran. ENVOIE expr expr Un message est envoyé à la tortue indiquée. La valeur de la première expression corespond à l ' identité de la tortue destinataire du message. Une valeur de 255 indique que le message devra être envoyé à la première tortue qui demandera son courrier. Toute autre valeur indique que le message ne peut être reçu que par la tortue possédant ce numéro d ' identité (voir également la fonction LETTRE) . La valeur de la deuxième expression est la valeur envoyée à l 'autre tortue . nom de procédure liste d'arguments Il s ' agit d ' un énoncé CALL, même s ' i l ne renferme pas le mot CALL. Pour appeler une procédure, inscrire simplement son nom suivi de l ' argument à transmettre . Si des arguments sont présents, ils doivent être séparés par un ou plusieurs espaces. L'argument peut être un nombre , une variable, une référence à une fonction ou une expression entre parenthèses. Les valeurs de l 'argument sont transmises aux, variables paramétriques de l 'énoncé FAIS de la procédure appelée . S ' il y a moins d ' arguments que de paramètres dans l 'énoncé FAIS, les paramètres restants prennent la valeur 0. Si la procédure appelée comporte un ARRET ou FIN , le contrôle revient à l'énoncé suivant l 'énoncé d 'appel . LENT expr L'énoncé LENT permet de ralentir l 'exécution , pour pouvoir en observer le détail . La valeur de l 'expression détermine le degré de ralentissement. Zéro correspond à la vitesse normale , et 1 27 à la vitesse la plus lente . COMMANDES GRAPHIQUES DE TORTUE Sens Enoncé Abréviation ARRIERE expr AR fait reculer la tortue du nombre de pas correspondant à la valeur de l 'expression . Si le crayon est baissé , il trace une ligne de la couleur du crayon au fur et à mesure du déplacement de la tortue. FOND expr FD détermine la couleur de fond de l 'écran . Les valeurs possibles sont 0, 1 , 2 ou 3 . La couleur de fond par défaut est 3 . COULEURS expr sélectionne les jeux d e couleurs 0 ou 1 . Chaque jeu comporte quatre couleurs . La couleur par défaut est 0. EFFACE colorie tout l'écran à la couleur du fond et ramène la tortue à la position centre. 1 15 AVANT expr AV fait avancer la tortue du nombre de pas correspondant à la valeur de l 'expression . Si le crayon est baissé , il trace une l igne de la couleur du crayon au fur et à mesure du déplacement de la tortue. CACHE CT rend la tortue invisible. CENTRE ramène la tortue à la position ( 1 28,96) avec un cap 0. GAUCHE expr GA fait tourner la tortue vers la gauche (dans le sens contraire des aiguil les d 'une montre) du nombre de degrés indiqué . CRAYON expr cc détermine la couleur du crayon de l a tortue. Les valeurs possibles sont 0, 1 , 2 ou 3 , et la couleur par défaut est 0. La couleur véritable dépend du jeu de couleurs sélectionné . Quand la couleur du crayon est la même que celle du fond, le crayon efface tous les points sur lesquels il passe. BAISSE BC dit à la tortue de tracer une ligne lors de ses déplacements en réponse aux commandes AVANT ou ARRIERE. DROITE expr DR fait tourner la tortue vers la droite (dans le sens des aigui l les d'une montre) du nombre de degrés i ndiqué. CCAP expr VALC et VC réoriente la tortue dans l a direction i ndiquée par l 'expression , dont la valeur peut être comprise entre 0 et 359 degrés. L'orientation 0 degrés correspond à la verticale, vers le haut. VALX expr vx déplace la tortue en lui donnant la nouvelle coordonnée X indiquée par l 'expression . Aucune l igne n ' est tracée lors du déplacement. La valeur de X doit être comprise entre 0 (bord gauche) et 255 (bord droit) . VALY expr VY déplace la tortue en lui donnant la nouvelle coordonnée Y i ndiquée par l 'expression . Aucune ligne n ' est tracée lors du déplacement. La valeur de Y doit être comprise entre 0 (bord inférieur) et 1 9 1 (bord supérieur) . FORME liste de forme MONTRE 116 donne à la tortue une nouvelle forme indiquée par la liste de forme . Voir LISTE DE FORME DE LA TORTUE ci-dessous . MT rend la tortue visible . EXPRESSIONS Le terme "expr" tel qu'il est employé ci-dessus indique que la commande est smv1e d'une expression, qui peut être un nombre, une variable, une référence de fonction ou une combinaison de ces données et des opérateurs indiqués ci-dessous. Une expression est toujours évaluée par un nombre compris entre -32768 et 32767 . Les expressions peuvent renfermer des parenthèses et sont en général évaluées de la même façon qu'en BASIC ou que dans les autres langages informatiques. OPERATEURS ARITHMETIQUES Ces opérateurs produisent un résultat compris entre -32768 et 32767 . + * addition multiplication soustraction division OPERATEURS LOGIQUES ET RELATIONNELS Ces opérateurs produisent un résultat égal à l lorsque la relation est VRAIE, ou égal à 0 lorsqu 'elle est FAUSSE. & ET logique NON négation logique < inférieur à égal à < = inférieur ou égal à OU logique > <> >= supérieur à différent de supérieur ou égal à LES VARIABLES Une variable se compose du signe "deux-points" suivi d ' un mot pouvant comprendre plusieurs lettres ou chiffres. Une variable représente une adresse unique où est emmagasiné un nombre . Lorsqu' une variable apparaît dans un énoncé FAIS, elle prend le nom de variable locale . A chaque utilisation de la procédure, une nouvelle adresse lui est affectée. Ainsi , lorsqu 'une procédure est appelée à plusieurs reprises , ou par plusieurs tortues en même temps , chaque appel à la procédure dispose de son propre ensemble de variables locales distinctes, même si elles portent le même nom . Un énoncé FAIS peut avoir jusqu' à 5 paramètres: donc une procédure peut comporter jusqu'à 5 variables locales. Lorsqu'une variable est mentionnée dans une procédure , mais qu'elle ne figure pas dans l 'énoncé FAIS de cette procédure , elle prend le nom de variable globale. Toutes les variables globales sont emmagasinées au même endroit. Ainsi , toute référence à la variable globale renvoie au même lieu d 'entreposage, même si les références sont invoquées par des procédures différentes . Ce principe permet de transmettre l ' information entre les procédures ou entre les tortues . 1 17 LITTERAUX 'C L'apostrophe ( ' ) smv1e d'une lettre s ' appelle un littéral . Utilisable partout où l'on peut se servir d'un nombre, sa valeur est égale à la valeur ASCII du caractère . Par exemple, 'A est égal à 65 . Les littéraux sont particulièrement utiles pour vérifier les valeurs fournies par la fonction TOUCHE. FONCTIONS MOI fournit l 'identité de la tortue . La tortue principale porte le numéro 0 . Les autres sont numérotées de 1 à 254. TOUCHE fournit la valeur 0 si aucune touche n'est abaissée. Dans le cas contraire , donne la valeur ASCII du caractère . ABS arg fournit la valeur absolue (positive) de l ' argument. ALEA arg fournit un nombre aléatoire compris entre 0 et arg- 1 . ?X arg fournit la coordonnée X de la tortue indiquée dans l ' argument (N. B . : «?X» MOI» donne votre propre coordonnée X) , ou 1 28 si aucune tortue ne porte le numéro indiqué . ?Y arg fournit la coordonnée Y de la tortue indiquée dans l 'argument (N . B . : «?Y» MOI» donne votre propre coordonnée Y), ou 92 si aucune tortue ne porte le numéro indiqué. CAP arg fournit la direction (0 à 359) de la tortue indiquée dans l ' argument (nota: «CAP MOI» donne votre propre direction), ou 0 si aucune tortue ne porte le numéro indiqué . JUSQUA arg fournit une mesure de la distance entre la tortue active et celle indiquée dans l argument. Cette mesure est égale à la somme des pas dans la direction des X et des pas dans la direction des Y. Si aucune tortue ne porte le numéro indiqué, la fonction fournit la distance par rapport au CENTRE. 118 LETTRE arg fournit une valeur numérique . On se sert de LETTRE pour vérifier et recevoir les messages envoyés par la commande ENVOIE. L'argument de la fonction LETTRE indique l ' origine des messages à recevoir. Lorsque l ' argument est égal à 255 , la fonction permet de recevoir le courrier adressé à la tortue active, quelle qu'en soit l ' origine . Dans le cas contraire , l ' argument indique l ' identité de la tortue expéditrice du courrier réclamé. S 'il y a plusieurs messages en i nstance, la fonction fournit le plus ancien message non livré. S 'i l n ' y en a pas, la fonction fournit une valeur nulle . MANETTE arg fournit une valeur comprise entre 0 et 63 , pour i ndiquer la position de l ' une des manettes de jeu . L ' arg est une valeur de 0 à 3 . MANETTE 0 donne la position HAUT/BAS de la manette gauche, et MANETTE 1 la position DROITE/ GAUCHE de la manette gauche. MANETTE 2 donne la position HAUT/BAS de la manette droite et MANETTE 3 la position DROITE/GAUCHE de la manette droite . Pour les mouvements HAUT/BAS , la valeur minimum correspond à HAUT. Pour les mouvements DROITE/ GAUCHE, la valeur minimum correspond à GAUCHE. Le terme «arg» tel qu' il est employé ci-dessus indique que la fonction est suivie d'un argument, qui peut être un nombre, une variable , une référence de fonction ou une expression . Si l ' argument est une expression , il doit être placé entre parenthèses . LISTE DE FORME DE TORTUE L'énoncé FORME sert à affecter une nouvelle forme à la tortue . La forme d' une tortue est constituée d ' u n ensemble de points répartis sur une grille . La l iste de forme indique au LOGO Couleur comment dessiner la forme de la tortue . Celle-ci pivote automatiquement pour s 'orienter dans la même direction que la tortue . Pour dessiner la forme de la tortue , on procède de façon semblable à la réalisation d'un dessin normal avec les commandes standard de tortue . La seule différence provient du fait que les commandes qui composent la liste de forme sont une forme limitée et simplifiée des commandes graphiques ordinaires de tortue . Les commandes permettent de faire un pas d ' un pixel (un carré sur une feuille de papier quadrillé) dans l ' une des huit directions possibles: vers le haut, vers le bas , à droite, à gauche et suivant les quatre diagonales . On trouvera ci-dessous la liste des commandes à un seul caractère utilisables pour les listes de forme . Une liste de forme peut avoir n ' importe quelle longueur. Si elle dépasse la limite d 'une ligne, placer un trait d 'union à la fin de la ligne et continuer dans la colonne J de la ligne suivante . Le crayon qui sert à dessiner la forme de la tortue inverse les pixels sur lesquels il passe. C 'est-à-dire le complément d ' un "point" est ) "'absence de point" et inversement. Dans ces conditions, une tortue peut traverser une image sans la détruire . 1 19 COMMANDES RESULTAT A Avance d'un pixel . Si le crayon est baissé, la couleur du pixel est inversée . R Recule d ' un pixel . Si le crayon est baissé, la couleur du pixel est i nversée. D Tourne à droite de 45 degrés . G Tourne à gauche de 45 degrés . L Lève le crayon de forme de l a tortue. Ce crayon est toujours baissé au début de la commande FORME. Le crayon de forme de la tortue est tout à fait indépendant du crayon de la tortue normale; les commandes LC et BC sont sans effet sur le crayon de forme de la tortue; L et B sont sans effet sur le crayon de la tortue. B Baisse le crayon de forme de la tortue . Si le crayon de forme de la tortue était levé, en l ' abaissant, on inverse la couleur du pixel . TORTUES MULTIPLES Normalement, il n ' existe qu'une seule tortue. L ' utilisateur peut créer d 'autres tortues en se servant de l ' é noncé COUVE. Chaque tortue exécute ses procédures indépendamment des autres . L'énoncé COUVE donne un numéro d ' identité à chaque tortue. Ce numéro peut être utilisé par d 'autres tortues pour envoyer du courrier ou s'informer de l 'endroit où se trouve la tortue. La tortue principale a toujours le numéro 0 . Les autres tortues peuvent être numérotées de 1 à 254 . A part la tortue principale, une tortue qui doit l 'existence à la procédure qui lui a été donnée à l'éclosion ne laisse derrière elle que les lignes qu'elle a tracées sur l ' écran , quand elle cesse d'exister. L'énoncé DISPARAIS peut aussi supprimer la tortue . Au contraire, seule l 'exécution d ' un énoncé DISPARAIS peut éliminer la tortue principale . Si la tortue principale provient de la procédure qui lui a été donnée en mode EXECUTION, elle retourne au mode EXECUTION où l ' utilisateur pourra inscrire et lui faire exécuter sa commande ou sa procédure suivante. Lorsque la tortue principale est en mode EXECUTION, s ' i l y a d 'autres tortues , elles cessent alors de se déplacer. Chaque fois qu'on appuie sur la touche ENTE R , chacune des tortues exécute un énoncé de programme. Ce processus permet de déplacer pas à pas les tortues écloses . Une bonne façon de contrôler une procédure est de COUVER une tortue en mode EXECUTION et de lui faire exécuter la procédure . Il suffit alors d 'appuyer sur ENTER à répétition pour exécuter la procédure pas à pas . Pour retourner en exécution normale ininterrompue, faire disparaître la torue principale avec DISPARAIS. 120 MESSAGES D 'ERREUR DU LOGO COULEUR En mode B REAK, un «?» apparaît à l 'écran lorsqu 'on util ise une touche qui ne correspond pas à une commande valable. Un chiffre suivi d ' un "?" peuvent également être affichés lors d ' un chargement (CHARGE) ou d ' un enregistrement (GARDE): 1? erreur de mémoire 2? erreur de somme de contrôle sur la cassette (probablement causée par une cassette défectueuse ou un volume mal réglé) 3? tentative de chargement d ' une cassette qm n ' est pas un programme de LOGO Couleur 4? tentative de chargement d ' un module excédant la capacité de la mémoire 6? unité de disques pas prête ou tentative d'enregistrement sur une disquette protégée ou mal formatée. En mode EXECUTION, plusieurs messages peuvent être affichés. Ils cherchent à identifier approximativement l 'erreur dans le programme, et ne prétendent pas à une grande précision . Il est possible que le message ne cerne pas vraiment le problème . Chaque fois qu' un des messages suivants est affiché, i l faut appuyer sur une touche pour continuer. MESSAGE SENS PROBABLE JE NE SAIS PAS " contient le nom de ce que le LOGO Couleur prend pour une procédure à appeler; mais le nom de la procédure ne se trouve pas dans la mémoire de programme. Si ce nom doit y être, vérifier qu'il est précédé de "FAIS" . S 'assurer également que FAIS se trouve dans la colonne 1 et que le nom est épelé correctement. Si le nom ne correspond pas à une procédure , il y a probablement quelque chose d' anormal dans la commande qui le précède immédiatement. JE NE PEUX FAIRE ... " . . . " contient le mot qui a causé la confusion . Le LOGO Couleur essayait de calculer la valeur d' une expression quand il a rencontré le problème . Il se peut que la syntaxe de l 'expression soit fautive , qu'on ait oublié de mettre les deux points devant un nom de variable ou encore que le nom d 'une fonction soit mal épelé. 121 IL MANQUE LA VALEUR Ce message signifie qu'une commande comme DROITE ou AVANT, qui devrait être suivie d ' un nombre, ne l'est pas. Soit l 'expression manque, soit son premier terme n ' est pas valide. ERREUR DE Il manque une parenthèse de gauche après une expression SI, QUAND ou REPETE , ou après SINON . Ou un niveau de parenthèses n ' est pas refermé . " ( " OU " ) " I MPOSSIBLE DANS CE MODE! Une commande (comme REPETE) inacceptable en mode EXECUTION a été inscrite directement au clavier. Se rappeler que certaines commandes ne peuvent être exécutées que dans le cadre d 'une procédure de LOGO Couleur. MA MEMOIRE EST PLEINE La mémoire de programme et de travail est pleine. C'est un phénomène qui finit toujours par se produire lorsqu'on laisse un programme s 'exécuter indéfiniment par récurrence (s'il s 'appelle lui-même à répétition à l' infini). En général , les appels de procédures, l'éclosion des tortues et l ' envoi de messages consomment de la mémoire . Plus Je texte est long , et moins on aura de mémoire disponible pour ces opérations . JE ME SAUVE L'écran est en mode OUVERT et une tortue a dépassé les limites de l'écran . FORMAT AGE D'UNE DISQUETTE D'EXERCICE DE LOGO COULEUR Pour formater un disque de programmes de LOGO Couleur, il faut utiliser l ' instruction "DSKINl0" en BASIC . Toutefois, le LOGO Couleur n ' utilise pas l ' index du BASIC . Le LOGO Couleur subdivise la disquette en 1 6 modules dont les noms sont les cractères A à P. Une fois qu' une disquette a déjà été utilisée en LOGO Couleur, elle n 'est plus utilisable en BASIC . Chaque module de LOGO Couleur occupe 2 pistes, soit 36 secteurs, de la disquette . 122 APPENDICE 2 COPIE DE LA DISQUETTE DE LOGO COULEUR II est conseillé de faire une copie de la disquette de LOGO Couleur pour usage quotidien. Placer ensuite la disquette d ' origine en lieu sûr pour éviter toute détérioration . Pour effectuer cette copie, procéder comme suit: Ordinateur Couleur TRS-80 avec UNE SEULE unité de disques 1 · S 'assurer que l 'ordinateur couleur est bien connecté au téléviseur ou au moniteur couleur. Insérer le contrôleur de disques de l 'ordinateur couleur dans le logement rectangulaire qui se trouve du côté droit de l ' ordinateur. 2. Mettre e n marche le moniteur o u téléviseur, e t l 'ordinateur couleur. (L'interrupteur de l 'ordinateur se trouve à l ' arrière gauche de celui-ci ._ L' interrupteur de l ' unité de disques est à l 'arrière de celle-c i , à la partie supérieure). 3. Quand l 'ordinateur affiche "OK" , insérer une disquette vierge dans l 'unité de disques , puis inscrire DSKIN10 et appuyer sur ENTE R . 4. Quand l e message "OK" réapparaît, retirer la nouvelle disquette d e l' unité de disques . 5. Coller une languette , (fournie avec les disquettes neuves) sur l 'encoche carrée pratiquée sur la disquette du LOGO Couleur (en l ' absence de languette , se servir d'un petit morceau de ruban opaque) . 6. Insérer l a disquette d e LOGO Couleur dans l ' unité de disques, l 'encoche carrée vers l e haut et l 'étiquette vers la droite . Fermer le loquet de l ' unité de disques. 7 Inscrire BACKUP 0 et appuyer sur ENTER . · 8. Quand apparaît le message: "INSERT DESTINATION DISKETTE AND PRESS ENTER" (insérer la disquette destination et appuyer sur ENTER) , retin�r la disquette de LOGO Couleur (disquette origine) de l 'unité de disques. Insérer la nouvelle disquette utilisée à l 'étape 3 (disquette destination) dans l ' unité de disques . Fermer le loquet de l 'unité de disques, puis appuyer sur ENTER 9. Quand apparaît le message: "INSERT SOURCE DISKETTE A ND PRESS ENTER" (insérer la disquette origine et appuyer sur ENTER) , retirer la disquette destination de l ' unité de disques, insérer la disquette de LOGO Couleur, fermer le loquet de l ' unité de disques et appuyer sur ENTER . 123 1 0. Continuer à échanger ainsi disquette origine et disquette destination , en suivant les indica­ tions fournies par l'ordinateur. Le message «OK» réapparaît lorsque la copie est terminée. Ordinateur Couleur TRS-80 avec DEUX unités d e disques . 1. S 'assurer que l 'ordinateur couleur est bien connecté au téléviseur ou au moniteur couleur. Insérer le contrôleur de disques de l 'ordinateur couleur dans le logement rectangulaire qui se trouve du côté droit de l 'ordinateur. 2. Mettre e n marche l e moniteur ou téléviseur, et l 'ordinateur couleur. (L'interrupteur de l 'ordinateur se trouve à l' arrière gauche de celui-c i . L ' interrupteur de l ' unité de disques est à l 'arrière de celle-c i , à la partie supérieure) . 3. Insérer une disquette vierge dans l ' unité de disques 1 (la deuxième unité sur le câble à partir de l 'ordinateur couleur) . Fermer le loquet de l 'unité de disques. 4. Inscrire DSKINl1 et appuyer sur ENTE R . 5. Coller une languette , (fournie avec les disquettes neuves) sur l 'encoche carrée pratiquée sur la disquette du LOGO Couleur (en l ' absence de languette, se servir d ' un petit morceau de ruban opaque). 6. Insérer la disquette de LOGO Couleur dans l'unité de disques 0 (l'unité la plus proche de l'ordinateur couleur sur le câble) . Fermer le loquet de l 'unité de disques. 7. Inscrire BACKUP 0 TO 1 et appuyer sur ENTER. 8. L'ordinateur copie alors le contenu de l a disquette se trouvant dans l' unité 0 sur l a disquette se trouvant dans l' unité 1 . Le message "OK" réapparaît !orque la copie est terminée . 124 APPENDICE 3 GLOSSAIRE DES MOTS-CLES DU LOGO COULEUR 1 . ANGLAIS/FRANCAIS ANGLAIS Instruction FRANCAIS Abréviation Instruction ABS ABS BACK BK BACKGROUND BG ARRIERE FOND EFFACE COLORSET COULEURS ELSE SINON END FIN FD AVANT HATCH COUVE HE A DING CAP HIDETURTLE HOME HT CACHE AV CT CENTRE IF SI KEY TOUCHE LEFT AR FD CLEAR FORWARD Abréviation LT GAUCHE MAIL LETTRE MAKE CHANGE ME MOI NEAR JUSQUA NOT NON NOWRAP OUVERT GA 125 PADOLE MANETTE PEN COLOR PC CRAYON cc PENDOWN PD BAISSE BC PENUP PU LEVE LC PRINT ECRIS RANDOM ALEA REPEAT RIGHT REPETE RT SEND VALC SH SETX sx SETY SY SHAPE SHOWTURTLE DR ENVOIE SETH SETHEADING DROITE CCAP vc VALX vx VALY VY FORME ST MONTRE SLOW LENT STOP ARRET TO FAIS VANISH DISPARAIS WHILE QUAND WRAP FERME XLOC X YLOC y MT Messages d'erreur I CANT DO THAT IN THIS MODE IMPOSSIBLE DANS CE MODE ! I CANT FIGURE OUT JE NE PEUX FAIRE I DONT KNOW HOW MUCH IL ME MANQUE LA VALEUR I DONT KNOW HOW TO JE NE CONNAIS PAS MY MEMORY IS TOO FULL MA MEMOIRE EST PLEINE "( "OR" )" NOT RIGHT ERREUR DE "(" OU ")" OUT OF BOUNDS JE ME SAUVE 126 2. FRANCAIS/ANGLAIS ANGLAIS FRANCAIS Instruction Abréviation Instruction ABS ABS ALEA RANDOM ARRET STOP Abréviation ARRIERE AR BACK BK AVANT AV FORWARD FD BAISSE BC PENDOWN PD CACHE CT HIDETURTLE HT CAP CCAP vc HEADING SETHEADING CENTRE HOME CHANGE MAKE COULEURS COLORSET COUVE HATCH CRAYON cc DISPARAIS DROITE PENCO LOR DR RIGHT PRINT EFFACE CLEAR ENVOIE SEND FAIS TO FERME WRAP FIN END FD FORME GAUCHE B ACKGROUND RT BG SHAPE GA LEFT JUSQUA NEAR LENT SLOW LETTRE MAIL LEVE PC VANJSH ECRIS FOND SH LC PENUP LT PU 127 MANETTE PADOLE MOI ME MONTRE MT SHOWTURTLE NON NOT OUVERT NOWRAP QUAND WHILE REPETE REPEAT SI IF SINON ELSE TOUCHE KEY VALC SETH VALX vx VALY VY X y ST SETX sx SETY SY XLOC YLOC Messages d'erreur 128 ERREUR DE "(" OU ")" "( "OR" )" NOT RIGHT IL ME MANQUE LA VALEUR I DONT KNOW HOW MUCH IMPOSSIBLE DANS CE MODE ! I CANT DO THA T IN THIS MODE JE NE CONNAIS PAS I DONT KNOW HOW TO JE NE PEUX FAIRE I CANT FIGURE OUT JE ME SAUVE OUT OF BOUNDS MA MEMOIRE EST PLEINE MY MEMORY IS TOO FULL INDEX Un résumé du langage LOGO est donné à l ' appendice 1 , à partir de la page 1 07 . Par conséquent, les numéros de page inférieurs à 1 07 renvoient aux explications du manuel, alors que les numéros supérieurs renvoient au résumé de l 'appendice 1 . ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 1 1 8 Adresse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 ALEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 , 1 1 8 Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 Appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 5 AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 , 1 1 5 ARBRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ARC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ARRET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 , 1 1 3 ARRIERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0, 1 1 5 ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 AV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 , 1 1 5 AV ANT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 , 1 1 5 . . BAISSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 , 1 1 6 BC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 , 1 1 6 Boîte à lettres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 Bouclage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 DISPARAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 , Disquette . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 , 39, DR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 , DROITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 , DSKINI0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 9 , ECRIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 23 93, 1 0 1 , 1 1 4 Editeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 , 1 09 Edition, DESSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EFFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Effacement . . . 8, 54 1 15 .......................................... 31 Effacement, DESSIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 . Enoncé de contrôle . . . . . . . . . . . . . . . . . . . . . . 72, 1 1 3 ENVOIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 , 1 1 4 . . . Erreurs . . . . . . . . . .. .. . .. .. ......... . .. . . . . . . .. . . ..... .... EXECUTION ( Mode) 121 ..................... 13, 1 1 1 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 17, 1 13 .... ..................................... .... 3 1 , 1 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 1 1 4 FIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 Fin de boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 7 FOND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 , 1 1 5 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 22 FORME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 , 1 1 6 , 1 1 9 Fractal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 FD FERME . . CACHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0, 1 1 5 CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 8 Cartouche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 , 1 07 Cassette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 , 39 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 1 1 6 CCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 1 1 6 CENTRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 , 1 1 5 Cercle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 CHANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 1 1 4 Chargement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 , 39 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 COULEURS . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 , 1 1 5 Courrier en attente . . . . . . . . . . . . . . . . . . . . . . . . . 93 COUVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 , 1 4 CRAYON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 6 1 14 1 07 1 16 1 16 . . . . . . . . . . . Défilement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 DELAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 DESSIN (Mode) . . . . . . . . . . . . . . . . . . . . . 5 3 , 1 1 2 Dimensions d 'écran . . . . . . . . . . . . . . . . . . . . . . . . 1 1 0 GA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 1 1 6 Garde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GAUCHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 10, 1 16 Grille de recouvrement . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4, 15, 1 10 Inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Jeu I D Jeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 JUSQUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74, 1 18 129 LC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LENT LETTRE 1 15 . 91, 1 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 , 1 18 LEVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Littéral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 LETTRE LISP .. 35 73 , . . . . . . . . . . . . . . . . . . . . . . . . . . . Position sur l 'écran Procédure QUAND . . . . . . . . . . . . . . . . . . . . . . . . . . Manettes de commande Mémoire morte . . . . . . 9I, 1 17 . . . . . . . . . . . 94 , . . . . . . . . REPETE . SI 47 , 1 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 1 13 1 12 Structure 1 3, 1 17 Suppression 6, 1 07 ................... . . ..................................... 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tortues multiples . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 1 17 Tortue principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1\, 1 16 TOUCHE Multiprogrammation . . . . 1 16 .......................... 71 VALC . . . . . . . . . . . . . . ......................... . .. . .. ... . .... .. .... .. ..... .. 1 17 ..... ......... .. .. .. .... I 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Position centrale 130 1 14 1 16 1 16 . . . . . . . . 28, 1 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vitesse . . . . . . . ... . . . . . . ... ......... . VY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1 16 . 73 35, 1 16 . . . . . . . . . . . . . . 35 , 1 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78, 1 18 78, 1 18 . . . . . . . . . . . . . . . ?X . . ?Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vx . . . . . . . . . . . . . . . 72 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 1 1 7 . . . . . . . . . . . . . . . . . . . . . . . . 28, 1 1 7 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ........... . . . . . . . . . . 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 , vc 35, . . . . . . . . . . . . . . . . . . . . . . 35, ......... ...................... .. Variables globales Photographie 1 16 . . . . . . Variables locales Pas-à-pas . . . . . . . . . . . . . . . . . . . . . . . . . . 36, . . . . . . . . . . . . . . . . . . Variables OUVERT 1 18 VALX 17 . 1 20 VALY 44 . .. 71, ........... 17 ................ I l, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opérateurs relationnels 1 09 . . . . . . . . . . . . . . . . . . . . 90, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4, . . . . . . . 7 1 , 1 20 . . . . . . . . . . . . . . . . . . . . . . . . . 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orientation 6 . . . . . . . . . . . 5 1 , 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opérateurs logiques 1 I3 ........................ .... .. ..... . .... .... . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sous-procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . Niveau ROM SINON . . . . . . . . . . . . . . . . . . . . . . . . . Noms Retraits 1 09 . . . . . . . . . . . . . . . . . . . . . . Mots-clés MT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 , 99, 1 08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MOI . . . . . . . 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, Mode DESSIN Mode EXECUTION MONTRE 1 IO . . . . . . . 74, 1 1 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 3 9 Mode B REAK Modules 1 18 . . . . . . . . . . . . . . . . . . . . . . 93 . . . ... .. ........ .. ....... . ... ............ .. 91 Mode EDITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Récurrence Reset Messages . . . . . . . . . . . . . . . . . . . . . . ... ... ... .... .. ... . .... . . .. ...... 17, 1 15 . . . . . . . . . . . . . . . . . . . . . . . . . . 35 .............................. 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MANETTE . ">

Link pubblico aggiornato
Il link pubblico alla tua chat è stato aggiornato.