Introduction
Soit à écrire un algorithme qui calcule le nombre de combinaisons de n objets :
On peut l'écrire ainsi :
1
ALGORITHME combinaison ;
2
3
VAR n, p, r1, r2, r3, i : Entier ;
4
5
DÉBUT
6
ÉCRIRE ('Valeurs de n et p ? ') ;
7
LIRE (n, p) ;
8
r1 <- 1 ;
9
POUR i ALLANT DE 2 À n FAIRE
10
r1 <- r1 * i ;
11
FIN POUR ;
12
r2 <- 1 ;
13
POUR i ALLANT DE 2 À p FAIRE
14
r2 <- r2 * i ;
15
FIN POUR ;
16
r3 <- 1 ;
17
POUR i ALLANT DE 2 À n-p FAIRE
18
r3 <- r3 * i ;
19
FIN POUR ;
20
ÉCRIRE ('Résultat = ', r1 DIV (r2 * r3)) ;
21
FIN.
Nous remarquons dans l'algorithme "combinaison" ci-haut que le traitement de calcul de la factorielle d'un nombre est répété 3 fois. L'idée est d'écrire un "sous-algorithme" spécialisé dans le calcul de la factorielle d'un nombre puis de l'appeler chaque fois que c'est nécessaire dans "l'algorithme principal" (l'algorithme calculant
).
Le sous-algorithme doit être paramétrable pour qu'il puisse calculer la factorielle de n'importe quel nombre qui lui sera passer en paramètre.