LARP – Logiciel d’Algorithmes et Résolution de Problèmes

 

Page précédente

Page suivante

Contenu

7. Opérateurs et fonctions prédéfinies

 

Afin de permettre les calculs mathématiques, LARP supporte plusieurs opérations arithmétiques et fonctions mathématiques généralement retrouvées sur une calculatrice scientifique. De plus, LARP offre aussi plusieurs fonctions facilitant la manipulation de chaînes de caractères et de conteneurs.

 

7.1 Opérateurs arithmétiques

 

LARP supporte les principaux opérateurs arithmétiques. Ceux-ci sont présentés dans le tableau qui suit, en ordre croissant de priorités (les opérateurs de priorités égales sur une même ligne) :

 

+, -

Addition et soustraction

*, /, //, %

Multiplication, division flottante, division entière et modulo

^

Puissance

-

Négation

 

Dans une expression, LARP évalue donc d'abord (négation), puis ^, puis *, /, // et %, et enfin + et -. Pour deux opérateurs successifs de priorités égales, l’évaluation se fait de gauche vers la droite. On peut aussi grouper des sous-expressions entre parenthèses :

 

ÉCRIRE 7/5                 \\ affiche 1.4

ÉCRIRE 7//5                \\ affiche 1

ÉCRIRE 7%5                 \\ affiche 2

ÉCRIRE 2^5                 \\ affiche 32

ÉCRIRE 4+8/2+1             \\ équivaut à 4+(8/2)+1 = 9

ÉCRIRE (4+8)/(2+1)         \\ affiche 4

 

Certains opérateurs arithmétiques n’acceptent qu’un type de scalaire précis :

 

// (division entière)

Les deux expressions chaque côté de l’opérateur sont convertis en entier.

% (modulo)

Les deux expressions chaque côté de l’opérateur sont convertis en entier.

 

Lorsque la conversion à l’entier est requise, la partie fractionnelle d’une valeur flottante est éliminée. Ainsi, 14.8%5 deviendra lors de l’évaluation 14%5, qui donne 4.

 

Lorsqu'une expression arithmétique implique des types non compatibles, LARP interrompt l'exécution du pseudo-code et affiche un message d'erreur indiquant l'incompatibilité. Une telle incompatibilité est aussi rapportée lorsqu'une valeur indéfinie est impliquée.

 

7.2 Opérateurs sur chaînes de caractères

 

LARP supporte un seul opérateur applicable aux chaînes de caractères :

 

+

Concaténation (i.e. joindre deux chaînes)

 

L’opérateur + peut être utilisé pour joindre des chaînes bout à bout (communément appelée la concaténation). L’exemple qui suit démontre bien l’utilisation de cet opérateur :

 

a = "ou " + "ne"               \\ Concaténation

ÉCRIRE a                       \\ affiche ou ne

b = "Être" + a + " pas être"   \\ Concaténation

ÉCRIRE b                       \\ affiche Être ou ne pas être

 

Notez que les chaînes de caractères impliquées dans l'opération demeurent inchangées (e.g. dans la troisième ligne de l'exemple ci-dessus, la chaîne dans la variable a demeure inchangée).

 

Attention : lorsque l'opérateur + implique une chaîne de caractères et un nombre (entier ou flottant), LARP va d'abord tenter de convertir la chaîne de caractères en nombre afin d'effectuer une addition. Si la tentative de conversion échoue, le nombre est convertit en chaîne et il y a concaténation :

 

a = "12" + 10                  \\ a = l'entier 22

b = 10 + "12"                  \\ b = l'entier 22

c = "12z" + 10                 \\ c = la chaîne 12z10

d = "12" + "10"                \\ d = la chaîne 1210

e = d + 2000                   \\ e = l'entier 3210

f = "12" + "10" + 5            \\ f = l'entier 1215, car le

                               \\     premier + produit "1210"

 

7.3 Opérateurs sur conteneurs

 

LARP supporte deux opérateurs applicables aux conteneurs :

 

+

Concaténation (i.e. joindre deux conteneurs)

-

Différence, éliminant du premier conteneur les éléments du second

 

L’opérateur + peut être utilisé pour joindre des conteneurs bout à bout (communément appelée la concaténation) ou ajouter un élément au début ou à la fin d'un conteneur. L’exemple qui suit démontre bien l’utilisation de cet opérateur :

 

a = [20, 30] + [30, 40]        \\ a = [20, 30, 30, 40]

b = 10 + a + 50                \\ b = [10, 20, 30, 30, 40, 50]

 

L'opérateur élimine du premier conteneur tout élément retrouvé dans le second conteneur :

 

a = [1, 2, 3, 2, 4] - [2, 5]   \\ a = [1, 3, 4]

b = a - 3                      \\ b = [1, 4]

 

Notez que les conteneurs impliqués dans l'opération demeurent inchangés (e.g. dans la deuxième ligne de l'exemple ci-dessus, le conteneur dans la variable a demeure inchangé).

 

Attention : lorsque l'opérateur élimine tous les éléments du premier conteneur, la valeur retournée est indéfinie. Vous pouvez utiliser l'identificateur Conteneur afin de déterminer si l'opération a produit un résultat. Dans l'exemple ci-dessous rien ne sera affiché puisque la différence  produit un résultat indéfini (i.e. aucun conteneur résultant) :

 

a = [1, 2]

b = [2, 1]

SI a-b est Conteneur ALORS

  ÉCRIRE b

FINSI

 

Vous pouvez lire plus sur ce sujet dans la section Tests de type.

 

7.4 Fonctions prédéfinies

 

