Aller au contenu

Les procédures et fonctions

2 min de lecture

Une procédure est une routine (bloc de code) qui exécute un traitement puis rend la main. Elle permet d’isoler une partie de l’algorithme global et de l’appeler plusieurs fois pour garder un code structuré et modulaire.

PROCÉDURE procedure(<liste des paramètres>)
[<déclarations locales>]
DÉBUT
<instructions>
FIN

Toutes les variables déclarées localement dans la procédure disparaissent à la fin de son exécution.

Une fonction est un sous-algorithme qui effectue un traitement et retourne une valeur.

FONCTION fonction(<liste des paramètres>) : type_retourné
[<déclarations locales>]
DÉBUT
<instructions>
RETOURNER <résultat>
FIN

Exemple — calcul d’un carré :

FONCTION carré(n : entier) : entier
DÉBUT
RETOURNER n * n
FIN
{Appel}
résultat ← carré(5)
afficher(résultat)
→ 25

La portée d’un identifiant est la partie de l’algorithme dans laquelle il est reconnu conformément à sa déclaration.

  • Un identifiant est visible dans l’algorithme où il a été déclaré et dans tout sous-algorithme appelé depuis celui-ci.
  • Il n’est jamais visible à un niveau plus haut que celui de sa déclaration.
ALGORITHME principal
VARIABLE x : entier ← visible dans principal et dans sousRoutine
PROCÉDURE sousRoutine()
VARIABLE y : entier ← visible uniquement dans sousRoutine
DÉBUT
y ← x + 1 ← OK : x est accessible
FIN
DÉBUT
x ← 10
sousRoutine()
FIN

En pseudo-code, une fonction récursive calculant le n-ième terme d’une suite arithmétique :

FONCTION terme(n : entier, u0 : réel, r : réel) : réel
DÉBUT
SI n == 0 ALORS
RETOURNER u0
SINON
RETOURNER terme(n - 1, u0, r) + r
FIN_SI
FIN

Exemple classique — factorielle :

FONCTION factorielle(n : entier) : entier
DÉBUT
SI n <= 1 ALORS
RETOURNER 1 ← cas de base
SINON
RETOURNER n * factorielle(n - 1) ← appel récursif
FIN_SI
FIN