NASIUM L.S.E.

Instructions

Ce chapitre présente une description succinte des instructions du langage de programmation L.S.E. Pour plus de détails, voir les références.

Un programme se compose d'une sequence discontinue de lignes de programmes numérotés de 1 à 65535. Chaque ligne de programme peut contenir plusieurs instructions, séparées par un point-virgule. La dernière instruction peut être un commentaire commençant par le caractère *, et allant jusqu'à la fin de la ligne.

On peut aussi saisir une instruction en mode machine de bureau, c'est à dire sans numéro de ligne. Elle est alors exécutée immédiatement.

Exemple, un petit programme:

1* Résolution d'une équation du second degré. 
10 AFFICHER 'A=';LIRE A 
12 AFFICHER 'B=';LIRE B 
14 AFFICHER 'C=';LIRE C 
16 AFFICHER['Equation: U,'*X↑2 + ',U,'*X + ',U,' = 0']A,B,C 
20 DELTA←B*B-4*A*C 
22 SI DELTA<0 ALORS AFFICHER 'Pas de solutions réelles.';TERMINER 
24 SI DELTA=0 ALORS AFFICHER 'Solution: X=',-B/2/A;TERMINER 
26 AFFICHER 'Première solution: X=',(-B+RAC(DELTA))/2/A 
28 AFFICHER 'Deuxième solution: X=',(-B-RAC(DELTA))/2/A 
30 TERMINER 

Chacune des sections suivantes décrivent une instruction, selon le format suivant:

Table des instructions :

AFFECTATION

ref ← expression

L'instruction d'affectation permet de changer la valeur d'une variable ou d'un élément de tableau. ref doit être un identificateur de variable: une lettre suivie d'au plus quatre lettres ou chiffres, ou une référence de tableau: un identificateur de tableau, suivi d'un crochet ouvrant, d'une ou deux expressions index séparées par une virgule, et un crochet fermant. L'identificateur ne peut pas être un mot réservé du langage L.S.E.

Exemples: I PRNOM C12 V[2] V[I+1] M[1,3] M[I,J]

L'expression est une expression arithmétique ou une expression chaîne.

Si ref est une référence de tableau, alors il doit avoir été déclaré au préalable par une instruction TABLEAU.

Si l'expression est une expression chaîne, alors la variable ref doit avoir été déclarée au préalable par une instruction CHAINE.

Note: ← s'affiche comme une flêche vers la gauche sur un terminal Unicode, ou comme un souligné sur un terminal ASCII. Il se tape comme un souligné, touche 8 sur un clavier AZERTY, touche shift-moins sur un clavier QWERTY.

Voir: TABLEAU, CHAINE, FONCTIONS

AFFICHER

AFFICHER[format]expr1,...,expr2

L'instruction AFFICHER permet de faire afficher sur le terminal, des données. Le format entre crochet est optionel. Sans format, la valeur de chaque expression est affichée selon le format U (universel). Le format permet de spécifier plus précisément comment les valeurs doivent être formatées pour l'affichage.

En mode machine de bureau, AFFICHER peut aussi s'écrire ?.

Exemples:

? 2+3 
1 AFFICHER 'BONJOUR'  
2 AFFICHER[/,'X=',F5.2,3X,'N=',U,/]12.34,'BONJOUR'  
Voir: FORMAT

ALLEREN

ALLER EN ligne

L'instruction ALLER EN permet de poursuivre l'exécution à la ligne dont le numéro est indiqué.

APPEL

&PROID(ARGUMENTS,...)

&PROID est un identificateur de procédure sous-programme, il est composé du caractère &, suivi d'une lettre, suivi d'au plus quatre lettres ou chiffres.

Les ARGUMENTS sont des expressions pour les paramètres passés par valeur, ou des références (variables ou référence tableau) pour les paramètres passé par référence.

Voir: PROCEDURE

CHAINE

CHAINE id1,...,idn

L'instruction CHAINE permet de déclarer une ou plusieurs variable chaines. Ces variables ne doivent pas avoir été déclarées comme tableau ou affecté une valeur numérique au préalable (voir instruction LIBERER). Une fois déclarée comme chaîne, on peut lui affecter des valeurs chaîne de caractère.

Exemple:

1 CHAINE CH,CH2;CH←'BON';CH2←'JOUR';AFFICHER CH!CH2  
2 TERMINER  
Voir: LIBERER, TABLEAU, FONCTIONS

CHARGER

CHARGER VAR,NE,NF ou CHARGER VAR,NE,NF,VE

L'instruction CHARGER permet définir implicitement l'identificateur VAR comme une variable simple, une chaîne ou un tableau et de la charger avec le contenu de l'enregistrement de numéro NE du fichier NF.

NE doit être une expression donnant un nombre entier supérieur ou égal à 1.

NF doit être une expression chaîne donnant le nom du fichier (une lettre, suivi au plus de quatre lettres ou chiffres). Si le nom du fichier est précédé du caractère #, il s'agit d'un fichier donnée permanent, sinon d'un fichier temporaire.

Si le paramètre optionel VE est donné, ce doit être une variable simple, à laquelle est affectée un compte rendu du chargement:

VE = -2 le fichier de nom NF n'existe pas.

VE = -1 l'enregistrement de numéro NE n'existe pas.

VE = 0 VAR est une variable simple.

VE = 1 VAR est une variable tableau de une dimension.

VE = 2 VAR est une variable tableau de deux dimensions.

VE = 3 VAR est une variable chaîne.

Exemple:

1 CHARGER I,1,'FTEMP',VE;AFFICHER VE,I  
2 CHARGER CH,2,'#PERMA',VE;AFFICHER VE,CH  
3 TERMINER  
Voir: GARER, SUPPRIMER

DEBUT

DEBUT instruction1;...;instructionN FIN

L'instruction DEBUT ... FIN permet de regrouper plusieurs instructions pour qu'elles soient considérées comme une seule.

Voir: INSTRUCTIONSI

EXECUTER

EXECUTER FP ou EXECUTER FP,LN

L'instruction EXECUTER fonctionne comme une double commande : elle provoque le chargement du programme indiqué par l'expression chaîne FP (comme la commande APPELER), puis lance son exécution à partir de la ligne LN (ou de 1 si LN n'est pas donné) (comme la commande EXECUTER A PARTIR DE).

Celà permet donc d'enchaîner des programmes automatiquement.

Voir: APPELER, EXECUTER A PARTIR DE

FAIREJUSQUA

FAIRE ligne POUR var ← expri [PAS exprp] JUSQUA exprf

L'instruction FAIRE JUSQUA permet d'exécuter une boucle itérative.

ligne est le numéro n de la dernière ligne de la partie de programme à répéter.

var est le nom de la variable contrôlée; ce doit être une variable arithmétique simple.

expri est une expression qui donne la valeur initiale vi affectée à var.

exprp est une expression qui donne le pas vp, c'est à dire l'incrément ajouté à var à chaque itération. Par défaut c'est 1.

exprf est une expression qui donne la valeur finale vf.

La première fois qu'au cours de l'exécution on arrive à l'instruction FAIRE, la valeur vi est affectée à la variable contrôlée var. La valeur de var est testée.

Voir: FAIRETANTQUE, XIT

FAIRETANTQUE

FAIRE ligne POUR var ← expri [PAS exprp] TANT QUE condition

L'instruction FAIRE TANT QUE permet d'exécuter une boucle itérative.

ligne est le numéro n de la dernière ligne de la partie de programme à répéter.

var est le nom de la variable contrôlée; ce doit être une variable arithmétique simple.

expri est une expression qui donne la valeur initiale vi affectée à var.

exprp est une expression qui donne le pas vp, c'est à dire l'incrément ajouté à var à chaque itération. Par défaut c'est 1.

condition est une condition qui indique quand la boucle doit finir.

La première fois qu'au cours de l'exécution on arrive à l'instruction FAIRE, la valeur vi est affectée à la variable contrôlée var. La condition est testée.

Voir: FAIREJUSQUA, XIT

FORMAT

AFFICHER[format]expr1,...,expr2

Le format est une liste entre crochets de spécificateur de format séparés par des virgules. Chaque spécificateur peut être précédé d'un facteur de répétition, qui peut être soit un nombre, soit une étoile *. Lorsque c'est une étoile, une valeur dans la liste d'expressions est prise comme facteur de répétition variable.

Les spécificateurs sont:

'LITERAL' : la chaîne litérale est affichée (répétée s'il y a un facteur de répétition).

U : une valeur prise dans les expressions est affichée selon un format universel.

X : un espace est affiché.

L : provoque le passage à la ligne suivante sans retour au début de la ligne.

/ : provoque le passage à la ligne suivante, avec retour au début de la ligne.

C : provoque le retour au début de la ligne, sans passage à la ligne suivante.

Fe.d : affiche un nombre avec e chiffres avant le point décimal, et d chiffres après le point décimal.

Ee.d : affiche un nombre en notation scientifique avec e chiffres avant le point décimal, et d chiffres après le point décimal.

e et d sont compris entre 0 et 100.

Voir: AFFICHER

GARER

GARER VAR,NE,NF

L'instruction GARER permet copier l'information contenue dans la variable VAR (qui peut être une variable simple, une chaîne ou un tableau) dans l'enregistrement de numéro NE du fichier NF.

NE doit être une expression donnant un nombre entier supérieur ou égal à 1.

NF doit être une expression chaîne donnant le nom du fichier (une lettre, suivi au plus de quatre lettres ou chiffres). Si le nom du fichier est précédé du caractère #, il s'agit d'un fichier donnée permanent, sinon d'un fichier temporaire.

Exemple:

1 CHAINE CH;CH←'BONJOUR'  
2 I←42  
3 GARER I,1,'FTEMP'  
4 GARER CH,2,'#PERMA'  
5 TERMINER  
Voir: CHARGER, SUPPRIMER

INSTRUCTIONSI

SI condition ALORS instruction1 [SINON instruction2]

L'instruction SI permet de faire un choix entre deux instructions. Si la valeur de la condition est vrai, alors instruction1 est exécutée, sinon c'est instruction2 qui est exécutée.

On peut grouper plusieurs instructions en une seule grâce à l'instruction DEBUT ... FIN.

Voir: DEBUT

LIBERER

LIBERER id1,...,idn

L'instruction LIBERER permet de libérer une variable ou plusieurs variables, c'est à dire, d'oublier leurs valeurs et leurs types chaîne ou tableau. Les variables libérées peuvent ainsi être réutilisée (affectation d'une valeur numérique, ou déclaration par CHAINE ou TABLEAU).

Exemple:

1 CHAINE C;C←'BONJOUR';AFFICHER C  
2 LIBERER C;C←42;AFFICHER C  
4 TERMINER  
Voir: AFFECTATION, CHAINE, TABLEAU

LIRE

LIRE ref1,...,refn

L'instruction LIRE permet d'affecter aux variables ou éléments de tableau référencés une valeur tapée au clavier. L'instruction LIRE émet un siflement, puis attend que l'utilisateur saisisse les valeurs séparées par des espaces et/ou terminées par xoff. Les chaînes doivent être terminées par xoff.

Si une variable tableau est lue, l'utilisateur doit saisir une valeur pour chaque élément du tableau.

VOIR: AFFECTATION

PAUSE

PAUSE

L'instruction PAUSE suspend l'exécution du programme, et fait afficher sur l'écran un message indiquant le numéro de la ligne où se trouve l'instruction PAUSE.

On peut fair epoursuivre l'exécution du programme en utilisant les commandes CONTINUER, REPRENDRE ou POURSUIVRE.

Voir: TERMINER, CONTINUER, REPRENDRE A PARTIR DE, POURSUIVRE JUSQU'EN

PROCEDURE

PROCEDURE &PROID(parametre,...) [LOCAL var,...]

PROCEDURE n'est pas vraiment une instruction, mais plutôt une déclaration, car on ne peut pas l'exécuter : une erreur est signalée si l'exécution atteint cette déclaration.

PROCEDURE permet de déclarer une procédure sous-programme ou une procédure fonction.

&PROID est un identificateur de procédure, il est composé du caractère &, suivi d'une lettre, suivi d'au plus quatre lettres ou chiffres.

Suit une liste entre parenthèses d'identificateurs nommant les paramètres.

Optionnellement, la liste des paramètres peut être suivie de LOCAL suivit d'une liste d'identificateur de variables locales.

Ces variables locales peuvent aussi include des paramètres. Ils sont alors passé par valeur, au lieu d'être passés par référence.

Une procédure sous-programme doit finir avec une instruction RETOUR ou RETOUR EN.

Une procédure fonction doit finir avec une instruction RESULTAT.

Voir: RETOUR, RETOUREN, RESULTAT

RESULTAT

RESULTAT expression

L'instruction RESULTAT permet de finir l'exécution d'une procédure fonction et de donner le résultat de cette fonction. Ce résultat est alors utilisé dans l'expression d'où venait l'appel de procédure fonction.

Voir: PROCEDURE, RETOUR, RETOUR EN

RETOUR

RETOUR

L'instruction RETOUR permet de finir l'exécution d'une procédure sous-programme et de retourner à l'instruction qui suit l'appel de la procédure esous-programme.

Voir: PROCEDURE, RETOUREN, RESULTAT

RETOUREN

RETOUR EN ligne

L'instruction RETOUR EN permet de finir l'exécution d'une procédure sous-programme et de retourner à la ligne indiquée.

Voir: PROCEDURE, RETOUR, RESULTAT

SUPPRIMER

SUPPRIMER NF,NE ou SUPPRIMER NF

L'instruction SUPPRIMER permet de supprimer un enregistrement d'un fichier si NE est donné, ou un fichier entier sinon.

Exemple:

1 SUPPRIMER 'FTEMP'  
2 SUPPRIMER '#PERMA',2  
3 TERMINER  
Voir: GARER, CHARGER

TABLEAU

TABLEAU tab1,...,tabn

L'instruction TABLEAU permet de déclarer une ou plusieurs variable tableau. Chaque tabi doit être de la forme: IDENT[EXPR] pour un vecteur (tableau de dimension 1) ou IDENT[EXPR1,EXPR2] pour une matrice (tableau de dimension 2).

Ces variables ne doivent pas avoir été déclarées comme chaîne, ou affecté une valeur numérique au préalable (voir instruction LIBERER). Une fois déclarée comme tableau, on peut lui affecter des valeurs numérique à ses éléments.

Exemple:

1 N←3;M←4;TABLEAU V[3],MAT[N,M];V[1]←1;MAT[2,2]←2;AFFICHER V[1]+MAT[2,2]  
2 TERMINER  
Voir: LIBERER, CHAINE, FONCTIONS

TERMINER

TERMINER

L'instruction TERMINER arrête l'exécution du programme, et fait afficher sur l'écran un message indiquant TERMINE EN LIGNE nnn

Cette instruction est la dernière exécutée (ce n'est pas forcément la dernière dans le programme).

Voir: PAUSE, CONTINUER, POURSUIVRE JUSQU'EN, REPRENDRE A PARTIR DE, EXECUTER A PARTIR DE