Les procédures sont des sortes de «programmes ». A l'appel de
leur nom, les instructions comprises dans le corps de la procédure
sont exécutées. On définit une procédure à l'aide du mot-clé pour.
pour nom_de_la_procédure :v1 :v2 :v3 ....
Corps de la procédure
fin
nom_de_la_procédure est le nom donnée à la procédure.
:v1 :v2 :v3 représentent les variables utilisées au sein de cette
procédure (variables locales).
Corps de la procédure représente les instructions à exécuter à l'appel
de cette procédure.
Ex:
pour carre :c
repete 4[av :c td 90]
fin
La procédure se nomme carre et possède un paramètre s'appelant
c. carre 100 produira donc un carre de côté 100. (Voir les
exemples de procédures à la fin du manuel.)
Il est possible depuis la version 0.7c de rajouter des commentaires dans le code en les précédant du signe #.
pour carre :c
#cette procédure permet de tracer un carré de côté donné :c.
repete 4[av :c td 90] # pratique, non?
fin
IMPORTANT: Il ne doit pas y avoir de commentaires sur la ligne du pour et sur celle de fin.
Notion de variables - Il existe deux sortes de variables
- Les variables globales: elles sont toujours disponibles à n'importe
quel endroit du programme.
- Les variables locales: elles ne sont accessibles que dans la procédure
où elles ont été définies.
Dans cette version de LOGO, les variables locales ne sont pas accessibles
dans les sous-procédures. A la sortie de la procédure, les variables
locales sont éliminées.
Primitives |
Paramètres |
Utilisation |
donne |
a b: a mot, b quelconque |
Si la variable locale a existe, lui affecte la valeur b. Sinon, crée
la variable globale a en lui affectant la valeur b. |
|
|
Ex: donne ``a 100 affecte 100 à la variable a |
locale |
a: mot |
Crée une variable nommée a. Attention, celle-ci n'est pas initialisée.
Pour lui donner une valeur, voir donne. |
donnelocale |
a b: a mot, b quelconque |
Crée une nouvelle variable locale a et lui affecte la valeur b. |
def, definis |
mot1 liste2 liste3 |
Définis une nouvelle procédure nommée mot1, munie des variables contenues dans liste2 et dont les instructions à exécuter sont contenues dans liste3.
def "polygone [nb longueur]
[repete :nb[av :longueur td 360/:nb]]
--> Ceci définit une procédure nommée polygone avec deux variables (:nb et :longueur). Elle permet de tracer un polygône régulier dont on peut choisir le nombre de côtés et la longueur de chacun des côtés.
|
|
chose |
a : mot |
Renvoie la valeur de la variable a. |
|
|
chose "a et :a sont deux notations équivalentes. |
efn, effacenom |
a: mot |
Efface la procédure s'appelant a. |
efv, effacevariable |
a: mot |
Efface la variable a. |
efns, effacenoms |
aucun |
Efface toutes les variables et procédures en cours. |
imts |
aucun |
Enumère toutes les procédures actuellement définies. |
listevariables |
aucun |
Renvoie une liste contenant l'ensemble des variables actuellement définies. |
exec, execute |
a :liste |
Exécute la liste d'instruction contenue dans la liste. |
Loïc
2005-08-16