Chapitre 5 : Les sous-algorithmes (fonctions et procédures)

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 :

1
FONCTION nom_fonction (paramètre(s) formel(s)) : type_de_la_valeur_retournée; 
2
CONSTANTE (ou CONST)
3
 Liste des constantes 
4
VARIABLE (ou VAR)
5
 Liste des variables 
6
DÉBUT
7
 Liste des instructions de la fonction
8
 nom_fonction <- valeur ;
9
FIN ;

Ou en langage Pascal :

1
FUNCTION nom_fonction (paramétre(s) formel(s)) : type_de_la_valeur_retournée;
2
CONSTANTE (ou CONST)
3
 Liste des constantes 
4
VARIABLE (ou VAR)
5
 Liste des variables 
6
BEGIN 
7
 Liste des instructions de la fonction
8
 nom_fonction := valeur ;
9
END ;

ComplémentGardez 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 :

1
Identificateur_variable <- Nom_fonction (paramètre(s) effectif(s));

ExempleUn 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.

1
ALGORITHME rechmax ;
2
VAR x,y,grand : Entier ;
3
FONCTION Max(a,b : Entier) : Entier ; 
4
 DÉBUT
5
  SI (a>=b) ALORS max <- a ;  SINON max <- b ; FIN ;
6
DÉBUT
7
 LIRE(x,y) ; 
8
 grand <- Max(x,y) ;
9
 Écrire('La plus grande valeur entre',x,'et',y,'est :',grand) ; 
10
FIN.  

FondamentalExplication 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.

ExempleAmélioration de l'algorithme combinaison

Refaire l'algorithme combinaison en utilisant une fonction qui calcule la valeur factorielle d'un nombre.

1
ALGORITHME combinaison ;
2
VAR n, p : Entier ;
3
FONCTION Fact (x : Entier) : Entier ;
4
 VAR i, r : Entier ; 
5
 DÉBUT
6
   r <- 1 ;
7
   POUR i ALLANT DE 2 À x FAIRE 
8
    r <- r * i ;
9
   FIN POUR ;
10
   Fact <- r ; 
11
 FIN ;
12
DÉBUT
13
 ÉCRIRE ('Valeurs de n et p ? ') ;
14
 LIRE (n, p) ;
15
 ÉCRIRE ('Résultat = ', Fact (n) DIV ( Fact (p) * Fact (n-p))) ;
16
FIN.
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)