Les sous-algorithmes
Un sous-algorithme est une suite d'instructions qui est écrite une seule fois, mais peut être l'utilisée autant de fois que c'est nécessaire. Ceci, en effectuant des appels au sous-algorithme avec des données différentes.
Lors de l'écriture des algorithme, nous pouvons observer que certains groupes d'instructions se rapportent à des traitements précis et différents. De ce fait, il est préférable alors de représenter chacun d'eux dans un sous-algorithme. Nous percevons alors un algorithme comme une entité composée d'un ensemble de sous-algorithmes (ou modules). La structuration d'un algorithme par modules est la base de la programmation structurée et modulaire.
Donc écrire un algorithme qui résout un problème revient toujours à écrire des sous-algorithmes qui résolvent des sous parties du problème initial. En algorithmique, il existe deux types de sous-algorithmes : les fonctions et les procédures.
Avantages d'utilisation des sous-algorithmes
La structuration d'un algorithmes en modules offre plusieurs avantages, essentiellement :
L'amélioration de la lisibilité de l'algorithme.
L'optimisation du nombre d'instructions dans l'algorithme.
La facilité de la mise au point et de la correction des erreurs dans l'algorithme.
La décomposition du problème complet et complexe en un ensemble de sous-problèmes faciles à résoudre.
La portée d'une variable.
La portée d'une variable est l'ensemble des sous-algorithmes où cette variable est connue. Lorsqu'une variable est connue pour un sous-algorithme, la variable peut être utilisée dans les instructions du sous-algorithme. Une variable peut être globale ou locale.
Variable globale
C'est une variable qui est définie au niveau de l'algorithme principal (i.e. dans la partie déclaration (ou VAR) de l'algorithme qui résout le problème initial). La portée d'une variable globale est totale. Explicitement, tout sous-algorithme de l'algorithme principal peut utiliser cette variable.
Variable locale
C'est une variable qui est définie au sein d'un sous-algorithme. La portée d'une variable locale est restreinte au sous-algorithme dans lequel elle est déclarée. Autrement dit, une variable locale ne peut être utilisée que dans des instructions du sous-algorithme qui la contient.
Dans un sous-algorithme, lorsque l'identificateur d'une variable locale est identique à celui d'une variable globale, la variable globale est localement masquée dans celui-ci. Dans ce sous-algorithme la variable globale devient alors inaccessible.
Structure générale d'un sous-algorithme
Un sous-algorithme possède une structure analogue à celle d'un algorithme. Cependant, chaque sous-algorithme doit être déclaré au préalablement avant de pouvoir l'utiliser (l'appeler) dans le corps de l'algorithme principal. La déclaration d'un sous-algorithme se fait dans la partie déclaration de l'algorithme principale. Plus exactement, juste après la déclaration des variables et avant le mot réservé DÉBUT qui marque le début du corps de l'algorithme principale.
ALGORITHME identificateurAlgorithme ;
CONSTANTE (ou CONST)
Liste des constantes
VARIABLE (ou VAR)
Liste des variables
FONCTION ou PROCEDURE
Liste des sous-algorithmes
DÉBUT
liste des instructions
FIN.
Un sous-algorithme peut prendre la forme d'une fonction ou une procédure. De plus, il est obligatoirement caractérisé par un identifiant unique qui obéit aux mêmes règles que les identifiants des constantes et des variables. Par ailleurs, lorsqu'un sous-algorithme (une fonction ou une procédure) a été explicité, son nom devient une nouvelle instruction, qui peut être utilisée dans l'algorithme principal ou dans d'autres sous-algorithmes.
L'utilisation d'un sous-algorithme se fait par des instructions particulières que nous nommons appels au sous-algorithme. De ce fait, l'algorithme (ou le sous-algorithme) qui fait appel à un sous-algorithme est appelé algorithme (ou sous-algorithme) appelant.