Fonctions

Déclaration

Les fonctions se déclarent avant Debut :

exemple.algo
Fonction NomFonction(param1 : Type1 ; param2, param3 : Type2) : TypeRetour
  // instructions
  Retourner expression
FinFonction
  • Les paramètres sont groupés par type, séparés par ; ou ,.
  • Chaque fonction doit avoir une instruction Retourner qui renvoie une valeur du bon type.
  • Les fonctions ne peuvent pas retourner de tableaux.

Appel

exemple.algo
Variable r : Entier
Debut
  r <- MaFonction(arg1, arg2)
  Ecrire r
Fin

Les fonctions peuvent aussi être appelées directement dans des expressions :

exemple.algo
Ecrire MaFonction(5)

Portée des variables

Chaque appel de fonction crée un scope local. Les variables locales (paramètres) masquent les variables globales du même nom. Le scope parent reste accessible en lecture.

Fonctions récursives

AlgoLab supporte la récursion :

exemple.algo
Fonction Fact(n : Entier) : Entier
  Si n == 0 Alors
    r <- 1
  Sinon
    r <- n * Fact(n - 1)
  FinSi
  Retourner r
FinFonction

Appels chaînés

Les fonctions peuvent s'appeler entre elles :

exemple.algo
Fonction Double(n : Entier) : Entier
  Retourner n * 2
FinFonction

Fonction Quadruple(n : Entier) : Entier
  Retourner Double(Double(n))
FinFonction