Accueil🇫🇷Chercher

NCL (langage)

NCL (sigle de Nat System’s Command Language[1]) est un langage de programmation de 4e génération, créé par Nat System pour l'Environnement de développement intégré NSDK et plus tard utilisé dans Natstar.

NCL
Date de première version 1987
Paradigme Programmation évènementielle
DĂ©veloppeur Nat System
Typage Statique, fort
Influencé par C/C++
Système d'exploitation Microsoft Windows
Site web www.natsystem.fr

Syntaxe

Extraire une chaîne

Pour extraire une chaîne on utilise la fonction COPY, qui permet comme son nom l'indique de copier.

var = "Hello World !"

var2 = " "

var3 = " "

var2 = COPY$(var,0,5) ; pour récupèrer Hello

var3 = COPY$(var,6,5) ; pour récupèrer World

Dans le cas d'une variable dont on ne connaît pas la taille, on utilise une variable qui récupère sa taille

var4 = LENGTH var

var3 = COPY$(var,0,var4)

Construire une chaîne

En prenant les mĂŞmes variables que ci-dessus :

var4 = " "

var4 = var2 & var3

Cela donne : HelloWorld

var4 = var2 && var3

Cela donne : Hello World

Le "&" colle sans espace, le "&&" colle avec un espace.

Mettre en Majuscule ou en Miniscule une phrase ou un mot

Pour ce faire, on utilise les fonctions UPCASE et LOWCASE.

UPCASE pour mettre en majuscule :

upcase var4

Cela donne: HELLO WORLD

LOWCASE pour mettre en minuscule

Boucles

Bien qu’elles aient toutes un rôle similaire, chaque boucle est pourtant adaptée à une situation :

  • Structure tant que (adaptĂ©e pour effectuer des opĂ©rations tant qu’une condition n’est pas rencontrĂ©e) :
While <expression booléenne>
  instruction(s)
EndWhile
  • Structure faire … tant que (adaptĂ©e pour effectuer des opĂ©rations qui demandent le mĂŞme Ă©tat d’origine Ă  chaque itĂ©ration) :
Repeat
  instruction(s)
Until <expression booléenne>

Boucle sans condition au début ou à la fin (quand la condition est au milieu des traitements):

Loop
  instruction(s)
  If <expression booléenne>
    instruction(s)
    Break
  EndIf
  instruction(s)
EndLoop
  • Structure pour (adaptĂ©e lorsqu'une collection doit ĂŞtre parcourue en totalitĂ© pour traitement) :
For <expression de type numérique> = <valeur de début> To <valeur de fin> Step <expression d’incrémentation>
  Instruction(s)
EndFor

Structures conditionnelles

Structure si : condition simple

If <expression booléenne>
  instruction(s)
EndIf

Structure si … sinon : condition avec alternative unique

If <expression booléenne>
  instruction(s)
Else
  instruction(s)
EndIf

Structure si … ou si … ou si … : condition avec alternatives multiples

If <expression booléenne>
  instruction(s)
ElseIf <expression booléenne>
  instruction(s)
ElseIf <expression booléenne>
  instruction(s)
Else
  instruction(s)
EndIf

Structure atteindre … cas x … cas y …" : embranchement vers un bloc d’instructions énuméré

Evaluate <expression>
  Where <expression>
    instruction(s)
  EndWhere 
  Where <expression1>, <expression2> To <expression3>, <expression4>
    instruction(s)
  EndWhere 
  [...]
Else
  instruction(s)
EndEvaluate

Evaluate fonctionne avec les types entiers, flottants et chaîne (attention, "A" ≠ "a"). Les expressions dans les Where peuvent être arbitrairement complexes, mais le code est plus efficace quand on utilise uniquement une expression entière dans l'Evaluate et de simples constantes littérales entières (12, $7F) en évitant les grands intervalles (n1 To n2 quand n2 - n1 >= 16) dans les Where.

La commande Break sort immédiatement de la boucle en cours (For, While, Repeat ou Loop), même si elle apparaît dans un Evaluate.

De même, Continue ramène au début de la boucle (en passant à l'itération suivante dans le cas d'une boucle For).

Les instructions Exit ou Return font quitter fonction, instruction ou évènement, en retournant la valeur par défaut (0, 0.0 ou "") selon le type retourné dans le cas des fonctions et évènements.

Avec Return uneValeur, uneValeur sera renvoyée à la méthode appelante (si l'on est dans une fonction ou un évènement appelé par Send avec variable de retour).

Exemples

Fonction qui retourne l’aire d’un cercle :

Function AireDuCercle#(Num Rayon) Return Num
	Return 3.14159265 * Rayon * Rayon ; Il est possible d'utiliser la valeur PI# qui est définie dans NSMATH.NCL
EndFunction
Message "AireDuCercle", "L'aire d'un cercle de rayon 2.4cm est :" && String$(AireDuCercle#(2.4)) && "cm²."

La dernière ligne de l'exemple ci-dessus va afficher une fenêtre ayant pour titre "AireDuCercle" et pour contenu la phrase : "L'aire d'un cercle de rayon 2.4cm est 18.0864 cm²."

Notes et références

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.