Aller au contenu

Premiers pas en OCaml/Opérations arithmétiques

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Opérations arithmétiques
Icône de la faculté
Chapitre no 4
Leçon : Premiers pas en OCaml
Chap. préc. :Types primitifs
Chap. suiv. :Fonctions
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Premiers pas en OCaml : Opérations arithmétiques
Premiers pas en OCaml/Opérations arithmétiques
 », n'a pu être restituée correctement ci-dessus.

Opérations sur les entiers

[modifier | modifier le wikicode]

L'inférence de type décharge le développeur de la déclaration des différents types. En contrepartie il faut utiliser des opérateurs spécifiques pour chaque type. Les opérateurs +, -, /, *, mod permettent respectivement d'effectuer additions, soustractions, division euclidienne, multiplication et reste de la division euclidienne (modulo).

Exemple d'opération sur les entiers : l'addition

[modifier | modifier le wikicode]
# 1+2;;

- : int = 3


Vous pouvez aussi insérer des espaces et tabulations dans votre expression. Cela ne change pas le résultat.

# 1 	+ 2 ;;

- : int = 3

Néanmoins il est conseillé d'utiliser

  • un espace après un délimiteurs (',')
  • un espace avant et après les symboles d'opérations ('+').

Priorité des opérateurs

[modifier | modifier le wikicode]

L'ordre des opérateurs est le même que pour les mathématiques : * et / sont prioritaires sur + et -.

# 1 * 2 - 3 + 4 ;;

- : int = 3

Mais il reste possible d’utiliser des parenthèses pour changer les priorités.

# 1 * 2 - (3 + 4) ;;

- : int = -5

La division euclidienne

[modifier | modifier le wikicode]

L'utilisation de la division / donne le quotient de la division euclidienne.

# 5 / 2 ;;

- : int = 2


L'opérateur modulo mod quant à lui donne le reste de la division euclidienne.

# 5 mod 2 ;;

- : int = 1

Opérations sur les réels

[modifier | modifier le wikicode]

Les opérateurs pour les réels sont les mêmes que pour les entiers, mais suivis d'un point +., -., *., /..

Exemple d'opération sur les réels : l'addition

[modifier | modifier le wikicode]
# 1.0 +. 2.0 ;;

- : float = 3.

Priorité des opérateurs

[modifier | modifier le wikicode]

L'addition s'effectue avec l'opérateur + pour les entiers et +. pour les réels. De même *. et /. sont prioritaires sur +. et -..

# 1. *. 2. -. 3. +. 4. ;;

- : float = 3.

De même, les parenthèses changent les priorités.

# 1. *. 2. -. (3. +. 4.) ;;

- : float = -5.

Division exacte

[modifier | modifier le wikicode]

Mais cette fois la division donne le résultat exact.

# 5. /. 2. ;;

- : float = 2.5

La puissance () est donnée par l'opérateur **.

(* x ** n *)
# 3. ** 4. ;;

- : float = 81.

Racine carrée

[modifier | modifier le wikicode]

La racine carrée () est donnée par la fonction sqrt.

# sqrt 81. ;;

- : float = 9.

Fonctions trigonométriques

[modifier | modifier le wikicode]

Les fonctions trigonométriques :

  • cos
  • sin
  • tan
  • acos
  • asin
  • atan
  • atan2
4. *. atan 1.;;

- : float = 3.14159265358979312

Fonctions logarithmiques et exponentielle

[modifier | modifier le wikicode]
# exp 0. ;;
- : float = 1.

# log 1. ;;
- : float = 0.

# log (-1.) ;;
- : float = nan

# exp (log 42.) ;;
- : float = 42.0000000000000071

Tableau récapitulatif

[modifier | modifier le wikicode]

Voir la fiche de synthèse.

Toutes ces informations sont disponibles sur la documentation officielle :
Document au format H T M L[html]le document est sous une licence copyright[licence Copyright](fr)lien vers le document • Conseils de présentation des programmes

Document au format H T M L[html]le document est sous une licence copyright[licence Copyright](en)lien vers le document • Liste des fonctions