NASIUM L.S.E.

Fonctions

Ce chapitre présente une description succinte des fonctions du système L.S.E. Pour plus de détails, voir les références.

On inclu également les opérateurs. Les expressions peuvent combiner plusieurs opérations et appels de fonctions. Voir la section PRIORITE, pour l'ordre d'évaluation des opérateurs, lorsqu'ils ne sont pas groupés avec des parenthèses.

Les appels peuvent se faire aux fonctions primitives décrite dans ce chapitre, ou à des procédure fonctions déclarée dans le programme (voir instructions PROCEDURE et RESULTAT). Les procédure fonctions ont un identificateur començant par un caractère '&'.

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

Table des fonctions :

! - Concaténation de deux chaînes

A!B

Résultat: La concatenation des chaînes A et B.

ABS - Valeur absolue

ABS(A)

Résultat: La valeur absolue de A.

ALE - Valeur pseudo-aléatoire

ALE(A)

Résultat: Une valeur pseudo-aléatoire comprise entre 0 et 1 (bornes exclues).

Si A=0 alors le résultat est vraiment aléatoire (différent à chaque appel).

Si 0<A<1 alors le résultat dépent de A, ce qui permet de calculer des séries pseudo-aléatoire reproduisibles.

ATG - Arc tangente

ATG(A)

Résultat: L'arc tangente de A, exprimé en radian.

ATT - Signal d'attention utilisateur

ATT()

Cette fonction retourne normalement 0.

Lorsque l'utilisateur tape [ATTENTION], ATT() retourne transitoirement 1.

CCA - Conversion en caractère

CCA(A)

Résultat: une chaîne de caractère contenant la représentation du nombre A au format U.

CNB - Conversion en nombre

CNB(CH,DE) ou CNB(CH,DE,VA)

Résultat: un nombre converti de la sous-chaîne de CH commençant à la position DE. (Les espaces initiaux sont ignorés).

Si VA est présent, ce doit être une variable arithmétique à laquelle la fonction CNB affecte la position du premier caractère qui n'est pas utilisé dans la représentation.

COMPARAISON

A<B, A<=B, A>B, A>=B, A=B, A#B

A et B doivent être du même type, soit tous les deux nombres, soit tous les deux chaînes.

Résultat: vrai ou faux, selon l'ordre de A et B.

CONJONCTION

comparaison1 ET comparaison2

Résultat: conjonction des deux comparaisons.

COS - Cosinus

COS(A)

Résultat: Le Cosinus de l'angle A exprimé en radian.

DAT - Chaîne date

DAT()

Résultat: une chaîne au format AA/MM/DD HH:MM:SS représentant la date et l'heure courante.

Note: Cette fonction n'est pas conforme Y2K, elle retourne 00 pour 2000.

DISJONCTION

conjonction1 OU conjonction2

Résultat: disjonction des deux conjonctions.

DIVISE - Quotient de deux nombres

A/B

Résultat: Le produit de la multiplication entre A et B.

B doit être non-nul, sinon un erreur est détectée.

ENT - Partie entière

ENT(A)

Résultat: La partie entière de A.

ENV - Variable d'environement

ENV(NOM)

Résultat: une chaîne contenant la valeur de la variable d'environement POSIX du nom indiqué. Si la variable d'environement n'existe pas, une chaîne vide est retournée.

Exemple: ENV('USERNAME') --> 'pjb'

EQC - Équivalent caractère

EQC(CO)

Résultat: une chaîne de 1 caractère dont l'équivalent numérique en code ASCII est CO.

EQN - Équivalent numérique

EQN(CH) ou EQN(CH,PO)

Résultat: l'équivalent numérique en code ASCII du caractère de la chaine CH qui se trouve en position PO, ou en première position si PO est omis.

ETL - ET logique bit-à-bit

ETL(A,B)

Résultat: le ET logique bit-à-bit entre les bits de A et ceux de B.

EXP - exponentiation e↑A

EXP(A)

Résultat: e à la puissance A.

e=2.7182817

LGN est l'inverse de EXP.

FOIS - Produit de deux nombres

A*B

Résultat: Le produit de la multiplication entre A et B.

GRL - Groupe de lettres

GRL(CH,DE) ou GRL(CH,DE,VA)

Résultat: la sous-chaîne composée de la première séquence continue de lettres à partir de la position DE.

Si VA est présent, ce doit être une variable arithmétique à laquelle la fonction SCH affecte soit la position du premier caractère qui n'est pas une lettre, soit LGR(CH)+1 si le dernier caractère de la sous-chaîne est le dernier caractère de la chaîne.

LGN - Logarithme népérien

LGN(A)

Résultat: Le logarithme népérien de A.

L'argument A doit être un nombre strictement positif, sinon une erreur est détectée.

LGR - Longueur d'une chaîne

LGR(A)

Résultat: la longueur de la chaîne A.

