Une fonction est une sous-routine qui renvoie un résultat (nombre, chaîne de caractères, etc.)
Imaginez que vous ayez commandé un produit dans une boutique en ligne. D'un point de vue programmation, vous avez appelé un certain sous-programme, et contrairement à une procédure, ce sous-programme doit renvoyer un résultat - livrer le produit que vous avez commandé. Ces sous-programmes sont appelés fonctions.
Une fonction est formatée de la même manière qu'une procédure :
fonction <nom de la fonction> (liste des paramètres sous forme de <nom de variable> :<son type> séparés par des points-virgules) : <type de valeur de retour> ;
commencer
<corps de fonction>
fin;
La différence entre une fonction et une procédure est qu'une fonction doit retourner une valeur. Pour ce faire, vous devez utiliser le nom de la fonction comme variable ou la variable spéciale Résultat :
fonction Somme(a, b:entier) : entier ;
commencer
Somme := a + b;
fin;
ou
fonction Somme(a, b:entier) : entier ;
commencer
Résultat := a + b;
fin;
Une fonction qui renvoie la moyenne arithmétique de deux entiers ressemblerait à ceci :
fonction moyenne(a, b : entier) : réel ;
commencer
moyenne := (a + b) / 2;
fin;
Reste à comprendre comment appeler cette fonction dans le programme principal :
Vous ne devez pas appeler une fonction de la même manière que vous appelez une procédure :
moyenne(10, 5);
La valeur retournée par la fonction sera perdue. C'est comme si les produits de la boutique en ligne n'étaient donnés à personne, mais jetés. Il est peu probable que le client l'aime.
Il est plus correct de sauvegarder le résultat dans une variable (ou de l'afficher à l'écran) :
a := moyenne(10, 5);
ou
writeln(moyenne(10, 5));