Addition, Soustraction, Multiplication & Division

+ - * /


Utilisation des quatre opérations arithmétiques

 

  • l' ADDITION est représentée par le signe + (plus)
  • la SOUSTRACTION est représentée par le signe - (moins)
  • la MULTIPLICATION est représentée par le signe * (étoile)
  • la DIVISION est représentée par le signe / (barre inclinée, slash)

Ces quatre fonctions acceptent plusieurs arguments.

l' ADDITION opérateur +

(+ 1 2)

Renvoie 3 ⇒ 1 + 2 égale 3

(+ 1 2 3.25)

Renvoie 6.25 ⇒ 1 plus 2 plus 3.25 égale 6.25

(+ 1 -0.4)

Renvoie 0.6 ⇒ 1 + -0.4 égale 1 moins 0.4 ⇒ égale 0.6

(+ "a" 2)

Renvoie une erreur : type d'argument incorrect: numberp: "a"

Dans ce cas ce n'est pas le contenu d'une variable nommée "a" qui s'additionne au nombre 2, c'est la "lettre" a (le caractère) puisqu'elle est entre guillemets elle est donc considérée (à juste titre) comme une chaîne de caractères (string), d'où l'erreur renvoyée.

Une addition avec une variable ressemblera à ça :

1
2
(setq a 10.0) ; affectation de la valeur 10.0 à la variable a
(+ a 2)

Renvoie 12 ⇒ valeur de a : 10 plus 2 égale 12.0 ⇒ sans renvoyer d'erreur


 

Opérateur Fonction Exemple  Valeur retournée
+ Addition ( + 1 2)
(+ 1 2 3.25)
(+ 1 -0.4)
(+ "a" 2)
3
6.25
0.6
Erreur
- Soustraction (- 2 1)
(- 1 2)
(- 10 5 3)
(- "e" 1)
(- 50 40.0 2.5)
1
-1
2
Erreur
7.5
* Multiplication (* 12 2)
(* 10 10 3)
(* 10 0.4)
(* "y" 3)
24
300
4.0
Erreur
/ Division (/ 10 2)
(/ 10 3.25)
(/ 10 4.0)
(/ 50 40.0 2.5)
(/ 10 0)
(/ "y" 3)
5
3.07692
2.5
0.5
(division par zéro)
Erreur

Il est important de respecter une espace entre l'opérateur et le nombre à traiter, si ce n'est pas le cas une erreur est déclenchée :

 (+10 3)
Incorrect
 (+ 10 3)
Correct

D'ailleurs dans cet exemple de faute de frappe dans le code, la colorisation syntaxique vient à notre secours car l'exemple qui est incorrect n'est pas colorisé comme il le faudrait (+ en bleu).


Quelques explications pour mémoire :

Pour toutes les opérations

  • Si les deux arguments sont des entiers le résultat sera un entier
  • Si un seul des arguments est un réel le résultat sera un réel
  • Si un des arguments n'est pas un nombre (entier ou réel) une erreur se déclenche et arrête le programme.
  • Attention aux variables contenant des chaînes de caractères (STRING) au sens AutoLISP comme par exemple : "2.32", si on veut tout de même l'inclure dans une opération il faut passer par une modification du type, voir ATOF à ce sujet.

L'addition ne pose pas de souci particulier,
Tous les nombres dans n'importe quel ordre s'additionnent, l'addition prend un nombre indifférent d'arguments, tous les arguments seront additionnés tour à tour et c'est cette addition générale qui sera renvoyé comme résultat.

La soustraction doit respecter l'ordre des arguments,
Si deux arguments sont présents, le résultat est la soustraction du deuxième au premier,
Si trois arguments sont présents, le résultat est la soustraction du premier à l'addition des deux autres.

 La multiplication ne pose pas de souci,
Tous les nombres dans n'importe quel ordre se multiplient.

La division renvoie le résultat de la division du premier argument par le deuxième,
Si trois arguments sont présents, le résultat est la division du premier par le produit des deux autres.
Pour les nombres réels (real) inférieurs à 1, il faut taper le 0 (zéro) avant le séparateur décimal, si ce n'est pas respecté dans certains cas une erreur est déclenchée.

 (setq var1 .999)
Placement incorrect d'un point décimal en entrée Incorrect

Rappel de vocabulaire :

Dans l'addition 22 + 66 = 88
22 et 66 sont les termes de cette l'addition.
88 est la somme de cette addition.

Dans la soustraction 22 - 4 = 18
45 et 4sont les termes de cette soustraction
18 est la différence de cette soustraction.

Dans la multiplication 3 x 7 = 21
3 et 7 sont les facteurs de cette multiplication.
21 est le produit de cette multiplication.

dans la division 73 : 9 = 8 reste 1
73 est le dividende et 9 est le diviseur de cette division.
8 est le quotient de cette division et 1 le reste.


Pour la précision du résultat des opérations il est utile, voire nécessaire, voire obligatoire, de renseigner les nombres sous forme de réels (real), notamment avec l'opérateur de division.

Syntaxe Résultat Commentaire
(/ 22 11)
2 Correct
(/ 3 2)
1 Incorrect
(/ 3.0 2)
1.5 Correct

 

Attention particulière pour la DIVISION
Si le diviseur est PLUS GRAND que le dividende et que les deux sont des ENTIERS (integer)  le résultat renvoyé sera toujours 0 (zéro)
Raison supplémentaire pour transformer en RÉELS (real) les opérandes.

 

 


 

 


1
(/ 10 20)

Renvoie 0 (zéro) INCORRECT

1
(/ 10 20.0)

Renvoie 0.5 CORRECT

 


Haut de Page

Revenir au menu NOMBRES


10 mai 2017
mise à jour le 05 octobre 2019