< COBOL
fin de la boite de navigation du chapitre

Les fonctions intrinsèques sont en quelque sorte des sous-programmes fournis par le langage, comme les sous-programmes elles permettent de ne pas réinventer la roue à chaque fois (ne pas recoder ce qui l'est déjà).

Voilà comment elles fonctionnent : vous les appelez avec un (ou plusieurs ou aucun) argument, elles vous renvoient une valeur en fonction de cet argument, vous pouvez ensuite réutiliser ce résultat (la valeur de retour de la fonction) dans une autre instruction.

Elles sont sur ce point similaires aux fonctions que l’on peut rencontrer dans d'autres langages de programmation et même dans les mathématiques.

Appel de fonction

Pour faire appel à de telles fonctions, vous devez utiliser l'instruction FUNCTION qui se présente comme ceci :

Définition
FUNCTION nom [ ( arguments ) ].


Le nom de la fonction suit le mot-clé FUNCTION et les (éventuels) arguments sont placés entre parenthèses et séparés par des virgules.

Si la fonction ne prend pas d'arguments, ne mettez pas de parenthèses vides.

Liste des fonctions intrinsèques

  • ACOS : numérique entre -1 et 1 → numérique en radians
  • ASIN : numérique entre -1 et 1 → numérique en radians
  • ATAN : numérique → numérique en radians
  • CHAR : entier → alphanumérique
  • COS : numérique en radians → numérique
  • CURRENT-DATE : → alphanumérique de la forme AAAAMMJJHHMMSSCC
  • DATE-OF-INTEGER : entier (jours depuis le 31-12-1600) → entier de la forme AAAAMMJJ
  • DAY-OF-INTEGER : entier (jours depuis le 31-12-1600) → entier de la forme AAAAJJJ
  • FACTORIAL : entier >= 0 → entier
  • INTEGER : numérique → entier
  • INTEGER-OF-DATE : entier de la forme AAAAMMJJ → (entier : jours depuis le 31-12-1600)
  • INTEGER-OF-DAY : entier de la forme AAAAJJJ → entier (jours depuis le 31-12-1600)
  • INTEGER-PART : numérique → entier
  • LENGTH : alphanumérique → entier
  • LOG : numérique > 0 → numérique
  • LOG10 : numérique > 0 → numérique
  • LOWER-CASE : alphanumérique → alphanumérique
  • MAX : nombre variable d'arguments du même type → maximum de ces arguments
  • MEAN : numériques → numérique (moyenne)
  • MEDIAN : numériques → numérique (médiane)
  • MIDRANGE : numériques → numérique (moyenne du min et du max)
  • MIN : nombre variable d'arguments du même type → minimum de ces arguments
  • MOD : entier1, entier2 != 0 → entier (entier1 % entier2)
  • NUMVAL : alphanumérique → numérique
  • NUMVAL-C : alphanumérique → numérique
  • ORD : alphanumérique → entier
  • ORD-MAX : alphanumériques → entier
  • ORD-MIN : alphanumériques → entier
  • RANDOM : entier >= 0 → [0; 1[
  • RANGE : numériques → différence entre le MAX et le MIN
  • REM : num1, num2 != 0 → numérique (num1 % num2)
  • REVERSE : alphanumérique → chaîne alphanumérique inversée
  • SIN : numérique (radians) → numérique
  • SQRT : numérique >= 0 → numérique
  • STANDARD-DEVIATION : numériques → numérique (écart type)
  • SUM : numériques → entier/numérique (somme)
  • TAN : numérique (radians) → numérique
  • UPPER-CASE : alphanumérique → alphanumérique
  • VARIANCE : numériques → numérique
  • WHEN-COMPILED : → alphanumérique (date et heure de compilation)

Exemple : MIN et MAX de plusieurs valeurs

Dans cet exemple, nous demandons à l'utilisateur de saisir trois valeurs entières au clavier, nous affichons ensuite le MIN et le MAX de ces valeurs.

Exemple
000001 IDENTIFICATION DIVISION.
000002   PROGRAM-ID. ex-functions.
000003 
000004 DATA DIVISION.
000005   WORKING-STORAGE SECTION.
000006     77 x PIC 999.
000007     77 y PIC 999.
000008     77 z PIC 999.
000009 
000010 PROCEDURE DIVISION.
000011   saisie.
000012     DISPLAY "x=" NO ADVANCING ACCEPT x.
000013     DISPLAY "y=" NO ADVANCING ACCEPT y.
000014     DISPLAY "z=" NO ADVANCING ACCEPT z.
000015 
000016   appel-func.
000017     DISPLAY "min=" FUNCTION MIN (x, y, z).
000018     DISPLAY "max=" FUNCTION MAX (x, y, z).
000019   STOP RUN.
000020 END PROGRAM ex-functions.
Fin de l'exemple


La valeur de retour de la fonction MIN (respectivement MAX) est utilisée par l'instruction DISPLAY.


Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.