Algorithmique impérative/Rédaction
Lorsqu'on rédige un algorithme, il faut toujours garder à l'esprit qu'il doit pouvoir être lu et compris par quelqu'un d'autre. Au fur et à mesure de la pratique, les rédacteurs ont dégagé quelques principes dont les plus simples sont expliqués ici. Il convient de respecter ces principes d'une façon rigoureuse.
Remarque pour les étudiants : il est parfaitement admis que le respect de ces règles de rédaction soit pris en compte dans la note finale. Quand vous écrivez une dissertation, il convient de respecter la grammaire et l'orthographe même si ce n'est pas ce qui doit être évalué, il en est de même ici.
Indenter son code
[modifier | modifier le wikicode]L'indentation d'une ligne est l'espace qui la sépare de la marge gauche.
Problème
[modifier | modifier le wikicode]Considérons l'algorithme (incomplet) suivant :
Début si condition1 alors instruction1 sinon si condition2 alors instruction2 sinon instruction3 finsi finsi Fin
Voici le même algorithme mais sans l'indentation :
Début si condition1 alors instruction1 sinon si condition2 alors instruction2 sinon instruction3 finsi finsi Fin
Il est déjà moins évident de comprendre le fonctionnement de l'algorithme. Ce dernier est toutefois plus abordable que :
Début si condition1 alors instruction1 sinon si condition2 alors instruction2 sinon instruction3 finsi finsi Fin
et pourquoi pas...
Début si condition1 alors instruction1 sinon si condition2 alors instruction2 sinon instruction3 finsi finsi Fin
Comment faire
[modifier | modifier le wikicode]Pour bien indenter, considérez les blocs et mettez au même niveau le début du bloc et la fin du bloc. Par exemple, un fin
devrait se trouver au même niveau que son début
: on devrait l'apercevoir immédiatement étant donné que tout ce qu'il y a entre les deux devrait se trouver un niveau d'indentation plus loin.
début ... début ... fin ... fin
Procédez ainsi avec
- SI...FINSI
- TANTQUE...FTQ
- REPETER...JUSQU'A
- POUR...FP
De même : placez les alors
et les sinon
au même niveau.
Vous pouvez transformer ces règles, l'important étant de les fixer et de s'y tenir. Il existe plusieurs façons d'indenter et chaque auteur a ses préférences.
Utiliser des identifiants pertinents
[modifier | modifier le wikicode]Pour choisir un identifiant de variable ou de fonction, souvenez-vous qu'il doit remplir deux utilités principales
- décrire son rôle (sans toutefois remplacer le commentaire en déclaration)
- distinguer des autres (ne pas se retrouver avec deux fonctions
calculer_nombre
etcalculer_nb
,quotient
etdivision
...)
Évitez :
- de répéter le type de la variable dans son identifiant (
entier_n
,chaine_départ
) - les conventions utilisées en maths (
n
oux
ne suffisent pas pour décrire le rôle d'un entier/réel)
Pensez également aux conventions, notamment :
- i (j, k...) comme variable de boucle
- utiliser un préfixe pour signaler les variables entrées du programme qui seront données par l'utilisateur.
Commenter utile
[modifier | modifier le wikicode]Il ne faut pas décrire ce que vous faites mais pourquoi vous le faites
POUR i de 1 à 24 FAIRE instruction FINPOUR
Pour cet algorithme le commentaire :
(* il y a 24 heures dans une journée donc 24 instructions *)
est pertinent. Plus particulièrement, le commentaire répond à la question "pourquoi 24 et pas 25 ?".(* i va de 1 à 24 *)
n'est pas pertinent. Il ne répond pas à la question "pourquoi 24 et pas 23 ?".
Servez-vous également des commentaires pour indiquer ce que vous supposez : les conditions dans lesquelles votre algorithme fonctionne.