Contenu

# LibreLogo

LibreLogo est un environnement de programmation comme Logo, simple, avec des images vectorielles tortue pour l'enseignement de la programmation et du traitement de texte, le DTP et la création graphique. Voir http://www.numbertext.org/logo/librelogo.pdf.

## Barre d'outils LibreLogo

La barre d'outils LibreLogo (Affichage - Barres d'outils - Logo) contient le déplacement de la tortue, l'arrêt et le démarrage du programme, origine et effacer l'écran ainsi que des icônes pour la mise en évidence de la syntaxe/traduction et une barre de saisie (ligne de commande).

## Icônes de déplacement de la tortue

Elles sont équivalentes aux commandes Logo “AVANCE 10”, “RECULE 10”, “GAUCHE 15”, “DROITE 15”. Cliquer sur l'une de ces icônes mettra le focus sur la forme de la tortue en faisant défiler la page à sa position.

## Démarrer le programme Logo

Cliquez sur l'icône "Démarrer le programme Logo" pour exécuter le texte (ou uniquement celui sélectionné) du document Writer comme un programme LibreLogo. Dans un document vide, un programme exemple sera inséré et exécuté.

Cliquez sur l'icône "Arrêter" pour arrêter l'exécution du programme.

## Origine

Cliquez sur l'icône "Origine" pour réinitialiser la position et les paramètres de la tortue.

## Effacer l'écran

Cliquez sur l'icône "Effacer l'écran" pour supprimer les objets de dessin du document.

## Éditeur/Mise en évidence de la syntaxe/Traduction du programme

L'icône «baguette magique» définit une mise en page sur 2 pages pour l'édition de programmes, développe et converti en majuscules des commandes Logo abrégées, en minuscules les commandes Logo dans le document Writer. Modifiez la langue du document dans LibreOffice - Préférences Outils - Options - Paramètres linguistiques - Langues - Général - Occidentales) et cliquez sur l'icône pour traduire le programme Logo dans la langue sélectionnée.

## Ligne de commande

Appuyez sur Entrée dans la ligne de commande pour exécuter son contenu. Pour arrêter le programme, utilisez l'icône "Arrêter".

Maintenez la touche Entrée pour répéter la ligne de commande, par exemple, dans la séquence de commande suivante :

     AVANCE 200 GAUCHE 89

Pour réinitialiser la ligne de commande, cliquez trois fois dedans ou appuyez sur Commande Ctrl+A pour sélectionner les commandes précédentes et saisissez les nouvelles commandes.

## Interface utilisateur graphique des paramètres de base tortue

La forme de tortue de LibreLogo est un objet de dessin de taille normale fixe. Vous pouvez la positionner et la pivoter de façon standard également en utilisant la souris ou l'icône Pivoter dans la barre d'outils des propriétés de l'objet de dessin. Modifiez les paramètres d'épaisseur de la ligne, de couleur de ligne et de couleur de remplissage de la forme de la tortue pour définir les attributs TAILLECRAYON, COULEURCRAYON et PEINSCOULEUR de LibreLogo.

## Édition du programme

Les dessins et les programmes LibreLogo utilisent le même document Writer. Le canevas LibreLogo est sur la première page du document Writer. Vous pouvez insérer un saut de page avant les programmes LibreLogo et définir le zoom en utilisant l'icône "baguette magique" de la barre d'outils Logo, également modifier la taille de police pour une mise en page sur confortable sur deux pages pour la programmation LibreLogo : la page gauche (première page) est le canevas, la page droite (seconde page) est pour l'éditeur de programme Logo.

# Langage de programmation LibreLogo

LibreLogo est un langage de programmation facile à traduire, basé sur Logo, traduit en plusieurs langues par les communautés de langue native de LibreOffice. Il est rétro compatible avec les systèmes Logo précédents dans le cas de programmes Logo simples utilisés, par exemple, dans l'éducation.

     À triangle :taille
     RÉPÈTE 3 [
       AVANCE :taille
       GAUCHE 120
     ]
     FIN

     triangle 10 triangle 100 triangle 200