LISP - Evaluation d'une expression LISP

LISP(EXPR,PRINT,NOERR)

Cette fonction évalue l'expression Common Lisp EXPR.

1* FONCTION LISP(EXPR,PRINT,NOERR) 
2* PRINT=0 => LISP() N'AFFICHE RIEN; 
3* PRINT=1 => LISP() AFFICHE LES RESULTATS DE L'EXPRESSION LISP. 
4 PRINT←1 
5* NOERR=0 => SI UNE ERREUR EST DETECTEE ELLE EST RAPPORTEE NORMALEMENT. 
6* NOERR=1 => SI UNE ERREUR EST DETECTEE, LISP() RETOURNE 0.0. 
7 NOERR←1 
8 A←LISP('(TRUNCATE 10 3)',PRINT,NOERR) 
9 TERMINER 

MOINS - Différence de deux nombres

A-B

Résultat: La difference entre A et B.

NEGATION

NON condition

Résultat: La négation logique de la condition.

OPPOSÉ - Changement de signe

-A

Résultat: L'opposé de A.

OUL - OU logique bit-à-bit

OUL(A,B)

Résultat le OU logique bit-à-bit entre les bits de A et ceux de B.

OUX - OU exclusif bit-à-bit

OUX(A,B)

Résultat le OU exclusif bit-à-bit entre les bits de A et ceux de B.

PLUS - Somme de deux nombres

A+B

Résultat: La somme des deux nombres.

POS - Position d'une sous-chaîne

POS(CH,DE,SC)

Résultat: la position de la première occurence de la sous-chaîne SC dans la chaîne CH, après la position DE, ou 0 si SC n'est pas une sous-chaîne de CH.

DE doit être un nombre entier supérieur ou égal à 1.

PRIORITE

Priorité des opérateurs

Hors présence de parenthèses, les opérations sont évaluées par ordre de priorité décroissante:

PTR - Pointeur

PTR(CH,DE) ou PTR(CH,DE,EV)

Résultat: la position dans la chaîne CH, à partir de la position DE, soit du premier caractère qui n'est pas une lettre si EV n'est pas donné, soit du premier caractère qui est n'est pas dans la chaîne EV; ou bien LGR(CH)+1 si tous les caractères sont des lettres, ou si tous les caractères sont dans la chaine EV.

PUISSANCE - Élévation à la puissance

A↑B

Résultat: A à la puissance B.

Si A est négatif, alors B doit être entier.

Note sur un terminal Unicode, ↑ s'affiche comme une flêche vers le haut. Sur un terminal ASCII, c'est un chapeau, AltGr-9 ou chapeau espace sur un clavier AZERTY, Shift-6 sur un clavier QWERTY.

RAC - Racine carrée

RAC(A)

Résultat: La racine carrée de A.

L'argument A doit être un nombre positif ou nul, sinon une erreur est détectée.

SCH - Sous-chaîne

SCH(CH,DE,LO[,VA]) ou SCH(CH,DE,SC[,VA])

CH est une chaîne d'où SCH va extraire une sous-chaîne.

DE est la position de départ de la sous-chaîne.

LO est la longueur de la sous-chaîne.

SC est une chaîne contenant les caractères d'arrêt de la sous-chaîne.

Résultat: une sous-chaîne de CH, commençant à la position DE, de longueur LO ou allant jusqu'à la première occurence d'un des caractères de SC.

Si VA est présent, ce doit être une variable arithmétique à laquelle la fonction SCH affecte soit la position du premier caractère qui n'est pas utilisé dans la représentation, soit LGR(CH)+1 si le dernier caractère de la sous-chaîne est le dernier caractère de la chaîne.

SIN - Sinus

SIN(A)

Résultat: Le Sinus de l'angle A exprimé en radian.

SITERNAIRE

SI condition ALORS expr1 SINON expr2

Résultat: si condition est vrai alors le résultat de l'expression expr1, sinon le résultat de l'expression expr2.

SKP - Saut

SKP(CH,DE) ou SKP(CH,DE,EV)

Résultat: la position dans la chaîne CH, à partir de la position DE, de la première lettre si EV n'est pas donné, ou du premier caractère qui n'est pas dans la chaîne EV; ou bien LGR(CH)+1 si aucune lettre, ou si tous les caractères sont dans la chaine EV.

TEM - Temps en seconde écoulé depuis minuit.

TEM(A)

Résultat: Le nombre de secondes écoulées depuis le début du jour (minuit).

XIT - Sortie de boucles

XIT(N)

Cette procédure permet de sortir d'un ou de plusieurs niveaux de boucles.

Si N=0 alors cet procédure ne fait rien.

Si N=1 alors on sort de la boucle courante.

Si N>1 alors on sort de N boucle imbriquées.

Si N est supérieur au nombre de boucles imbriquées, on sort de toutes les boucles.

Voir: FAIREJUSQUA, FAIRETANTQUE