|
|
LARP – Logiciel d’Algorithmes et
Résolution de Problèmes |
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.
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.
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" |
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.
LARP dispose de trois catégories de fonctions prédéfinies :
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.
Les principales constantes et fonctions mathématiques sont disponibles dans LARP :
|
Fonctions |
Description |
Exemples |
|
Retourne la valeur absolue de la valeur donnée |
Absolu(-6) |
|
|
Retourne un nombre flottant ou entier choisi au hasard (plusieurs versions sont disponibles) |
Aléatoire Aléatoire(11) Aléatoire(2.3,
15.0) |
|
|
Retourne tan-1 de la valeur donnée |
ArcTangente(0.0) |
|
|
Retourne la valeur donnée arrondie au plus proche entier |
Arrondir(12.6) |
|
|
Retourne le cosinus de la valeur donnée (en radian) |
Cosinus(1.5707963) |
|
|
Convertit la valeur en paramètre en chaîne de caractères. |
EnChaîne(12.34) |
|
|
Retourne la base du logarithme naturel |
Exp |
|
|
Retourne le logarithme base 10 de la valeur donnée |
Log10(100) |
|
|
Retourne le logarithme base e de la valeur donnée |
LogE(2.1) |
|
|
Retourne la plus grande valeur parmi celles données (deux valeurs ou plus) |
Maximum(11.1, 12,
7) |
|
|
Retourne la plus petite valeur parmi celles données (deux valeurs ou plus) |
Minimum(11.1, 12, 7) |
|
|
Retourne la valeur de p |
aire = Pi * r * r |
|
|
Retourne le plus petit entier supérieur ou égal à la valeur donnée |
Plafond(12.1) |
|
|
Retourne le plus grand entier inférieur ou égal à la valeur donnée |
Plancher(12.1) |
|
|
Retourne la racine carrée de la valeur donnée |
Racine(25) |
|
|
Retourne le sinus de la valeur donnée (en radian) |
Sinus(1.5707963) |
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 |
|
Retourne le nombre de caractères dans la chaîne (synonyme de longueur) |
Compter("allo")
retourne 4 |
|
|
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'] |
|
|
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" |
|
|
Retourne le nombre de caractères dans la chaîne (synonyme de compter) |
Longueur("allo")
retourne 4 |
|
|
Retourne la chaîne donnée en paramètre avec ses lettres minuscules converties en majuscules |
Majuscules("Allo")
retourne "ALLO" |
|
|
Retourne la chaîne donnée en paramètre avec ses lettres majuscules converties en minuscules |
Minuscules("Allo")
retourne "allo" |
|
|
Retourne la position où débute la première occurrence de la première chaîne dans la seconde |
Position("cd","abcde")
retourne 3 |
|
|
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"
|
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 |
|
|
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 |
|
|
|
Retourne le nombre d'éléments définis retrouvés dans le conteneur |
Compter([1, , 2,
]) retourne 2 |
|
|
|
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'] |
||
|
Convertit les éléments du conteneur en chaînes de caractères et concatène celles-ci ensembles |
EnChaîne([10, 20]) retourne "1020" |
|
|
|
Retourne la plus grande valeur parmi celles du conteneur |
Maximum([11, 12,
7]) |
|
|
|
Retourne la plus petite valeur parmi celles du conteneur |
Minimum([11, 12,
7]) |
|
|
|
Retourne la position de la première occurrence de la valeur donnée dans le conteneur donné |
Position(8,[1, 8, 5])
retourne 2 |
|
|
|
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]
|
|
|