title: NCL (langage)
text: # NCL (langage)
  
  NCL (sigle de Nat System’s Command Language) 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.
  
  ## Syntaxe
  
  ### Structures de contrôle
  
  **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) :
  * Structure faire … tant que (adaptée pour effectuer des opérations qui demandent le même état d’origine à chaque itération) :
  
  Boucle sans condition au début ou à la fin (quand la condition est au milieu des traitements):
  
  * Structure pour (adaptée lorsqu'une collection doit être parcourue en totalité pour traitement) :
  
  **Structures conditionnelles**
  
  Structure si : condition simple
  
  Structure si … sinon : condition avec alternative unique
  
  Structure si … ou si … ou si … : condition avec alternatives multiples
  
  Structure atteindre … cas x … cas y …" : embranchement vers un bloc d’instructions énuméré
  
  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 :
  
  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²."
  
  