LARP dispose de trois catégories de fonctions prédéfinies :

 

  1. Les fonctions mathématiques applicables à des nombres ou des ensembles de nombres.
  2. Les fonctions de manipulation de chaînes de caractères.
  3. Les fonctions de manipulation de conteneurs.

 

Les sections qui suivent énumèrent les fonctions de chaque catégorie. Pour connaître la syntaxe exacte d’une fonction en particulier et/ou obtenir plus d'information, cliquez sur le nom de la fonction visée dans le tableau.

 

7.4.1 Fonctions mathématiques

 

Les principales constantes et fonctions mathématiques sont disponibles dans LARP :

 

Fonctions

Description

Exemples

Absolu

Retourne la valeur absolue de la valeur donnée

Absolu(-6)

Aléatoire

Retourne un nombre flottant ou entier choisi au hasard (plusieurs versions sont disponibles)

Aléatoire

Aléatoire(11)

Aléatoire(2.3, 15.0)

ArcTangente

Retourne tan-1 de la valeur donnée

ArcTangente(0.0)

Arrondir

Retourne la valeur donnée arrondie au plus proche entier

Arrondir(12.6)

Cosinus

Retourne le cosinus de la valeur donnée (en radian)

Cosinus(1.5707963)

EnChaîne

Convertit la valeur en paramètre en chaîne de caractères.

EnChaîne(12.34)

 

Exp

Retourne la base du logarithme naturel

Exp

Log10

Retourne le logarithme base 10 de la valeur donnée

Log10(100)

LogE

Retourne le logarithme base e de la valeur donnée

LogE(2.1)

Maximum

Retourne la plus grande valeur parmi celles données (deux valeurs ou plus)

Maximum(11.1, 12, 7)

Minimum

Retourne la plus petite valeur parmi celles données (deux valeurs ou plus)

Minimum(11.1, 12, 7)

Pi

Retourne la valeur de p

aire = Pi * r * r

Plafond

Retourne le plus petit entier supérieur ou égal à la valeur donnée

Plafond(12.1)

Plancher

Retourne le plus grand entier inférieur ou égal à la valeur donnée

Plancher(12.1)

Racine

Retourne la racine carrée de la valeur donnée

Racine(25)

Sinus

Retourne le sinus de la valeur donnée (en radian)

Sinus(1.5707963)

 

7.4.2 Fonctions de manipulation de chaînes de caractères

 

LARP offre une gamme limitée de fonctions applicables aux chaînes de caractères. Ces fonctions offrent par contre l'essentiel de la fonctionnalité permettant d'écrire d'autres fonctions plus sophistiquées :

 

Fonctions

Description

Exemple

Compter

Retourne le nombre de caractères dans la chaîne (synonyme de longueur)

Compter("allo")

  retourne 4

EnCaractères

Convertit la chaîne de caractères donnée en un conteneur ayant chaque caractère comme élément distinct

EnCaractères("Bye")

  retourne ['B', 'y', 'e']

Formater

Retourne une chaîne de caractères constituée à partir d'une chaîne de formatage et d'une séquences d'arguments

Formater("%5.2f", 3.1)

  retourne " 3.10"

Longueur

Retourne le nombre de caractères dans la chaîne (synonyme de compter)

Longueur("allo")

  retourne 4

Majuscules

Retourne la chaîne donnée en paramètre avec ses lettres minuscules converties en majuscules

Majuscules("Allo")

  retourne "ALLO"

Minuscules

Retourne la chaîne donnée en paramètre avec ses lettres majuscules converties en minuscules

Minuscules("Allo")

  retourne "allo"

Position

Retourne la position où débute la première occurrence de la première chaîne dans la seconde

Position("cd","abcde")

  retourne 3

SousEnsemble

Retourne un sous-ensemble de la chaîne fournie (le second paramètre indique l'index de départ, et le 3ième indique le nombre de caractères à extraire)

SousEnsemble("abcde",

             2, 3)

  retourne "bcd"  

     

 

7.4.3 Fonctions de manipulation de conteneurs

 

LARP offre une gamme limitée de fonctions applicables aux conteneurs. Ces fonctions offrent par contre l'essentiel de la fonctionnalité permettant d'écrire d'autres fonctions plus sophistiquées :

 

Fonctions

Description

Exemple

 

Capacité

Retourne le nombre d'éléments définis et non définis (voir la commande détruire) retrouvés dans le conteneur

Capacité([1, , 2, ])

  retourne 4

 

Compter

Retourne le nombre d'éléments définis retrouvés dans le conteneur

Compter([1, , 2, ])

  retourne 2

 

EnCaractères

Convertit récursivement les éléments du conteneur donné en un conteneur ayant chaque caractère comme élément distinct

EnCaractères(["ab",2])

  retourne ['a', 'b', '2']

EnChaîne

Convertit les éléments du conteneur en chaînes de caractères et concatène celles-ci ensembles

EnChaîne([10, 20])

  retourne "1020"

 

Maximum

Retourne la plus grande valeur parmi celles du conteneur

Maximum([11, 12, 7])

 

Minimum

Retourne la plus petite valeur parmi celles du conteneur

Minimum([11, 12, 7])

 

Position

Retourne la position de la première occurrence de la valeur donnée dans le conteneur donné

Position(8,[1, 8, 5])

  retourne 2

 

SousEnsemble

Retourne un sous-ensemble du conteneur donné (le second paramètre indique l'index de départ, et le 3ième indique le nombre d'éléments à extraire)

SousEnsemble([1, 4,

    9, 5, 11], 2, 3)

  retourne [4, 9, 5]

     

 

 

 

© Marco Lavoie

13 janvier, 2004