Amélioration d'un programme

Le programme puissance_de_2.c calcule la nième puissance de deux. L'algorithme utilisé est le suivant :

var i, p2:entier;
début
    p2=1;
    pour i allant de 1 à n faire
        p2 = 2 * p2;
    finpour;
fin

Même si l'algorithme fait varier i de 1 à n, l'usage du C veut que l'on fasse varier les variables d'itérations de 0 à n-1.

$ puissance_de_2 3
8


La première amélioration consiste à rajouter un message rappelant l'usage de ce programme en cas de nombre de paramètres inadéquats. Noter que le message n'est pas affiché sur la sortie standard, mais sur la sortie erreur standard, grâce à l'utilisation de la fonction fprintf.

$ puissance_de_2 3
8
$ puissance_de_2 
Usage: puissance_de_2 <entier>


La seconde amélioration est plus importante. Elle consiste à découper le programme en fonctions, ce qui améliore à la fois la lisibilité (les opérations effectuées sont nommées), la maintenabilité (il est plus facile de savoir où les modifications doivent être faites) et la réutilisabilité, en évitant la duplication de code. L'utilisation de static dans l'entête d'usage sera précisé ultérieurement.

La factorisation de code est une condition nécessaire à la lisibilité, la maintenabilité et l'extensibilité. Attention à l'usage du "copier/coller" !