Algorithmique impérative/Procédures et fonctions
Première approche
[modifier | modifier le wikicode]Les procédures et les fonctions sont des sous-programmes qui permettent une réutilisation du code plus facile. En effet, si par exemple on code l'algorithme de calcul de T.V.A. et qu'on l'utilise à divers endroits du programme, plutôt que de recopier le code à chaque fois, il est préférable de créer un sous-programme de calcul. La recopie a toutefois les inconvénients suivants :
- La recopie du code s'accompagne souvent d'un changement des noms de variables, voire de la valeur de certains paramètres,
- Chaque copie du code augmente la taille des programmes source et compilé,
- La maintenance est plus difficile : s'il faut modifier l'algorithme, il faut modifier toutes les copies sans en oublier une seule.
L'utilisation d'un sous-programme évite tous ces problèmes :
- Les sous-programmes utilisent des variables locales et des paramètres formels, c'est-à-dire qu'on leur passe les valeurs (voire les variables, par adresse ou référence) qu'ils doivent utiliser.
- L'algorithme n'est codé qu'une seule fois, ce qui n'augmente pas la taille du programme.
- La maintenance est facilitée par le point précédent : s'il faut modifier l'algorithme, la modification n'a lieu qu'en un seul endroit.
Procédure et fonction : quelle différence ?
[modifier | modifier le wikicode]Une procédure traite les informations qu'on lui passe, mais ne retourne, en général, aucun résultat. En général, cette procédure a un effet de bord.
Une fonction traite les informations qu'on lui passe, et retourne un résultat. Si la fonction n'a aucun effet de bord, on peut la comparer à une fonction mathématique.
- Effet de bord
- un sous-programme avec effet de bord modifie l'état global de l'application. En général, appeler deux fois un même sous-programme avec effet de bord en lui passant les mêmes paramètres ne produit pas le même résultat.