Gestion des procédures et des variables

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

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