Les fonctions
Une fonction est un sous-algorithme qui admet plusieurs paramètres et ne retourne qu'un seul résultat de type simple (Entier, Caractère, Réel, etc.) à l'algorithme (au sous-algorithme) appelant. Par conséquent, il est obligatoire de préciser, dès le début le type de la fonction qui est en même temps le type du résultat à retourner.
Syntaxe de déclaration d'une fonction
La syntaxe générale d'une fonction est donnée comme suit :
FONCTION nom_fonction (paramètre(s) formel(s)) : type_de_la_valeur_retournée;
CONSTANTE (ou CONST)
Liste des constantes
VARIABLE (ou VAR)
Liste des variables
DÉBUT
Liste des instructions de la fonction
nom_fonction <- valeur ;
FIN ;
Ou en langage Pascal :
FUNCTION nom_fonction (paramétre(s) formel(s)) : type_de_la_valeur_retournée;
CONSTANTE (ou CONST)
Liste des constantes
VARIABLE (ou VAR)
Liste des variables
BEGIN
Liste des instructions de la fonction
nom_fonction := valeur ;
END ;
Complément : Gardez en tête !
Les instructions d'une fonction doivent contenir une instruction du style nom_fonction <- valeur. C'est l'instruction qui retourne le résultat obtenu en exécutant la fonction à l'algorithme (sous-algorithme) appelant. Où, valeur est le résultat de la fonction ayant le même type que le type attendu lors de la déclaration de la fonction.
Appel à une fonction
Un appel à une fonction se fait en utilisant le nom de la fonction suivi des paramètres effectifs entre parenthèses. Puisqu'une fonction retourne toujours un résultat, donc il faut prévoir une variable dans l'algorithme (sous-algorithme) appelant pour recevoir le résultat de l’exécution de la fonction.
De ce fait, dans l'algorithme (sous-algorithme) appelant, nous devons avoir une instruction de la sorte :
Identificateur_variable <- Nom_fonction (paramètre(s) effectif(s));
Exemple : Un algorithme utilisant une fonction
Écrire une fonction qui recherche le maximum de deux valeurs. Puis retourne le résultat à l'algorithme principal qui la contient.
ALGORITHME rechmax ;
VAR x,y,grand : Entier ;
FONCTION Max(a,b : Entier) : Entier ;
DÉBUT
SI (a>=b) ALORS max <- a ; SINON max <- b ; FIN ;
DÉBUT
LIRE(x,y) ;
grand <- Max(x,y) ;
Écrire('La plus grande valeur entre',x,'et',y,'est :',grand) ;
FIN.
Fondamental : Explication du déroulement
Lors de l'exécution de la fonction Max, le paramètre formel a reçoit une copie de la valeur de la variable x, et le paramètre formel b reçoit une copie de la valeur de la variable y. Le résultat est affecté à l'identifiant de la fonction qui sera utilisé dans le l'algorithme principal.
Exemple : Amélioration de l'algorithme combinaison
Refaire l'algorithme combinaison en utilisant une fonction qui calcule la valeur factorielle d'un nombre.
ALGORITHME combinaison ;
VAR n, p : Entier ;
FONCTION Fact (x : Entier) : Entier ;
VAR i, r : Entier ;
DÉBUT
r <- 1 ;
POUR i ALLANT DE 2 À x FAIRE
r <- r * i ;
FIN POUR ;
Fact <- r ;
FIN ;
DÉBUT
ÉCRIRE ('Valeurs de n et p ? ') ;
LIRE (n, p) ;
ÉCRIRE ('Résultat = ', Fact (n) DIV ( Fact (p) * Fact (n-p))) ;
FIN.