Logo (langage)
| Image manquante Langage_progr.png image:Langage_progr.png |
| Cet article fait partie de la série Langages de programmation |
| Langages à objets |
| Ada 95 - C++ - C# Common Lisp Delphi - Eiffel - Java Nice - Oz - Python Simula - Smalltalk Visual Basic |
| Langages impératifs |
| APL - ASP - Assembleur BASIC - C - COBOL Forth - FORTRAN - Logo Pascal - Perl - PHP |
| Langages fonctionnels |
| Erlang - Haskell ML/OCaml - Oz Lisp/Common Lisp Scheme |
| Langages déclaratifs |
| Clips - Oz - Prolog |
| Langages concurrents |
| Ada 95 - Erlang Java - Oz |
| Langages balisés |
| HTML - SGML - XML Dialectes XML S-expressions |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
LOGO est un langage de programmation issu du langage Lisp, créé par Seymour Papert et Marvin Minsky du MIT à la fin des années 1960. C'est un langage interprété, évolutif, procédural et récursif.
Il a reçu de nombreuses interfaces de simulation. La plus connue est la tortue graphique. Mais il y eut aussi les tortues de planchers (robotique pédagogique), la composition musicale, les environnements de tortues newtoniennes (physique) et bien d'autres encore.
Dans un grand nombre d'interfaces de LOGO, l'écran est divisé en 2 parties :
- L'une pour l'objet graphique appelé TORTUE,
- l'autre pour la commande de la TORTUE.
Les définitions de mots nouveaux sont écrites dans l'éditeur ED.
Les mots définis sont appelés PRIMITIVES du langage. Les procédures exploitent les PRIMITIVES.
Notation mathématique : préfixe ou infixe.
Exemple :
- EC SOMME 10 3 ==> préfixe : l'opérateur est devant.
- EC 10 + 3 ==> infixe : l'opérateur est entre les nombres.
EC => ECrit le résultat dans la zone commande
Il existe 2 types d'objets : les MOTS et les LISTES.
Les MOTS sont aussi bien des nombres que des chaînes de caractères. Les LISTES sont des suites ordonnées d'objets.
Exemple de définition de procédure : la procédure CARRE devra tracer un carré à l'écran. Le texte est tapé dans l'éditeur du LOGO, puis sauvé.
POUR CARRE AV 90 TD 90 AV 90 TD 90 AV 90 TD 90 AV 90 TD 90 FIN
ou plus simplement
POUR CARRE REPETE 4[AV 90 TD 90] FIN
Emploi de CARRE dans une autre procédure :
POUR PLCARRE REPETE 36[CARRE TD 10] FIN
Dans cet exemple,
- «AV n» signifie «AVance la tortue du nombre de pas n»
- «TD n», «Tourne à Droite de n degrés (ici de 90 degrés)»
Pour employer PLCARRE, il suffit de taper dans la zone de commande PLCARRE.
Le passage de paramètres à une procédure est possible.
POUR CARRE :LG REPETE 4[AV :LG TD 90] FIN
Utilisation : CARRE 50 trace un carré de 50 pas de TORTUE.
| Français | Anglais | Définition |
|---|---|---|
| Primitives graphiques | ||
| AV n ou AVANCE n | FD n ou Forward n | la tortue avance de n pas |
| RE n ou RECULE n | BK n ou Back n | la tortue recule de n pas |
| TD n ou TOURNEDROITE n | RT n ou RIGHT n | la tortue tourne de n degrés d'angle vers la droite |
| TG n ou TOURNEGAUCHE n | LT n ou LEFT n | la tortue tourne de n degrés d'angle vers la gauche |
| LC | PU or PENUP | La tortue ne laisse pas de trace |
| BC | PD or PENDOWN | La tortue laisse sa trace (par défault) |
| CT | HT ou HIDETURTLE | la tortue n'est plus visible sur l'écran graphique |
| MT | ST ou SHOWTURTLE | La tortue est visible sur l'écran graphique |
| ENR ou ENROULE | WRAP | Enroule l'écran graphique |
| FEN | WINDOWS | La tortue peut sortir du jardin et disparaitre de l'écran graphique |
| CLOS | FENCE | La tortue ne peut pas sortir du jardin |
| ORIGINE | HOME | Retour au milieu du carré de salade |
| VE | CS ou CLEARSCREEN | Efface toutes les traces et restaure l'état initial |
| NETTOIE | CLEAN | Efface toutes traces de l'écran graphique |
| VT | CT or CLEARTEXT | Efface l'écran de commande |
| FCC n | SETPC n | Change la couleur du crayon, n est un entier positif |
| FCFG n | SETBG n | Change la couleur du fond, n est un entier positif |
| FCB n | ***** | Change la couleur des bords, n est un entier positif |
| FCAP n | SETH ou SETHEADING | Fixe le CAP de maniere ABSOLUE de la tortue, suivant l'angle n en degrés |
| 0 CAP vers le haut de l'écran, 90 vers la droite, 180 en bas, 270 à gauche | ||
| FPOS [X Y] | SETPOS [X Y] | Fixe la POSITION de la tortue avec une LISTE de 2 nombres entiers. |
| Ex : LC FPOS [50 35] BC ou avec des variables DONNE "X 50 DONNE "Y 35 FPOS PH :X :Y | ||
| Primitives mathématiques | ||
| n1 + n2 | n1 + n2 | Addition de nombres réels - Ex : EC 45.124 + 11 ou EC (+ 45 10 78 23) |
| n1 - n2 | n1 - n2 | Soustraction de nombres réels - Ex :EC 5 - 1.09 |
| n1 * n2 | n1 * n2 | Multiplication de nombres réels - Ex :EC 5 * 9 |
| n1 / n2 | n1 / n2 | Division de deux nombres réels - Ex :EC 45 / 9 |
| SOMME n1 n2 | SUM n1 n2 | Addition de nombres réels - Ex : EC SOMME 45 11 |
| DIFF n1 n2 | - n1 n2 | Soustraction de nombres réels - Ex :EC DIFF 5 1 |
| PROD ou PRODUIT n1 n2 | PRODUCT n1 n2 | Multiplication de nombres réels - Ex :EC PROD 5 9.45 |
| DIV n1 n2 | QUOTIENT n1 n2 | Division de deux nombres réels - Ex :EC DIV 45 11 |
| QUOTIENT n1 n2 | QUOTIENT n1 n2 | Division de deux nombres réels - Ex :EC DIV 45 11 |
| RESTE n1 n2 | REMAINDER n1 n2 | Reste de la division |
| ENT n | INT n | Renvoie la partie entière du nombre réel - Ex :EC ENT 55.75 -> 55 |
| ARRONDI n | ROUND n | Arrondi un nombre réel - Ex :EC ARRONDI 55.75 -> 56 |
| ABS n | ABS n | Renvoie la valeur un nombre réel - Ex :EC ABS -55 -> 55 |
| HASARD n | RANDOM n | Renvoie un nombre entier entre 0 et n-1 |
| RC n | SQR n | Renvoie la racine carré d'un nombre réel - Ex :EC RC 25 -> 5 |
| LOG n | LOG n | Renvoie le logarithme naturel d'un réel |
| LOG10 n | LOG10 n | Renvoie le logarithme de base 10 d'un réel |
| EXP n | EXP n | Renvoie l'exponentielle d'un réel |
| SIN n | SIN n | Renvoie le sinus d'un réel n en degrés - Ex :SIN 30 |
| COS n | COS n | Renvoie le cosinus d'un réel n en degrés |
| TAN n | TAN n | Renvoie la tangente d'un réel n en degrés |
| ATAN n | ATAN n | Renvoie tangente d'arc d'un réel n en degrés |
| PI | PI | 3.141592... |
| RADIANS n | RADIANS n | Converti un angle en radians n en degrés |
| DEGRES n | DEGRES n | Converti un angle en degrés n en radians |
Remarques :
- Si vous disposez de GNU-Linux, et des cédéroms Debian ou d'une connexion Internet, vous pouvez installer Logo, en tapant la commande « apt-get install ucblogo ».
- Pour le lancer, taper « logo »
- C'est une version anglaise
- Programme sous GPL
- Pour les amateurs de KDE il existe http://klogoturtle.sourceforge.net/
- Ressources Logo libres pour MS Windows et Linux : Logo - Apprendre à programmer, programmer pour apprendre
- Pour tout système d'exploitation, Xlogo est une version Java de Logo et fonctionne ainsi sur Windows, Mac, Linux: http://xlogo.free.fr/ ,une présentation de Xlogo: http://www.libersciences.net/logiciels/xlogo