## Différences avec le langage de programmation Logo

- Les membres de liste sont séparés par des virgules : POSITION [0, 0]

- Les blocs de programme et les listes sont différents

- - Les blocs de programme ont besoin d'un espace ou d'une nouvelle ligne entre les parenthèses : RÉPÈTE 10 [ AVANCE 10 GAUCHE 36 ]

  - Les listes ont besoin de parenthèses sans espace : POSITION [0, 0] et non POSITION [ 0, 0 ]

- Les déclarations de fonction sur une ligne ne sont pas prises en charge (À et FIN ont besoin d'une nouvelle ligne).

## Autres fonctions de LibreLogo

- Les deux points avant les noms de variables sont facultatifs.

       À taille triangle
         RÉPÈTE 3 [ AVANCE taille GAUCHE 120 ]
       FIN

- La notation des chaînes prend en charge la correction orthographique et la syntaxe Python.

       ÉCRIS "mot ; syntaxe originale Logo
       ÉCRIS “Texte aléatoire.” ; orthographe, Writer
       ÉCRIS 'Texte aléatoire.' ; syntaxe Python

- Liste Python et gestion des chaînes

       ÉCRIS “texte”[2] ; imprime “x”
       ÉCRIS “texte”[1:3] ; imprime “ex”

- Boucle FOR comme en Python

- Déclaration de variables comme en Python :

       x = 15
       ÉCRIS x

- Il n'y a pas de fonctions de requêtes supplémentaires :

       ÉCRIS COULEURREMPLISSAGE
       p = POSITION
       ÉCRIS p
       RÉPÈTE 10 [ TOUTE POSITION POSITION p ]

- Parenthèses facultatives dans les appels de fonction

       À étoile taille couleur
       couleur COULEURREMPLISSAGE
       RÉPÈTE 5 [ GAUCHE 72 AVANCE taille DROITE 144 AVANCE taille ]
       REMPLIR
       FIN

       étoile 100 “rouge”
       étoile (100, “vert”)
       étoile(100, “bleu”)

# Commandes LibreLogo

## Syntaxe basique

### Sensibilité à la casse

Les commandes, les constantes de couleur ne sont pas sensibles à la casse :

     ÉCRIS “Hello, monde !”
     imprime “Hello, Monde, encore !”

Les noms de variable sont sensibles à la casse :

     a = 5
     A = 7
     ÉCRIS a
     ÉCRIS A

### Lignes de programme

Les lignes d'un programme LibreLogo sont des paragraphes d'un document LibreOffice Writer. Une ligne de programme peut contenir plusieurs commandes :

     ÉCRIS “Hello, Monde!” ÉCRIS “LibreLogo”

### Commentaires

Les lignes ou les parties de ligne sont des commentaires d'un point-virgule à la fin de la ligne (paragraphe) :

     ; des commentaires
     ÉCRIS 5 * 5 ; des commentaires

### Couper les lignes de programme en plusieurs paragraphes

Il est possible de couper une ligne de programme en plusieurs paragraphes en utilisant le caractère tilde à la fin de la ligne :

     ÉCRIS “C'est un très long ” + ~
           “message d'avertissement”

## Déplacement de la tortue

### AVANCE (av)

     AVANCE 10 ; déplacer en avant de 10pt (1pt = 1/72 inch)
     AVANCE 10pt ; voir ci-dessus
     AVANCE 0.5in ; déplacer en avant de 0.5 inch (1 inch = 2,54 cm)
     AVANCE 1" ; voir ci-dessus
     AV 1mm
     AV 1cm

### RECULE (re)

     RECULE 10 ; déplacer en arrière de 10pt

### GAUCHE (ga)

     GAUCHE 90 ; tourner dans le sens inverse des aiguilles d'une montre de 90 degrés
     GAUCHE 90° ; voir ci-dessus
     GA 3h ; voir ci-dessus (position des aiguilles)
     GA tout ; tourner dans une position aléatoire

### DROITE (dr)

     DROITE 90 ; tourner dans le sens des aiguilles d'une montre de 90 degrés

### LEVECRAYON (lc)

     LEVECRAYON ; la tortue se déplace sans dessiner

### BAISSECRAYON (bc)

     BAISSECRAYON ; la tortue se déplace en dessinant

### POSITION (pos)

     POSITION [0, 0] ; tourner et se déplacer vers le coin supérieur gauche
     POSITION TAILLEPAGE ; tourner et se déplacer vers le coin inférieur droit
     POSITION [TAILLEPAGE[0], 0] ; tourner et se déplacer vers le coin supérieur droit
     POSITION TOUT ; tourner et se déplacer à une position aléatoire

### CAP (fc)

     CAP 0 ; tourner au nord
     CAP 12h ; voir au-dessus
     CAP [0, 0] ; tourner au coin supérieur gauche
    CAP TOUT ; tourner dans une direction aléatoire

## Autres commandes de la tortue

### CACHETORTUE (ct)

     CACHETORTUE ; masquer la tortue (jusqu'à la commande MONTRETORTUE)

### MONTRETORTUE (mt)

     MONTRETORTUE ; afficher la tortue

### ORIGINE

     ORIGINE ; ramener la tortue à sa position initiale

### EFFACEÉCRAN (ee)

     EFFACEÉCRAN ; supprimer les objets de dessin du document

### REMPLIR et FERMER

     REMPLIR ; fermer et remplir la ligne ou les points actifs
     FERMER ; fermer la forme de ligne active ou joindre les points actifs

Exemple : remplir un triangle équilatéral :

     AVANCE 50 GAUCHE 120 AVANCE 50 REMPLIR

Exemple : dessiner un triangle équilatéral :

     AVANCE 50 GAUCHE 120 AVANCE 50 FERMER

## Paramètres du stylo

### TAILLEPLUME (ta)

     TAILLEPLUME 100 ; l'épaisseur de la ligne est de 100 points
     TAILLEPLUME TOUT ; équivalent à TAILLEPLUME ALEATOIRE 10

### COULEURCRAYON/CCRAYON (cc)

     COULEURCRAYON “rouge” ; définir la couleur du stylo sur rouge (par nom de couleur, voir constantes de couleur)
     COULEURCRAYON [255, 255, 0] ; définir la couleur sur jaune (liste RGB)
     COULEURCRAYON 0xffff00 ; définir la couleur sur jaune (code hexa)
     COULEURCRAYON 0 ; définir la couleur sur noir (0x000000)
     COULEURCRAYON TOUT ; couleur aléatoire
     COULEURCRAYON [5] ; définir la couleur sur rouge (par identifiant de couleur, voir les constantes de couleur)
     COULEURCRAYON “invisible” ; couleur de stylo invisible pour les formes sans contour visible
     COULEURCRAYON “~rouge” ; définir une couleur rouge aléatoire

### TRANSPARENCECRAYON

     TRANSPARENCECRAYON 80 ; définit la transparence de la couleur actuelle du crayon sur 80 %

### COIFFECRAYON/COIFFELIGNE

     COIFFECRAYON "aucune" ; sans fin de ligne (par défaut)
    COIFFECRAYON "arrondi" ; fin de ligne arrondie
     COIFFECRAYON "carré" ; fin de ligne carrée

### JOINTURESTYLO/JOINTURELIGNE

     JOINTURESTYLO “arrondi” ; jointure de ligne arrondie (par défaut)
     JOINTURESTYLO “droit” ; jointure de ligne nette
     JOINTURESTYLO “biseau” ; jointure de ligne biseautée
     JOINTURESTYLO “aucun” ; sans jointure de ligne

### STYLECRAYON

     STYLECRAYON “plein” ; ligne pleine (par défaut)
     STYLECRAYON “pointillé” ; ligne pointillée
     STYLECRAYON “tiret” ; ligne de tirets

     ; motif personnalisé de points et de tirets spécifié par une liste contenant les arguments suivants :
     ; – nombre de points voisins
     ; – longueur d'un point
     ; – nombre de tirets voisins
     ; – longueur d'un tiret
     ; – distance des points/tirets
     ; – type (facultatif):
     ;   0 = les points sont des rectangles (par défaut)
     ;   2 = les points sont des carrés (les longueurs et les distances sont relatives à la taille du stylo)

     STYLECRAYON [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## Paramètres de remplissage

### COULEURREMPLISSAGE (cr)

     COULEURREMPLISSAGE "bleu" ; remplit avec la couleur bleu, voir également COULEURCRAYON
     COULEURREMPLISSAGE "invisible " CERCLE 10 ; cercle non rempli
     COULEURREMPLISSAGE [“bleu”, “rouge”] ; dégradé entre rouge et bleu
     COULEURREMPLISSAGE [[255, 255, 255], [255, 128, 0]] ; entre blanc et orange
     COULEURREMPLISSAGE [“bleu”, “rouge”, 1, 0, 0] ; définit l'axe du dégradé (avec la bonne rotation et la définition des bordures), valeurs possibles : 0-5 = dégradé linéaire, axial, radial, elliptique, carré ou rectangulaire
     COULEURREMPLISSAGE  [“rouge”, “bleu”, 0, 90, 20] ; linéaire avec une bordure de 20%, rotation de 90 degrés à partir de l'orientation actuelle de la tortue
     COULEURREMPLISSAGE [“rouge”, 'bleu”, 0, 90, 20, 0, 0, 200, 50] ; intensité de 200% à 50%
     COULEURREMPLISSAGE [TOUT, TOUT, 2, 0, 0, 50, 50] ; dégradé radial avec des couleurs aléatoires et 50-50% positions horizontale et verticale du centre

### TRANSPARENCEREMPLIR

     TRANSPARENCEREMPLIR 80 ; définit la transparence de la couleur de remplissage actuelle sur 80%
     TRANSPARENCEREMPLIR [80] ; définit le dégradé de transparence linéaire de 80% à 0%
     TRANSPARENCEREMPLIR [80, 20] ; définit le dégradé de transparence linéaire de 80% à 20%
     TRANSPARENCEREMPLIR [80, 20, 1, 90] ; définit le dégradé de transparence axial pivoté à 90 degrés à partir de l'orientation actuelle de la tortue
     TRANSPARENCEREMPLIR [80, 20, 2, 0, 20, 50, 50] ; définit le dégradé de transparence radial de l'extérieur de 80% vers l'intérieur de 20% de transparence avec une bordure de 20% et avec 50-50% positions horizontale et verticale du centre

### STYLEREMPLISSAGE

     STYLEREMPLISSAGE 0 ; remplir sans hachure (par défaut)
     STYLEREMPLISSAGE 1 ; hachures simples noires (horizontales)
     STYLEREMPLISSAGE 2 ; hachures simples noires (45 degrés)
     STYLEREMPLISSAGE 3 ; hachures simples noires (-45 degrés)
     STYLEREMPLISSAGE 4 ; hachures simples noires (verticales)
     STYLEREMPLISSAGE 5 ; hachures croisées rouges (45 degrés)
     STYLEREMPLISSAGE 6 ; hachures croisées rouges (0 degrés)
     STYLEREMPLISSAGE 7 ; hachures croisées bleues(45 degrés)
     STYLEREMPLISSAGE 8 ; hachures croisées bleues (0 degrés)
     STYLEREMPLISSAGE 9 ; triple croix bleue
     STYLEREMPLISSAGE 10 ; hachures simples larges noires (45 degré)

     ; hachures personnalisées spécifiées par les arguments suivants :
     ; – style (1 = simple, 2 = double, 3 = triple hachures)
     ; – couleur
     ; – distance
     ; – degré

     STYLEREMPLISSAGE [2, “green”, 3pt, 15°] ; hachures croisées vertes (15 degrés)

## Objets de dessin

### CERCLE

     CERCLE 100 ; dessiner une forme de cercle (diamètre = 100pt)

### ELLIPSE

     ELLIPSE [50, 100] ; dessiner une ellipse de diamètres 50 et 100
     ELLIPSE [50, 100, 2h, 12h] ; dessiner un secteur d'ellipse (de 2h à 12h)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; dessiner un segment elliptique
     ELLIPSE [50, 100, 2h, 12h, 3]  ; dessiner un arc elliptique

### CARRÉ

     CARRÉ 100 ; dessiner une forme carrée (taille = 100pt)

### RECTANGLE

     RECTANGLE [50, 100] ; dessiner une forme de rectangle (50×100 pt)
     RECTANGLE [50, 100, 10] ; dessiner un rectangle avec des angles arrondis

### POINT

     POINT ; dessiner un point ayant la taille et la couleur du stylo

FERMER peut joindre les derniers points, REMPLIR peut remplir la forme définie par les points. Par exemple, il est facile de dessiner une étoile "plate" en partant de son centre :

     LEVECRAYON
    RÉPÈTE 5[
     AVANCE 80
     POINT
     RECULE 80
     DROITE 36
     AVANCE 50
     POINT
     RECULE 50
     DROITE120
    ] REMPLIR

### ÉTIQUETTE

     ÉTIQUETTE “texte” ; imprime le texte à la position de la tortue
     ÉTIQUETTE 'texte' ; voir ci-dessus
     ÉTIQUETTE "texte ; voir ci-dessus (uniquement pour les mots seuls)

### TEXTE

     CERCLE 10 TEXTE “texte” ; définir le texte de l'objet de dessin actif

## Paramètres de police

### COULEURPOLICE

     COULEURPOLICE “vert” ; définir la couleur de la police

### FAMILLEPOLICE

     FAMILLEPOLICE “Linux Libertine G” ; définir la police (famille)
     FAMILLEPOLICE “Linux Libertine G:smcp=1” ; définir également l'attribut de police (petites majuscules)
     FAMILLEPOLICE “Linux Libertine G:smcp=1&onum=1” ; petites majuscules + anciennes figures

### TAILLEPOLICE

     TAILLEPOLICE 12 ; définir sur 12pt

### GRAISSE

     GRAISSE “gras” ; définir la police sur gras
     GRAISSE “normal” ; définir une épaisseur normale

### STYLEPOLICE

     STYLEPOLICE “italique” ; définir la variante italique
     STYLEPOLICE “normal” ; définir la variante normale

## IMAGE (ima)

IMAGE est pour

- grouper les formes ;

- débuter de nouvelles formes de lignes ;

- enregistrer des images SVG et des animations SVG/SMIL ;

- garder la cohérence des positions et des formes de lignes à la bordure gauche.

### Grouper les formes

     ; IMAGE [ commandes_LibreLogo ]
     IMAGE [ AVANCE 100 CERCLE 100 ] ; formes groupées en arborescence

Voir également "Groupe" dans l'aide LibreOffice Writer

     À emplacement arbre
       LEVECRAYON POSITION emplacement CAP 0 BAISSECRAYON
       IMAGE [ AVANCE 100 CERCLE 100 ] ; formes groupées en arborescence
     FIN
    .
     IMAGE [ arbre [230, 400] arbre [300, 400] ] ; formes groupées dans une forme groupée

### Débuter de nouvelles formes de ligne

     IMAGE ; débute une nouvelle forme de ligne
     AVANCE 10 IMAGE AVANCE 10 ; formes sur deux lignes

### Enregistrement des images SVG

     IMAGE "exemple.svg" [ CERCLE 5 ] ; enregistre l'image comme fichier image SVG dans le répertoire de l'utilisateur
     IMAGE "bureau/exemple.sfg [AVANCE 100 CERCLE 5] ; comme ci-dessus avec une chemin relatif
     IMAGE "/home/utilisateur/exemple.svg" [CERCLE 5] ; chemin absolu pour Unix/Linux
     IMAGE "C:\exemple.svg" [ CERCLE 5] ; chemin absolu pour Windows

### Enregistrement des animations SVG/SMIL (dessins avec la commande SUSPENDRE)

     IMAGE "animation.svg" [ CERCLE 5 SUSPENDRE 1000 CERCLE 99] ; enregistre comme animation SVG/SMIL (voir également SUSPENDRE)
     IMAGE "animation2.svg" [CERCLE 5 SUSPENDRE 1000 CERCLE 99 SUSPENDRE 2000] ; comme ci-dessus, mais avec l'utilisation de SUSPENDRE après le dernier objet cela résultera en une boucle : après 2 secondes l'animation SVG redémarre dans les navigateurs compatibles SMIL

### Cohérence à la bordure gauche

Utiliser IMAGE pour garder la cohérence des positions et des formes de ligne à la bordure gauche du document Writer :

     IMAGE [ CERCLE 20 POSITION [-100, 100] CERCLE 20 ]

## Boucles

### RÉPÈTE

     ; RÉPÈTE nombre [ commandes ]

     RÉPÈTE 10 [ AVANCE 10 GAUCHE 45 CERCLE 10 ] ; répéter 10 fois

     ; nombre est facultatif

     RÉPÈTE [ POSITION TOUT ] ; boucle sans fin

### NOMBREREP

variable de boucle (également dans les boucles FOR et WHILE).

     RÉPÈTE 100 [ AVANCE NOMBREREP GAUCHE 90 ]

### POUR DANS

Boucle pour les éléments de liste :

     POUR i DANS [1, 5, 7, 9, 11] [
       AVANCE i
       GAUCHE 90
     ]

Boucle pour les caractères d'une séquence de caractères :

     POUR i DANS “texte” [
       ÉTIQUETTE i
       AVANCE 10
     ]

### ALORS

     ALORS VRAI [ POSITION TOUT ] ; boucle sans fin
     ALORS NOMBREREP <= 10 [ AVANCE 50 GAUCHE 36 ] ; idem que RÉPÈTE 10 [ ... ]

### SAUT

Arrêter la boucle.

     RÉPÈTE [ ; boucle sans fin
       POSITION TOUT
       SI NOMBREREP = 100 [ SAUT ]  ; équivalent à RÉPÈTE 100 [ ... ]
     ]

### CONTINUER

Saute à l'itération suivante de la boucle.

     RÉPÈTE 100 [
       TOUTE POSITION
       SI NOMBREREP % 2 = 0 [ CONTINUER ]
       CERCLE 10 ; dessiner des cercles à toutes les secondes positions
     ]

## Conditions

### SI

     ; SI condition [ bloc vrai ]
     ; SI condition [ bloc vrai ] [ bloc faux ]

     SI a < 10 [ ÉCRIS “Petit” ]
     SI a < 10 [ ÉCRIS “Petit” ] [ ÉCRIS “Gros” ]

### ET, OU, NON

Opérateurs logiques.

     SI a < 10 ET NON a = 5 [ ÉCRIS “0, 1, 2, 3, 4, 6, 7, 8 ou 9” ]
     SI a < 10 ET a  != 5 [ ÉCRIS “0, 1, 2, 3, 4, 6, 7, 8 or 9” ]  ; comme ci-dessus

## Sous-routines

### À, FIN

Nouveau mot (ou procédure).

     À triangle
       RÉPÈTE 2 [ AVANCE 100 DROIT 120 ] REMPLIR
     FIN

     RÉPÈTE 10 [ triangle LEVECRAYON POSITION TOUT BAISSECRAYON ]

### SORTIE

Renvoie la valeur d'une fonction.

     À lettrealéatoire
       SORTIE ALEATOIRE “qwertzuiopasdfghjklyxcvbnm”
     FIN

     ÉCRIS lettrealéatoire + lettrealéatoire + lettrealéatoire ; imprime une séquence de caractère aléatoire de trois lettres.

### STOP

Renvoie d'une procédure.

     À nombre exemple
       SI nombre < 0 [ STOP ]
       ÉCRIS RACINE nombre ; imprime la racine carrée
     ]

     exemple 100
     exemple -1 ; sans sortie ni erreur
     exemple 25

## Variables par défaut

### TOUT

Valeur aléatoire par défaut des couleurs, etc.

     COULEURCRAYON TOUT ; couleur de crayon aléatoire

### VRAI

Valeur logique.

     ALORS VRAI [ POSITION TOUT ] ; boucle sans fin
     ÉCRIS VRAI ; imprime vrai

### FAUX

Valeur logique.

     ALORS NON FAUX [ POSITION TOUT ] ; boucle sans fin
     ÉCRIS FAUX ; imprime faux

### TAILLEPAGE

     ÉCRIS TAILLEPAGE ; imprime la liste des tailles de page en points, ex. [595.30, 841.89]

### PI/π

     ÉCRIS PI ; imprime 3.14159265359

## Entrée/Sortie

### ÉCRIS

     ÉCRIS “texte” ; imprime “texte” dans une boîte de dialogue
     ÉCRIS 5 + 10 ; imprime 15

### ENTREE

     ÉCRIS ENTREE “Valeur d'entrée ?” ; demande et imprime une chaîne à travers une boîte de dialogue de requête
     ÉCRIS VIRGULE (ENTREE “Premier nombre ?”) + VIRGULE (ENTREE “Second nombre ?”) ; simple calculateur

## SUSPENDRE

     SUSPENDRE 1000 ; attend 1000 ms (1 sec)

## GLOBAL

Définir les variables globales utilisées dans les procédures.

     GLOBAL à propos
     à propos = “LibreLogo”

     À exemple
       ÉCRIS à propos
       GLOBAL à propos ; lorsqu'une nouvelle valeur doit être ajoutée
       à propos = “nouvelle valeur pour la variable global”
     FIN

     exemple.
     ÉCRIS à propos

## Fonctions

### HASARD

     ÉCRIS HASARD 100 ; nombre à virgule aléatoire (0 <= x < 100)
     ÉCRIS HASARD “texte” ; lettre aléatoire de “texte”
     ÉCRIS HASARD [1, 2] ; élément de liste aléatoire (1 or 2)

### ENT

     ÉCRIS ENT 3,8 ; imprimer 3 (partie entière de 3,8)
     ÉCRIS ENT HASARD 100 ; nombre entier aléatoire (0 <= x < 100)
     ÉCRIS ENT “7” ; convertir le paramètre de chaîne en entier

### VIRGULE

     ; convertir le paramètre de chaîne en nombre à virgule
     ÉCRIS 2 * VIRGULE “5,5” ; imprime 11,0

### CAR

     ; convertir le paramètre de nombre en chaîne
     ÉCRIS “Résultat : ” + CAR 5 ; écrit “Résultat : 5”
     ÉCRIS 10 * CAR 5 ; écrit 5555555555

### RACINE

     ÉCRIS RACINE 100 ; imprime 10, racine carrée de 100

### SIN

     ÉCRIS SIN 90 * PI/180 ; imprime 1,0 (sinus de 90° en radians)

### COS

     ÉCRIS COS 0 * PI/180 ; imprime 1,0 (le cosinus de 0° en radians)

### LOG10

     ÉCRIS LOG10 100 ; imprime 2.0 (logarithme commun de 100)

### ARRONDI

     ÉCRIS ARRONDI 3,8 ; imprimer 4 (arrondi de 3,8)
     ÉCRIS ARRONDI HASARD 100 ; nombre entier aléatoire (0 <= x <= 100)

### ABS

     ÉCRIS ABS -10 ; imprime 10, la valeur absolue de -10

### COMPTE

     ÉCRIS COMPTE “texte” ; imprime 5, nombre de caractères de “texte”
     ÉCRIS COMPTE [1, 2, 3] ; imprime 3, la taille de la liste

### FIXE

     ; Convertir la liste en un ensemble Python
     ÉCRIS FIXE [4, 5, 6, 6] ; imprime {4, 5, 6}
     ÉCRIS FIXE [4, 5, 6, 6] | FIXE [4, 1, 9] ; imprime {1, 4, 5, 6, 9}, l'union
     ÉCRIS FIXE [4, 5, 6, 6] & FIXE [4, 1, 9] ; imprime {4}, l'intersection
     ÉCRIS FIXE ([4, 5, 6, 6]) - FIXE [4, 1, 9] ; imprime {5, 6}, la différence
     ÉCRIS FIXE [4, 5, 6, 6] ^ FIXE [4, 1, 9] ; imprime {1, 5, 6, 9}, la différence symétrique

### PLAGE

     ; génération de listes comme Python
     ÉCRIS PLAGE 10 ; imprime [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     ÉCRIS PLAGE LISTE 3 10 ; imprime [3, 4, 5, 6, 7, 8, 9]
     ÉCRIS PLAGE LISTE 3 10 3 ; imprime [3, 6, 9]

     POUR i DANS PLAGE 10 50 10 [ ; boucle pour [10, 20, 30, 40]
       AVANCE i
       GAUCHE 90
     ]

### LISTE

     ; supprime les éléments répétitifs d'une liste en utilisant un ensemble et la conversion de liste
     ÉCRIS LISTE (FIXE [1, 3, 5, 5, 2, 1]) ; imprime [1, 3, 5, 2]

### TUPLE

Conversion en tuple Python (liste non modifiable)

     ÉCRIS TUPLE [4, 5]

### TRIÉ

Cela renvoie une liste triée.

     ÉCRIS TRIÉ [5, 1, 3, 4] ; imprime [1, 3, 4, 5]

### SUB

Substituer des séquences de caractères en utilisant les motifs d'expressions régulières

     ÉCRIS SUB (“t”, “T”, “texte”) ; imprime “Texte”, remplaçant “t” avec “T”
     ÉCRIS SUB (“(.)”, “\\1\\1”, “text”) ; imprime “tteexxtt”, doublant chaque caractère

### RECHERCHE

Rechercher des motifs de séquences de caractères en utilisant les motifs d'expressions régulières.

     SI RECHERCHE (“\m”, "mot") [ ÉCRIS “lettre du mot.” ]

### TOUTTROUVER

Trouver toutes les séquences de caractères dans la chaîne saisie correspondant au motif d'expression régulière donné

     ÉCRIS TOUTTROUVER(“\m+”, “Chiens, chats.”) ; imprime [“Chiens”, “chats”], la liste des mots.

### MIN

     ÉCRIS MIN [1, 2, 3] ; imprime 1, l'élément le plus bas de la liste

### MAX

     ÉCRIS MAX [1, 2, 3] ; imprime 3, l'élément le plus haut de la liste

## Constantes de couleur

     COULEURCRAYON “ARGENT” ; définir par le nom
     COULEURCRAYON [1] ; définir par les identifiants
     COULEURCRAYON “~ARGENT” ; couleur argent aléatoire

Identifiant | Nom
--- | ---
0 | NOIR
1 | ARGENT
2 | GRIS
3 | BLANC
4 | MARRON
5 | ROUGE
6 | VIOLET
7 | FUCHSIA/MAGENTA
8 | VERT
9 | TILLEUL
10 | OLIVE
11 | JAUNE
12 | MARINE
13 | BLEU
14 | TURQUOISE
15 | EAU
16 | ROSE
17 | TOMATE
18 | ORANGE
19 | OR
20 | POURPRE
21 | BLEUCIEL
22 | CHOCOLAT
23 | BRUN
24 | INVISIBLE