Pseudo-code et bonnes pratiques algorithmiques
L’écriture d’un algorithme doit respecter les conventions et les recommandations citées tout
au long des chapitres du livre. L’objectif de cette annexe est de centraliser toutes les règles
dans un seul lieu. il sera très utile comme mémento pour les chevronnés.
1. Algorithme principal
a. Forme générale d’un algorithme
Algorithme <Nom_Algorithme>
[Constante
<id_constante> = <valeur>
{< id_constante> = <valeur> }*]
[Type
<Declaration_Types>]
[Variable
[Entrée
<id_Var> {, <id_Var> }* : <type>
{{<id_Var> {, <id_Var> }* : <type>}}*]
[Sortie
<id_Var> {, <id_Var> }* : <type>
{{<id_Var> {, <id_Var> }* : <type>}}*]
[Entrée/ Sortie
<id_Var> {, <id_Var> }* : <type>
{{<id_Var> {, <id_Var> }* : <type>}}*]
Début
<Traitements>
FinAlgorithme <Nom_Algorithme>
b. Nomenclature des identificateurs dans un algorithme :
Pour assurer le maximum de lisibilité et faciliter la maintenance des algorithmes, quelques
conventions de nomenclature ont été adoptées tout au long de ce livre :
Type identificateur Convention
Nom d'algorithme ● Début de chaque mot par une lettre majuscule.
● Séparation de mots par des tirets bas
● Possibilité de terminer l'identificateur par un ou plusieurs chiffres.
Constantes ● Les caractères utilisés sont des lettres en majuscules.
● Séparation de mots par des tirets bas
● Possibilité de terminer l'identificateur par un ou plusieurs chiffres.
Type de variables ● Le premier caractère est une lettre en majuscule.
● Les caractères suivants utilisés sont des lettres minuscules
Mot réservé ● Début de chaque mot par une lettre majuscule.
Variables ● Début de chaque mot par une lettre majuscule exception faite
pour le premier mot.
● Possibilité de terminer l'identificateur par un ou plusieurs chiffres.
1
c. Conventions des commentaires dans un algorithme :
Pour assurer le maximum de lisibilité et faciliter la maintenance des algorithmes, quelques
instructions sont précédées par des explications appelées commentaires. Ces commentaires
sont ignorés par le processeur lors de l'exécution. La distinction entre les parties incluses
d'un algorithme et celles à ignorer se fait par l'utilisation des caractères dits d'échappement.
Les conventions adoptées sont :
Caractères d'échappement Signification
// Commentaire sur une seule ligne : tout ce qui suit ces deux
caractères sera ignoré.
/* Début du commentaire sur une ou plusieurs lignes.
*/ Fin du commentaire.
2. Les opérations élémentaires simples
a. L’opération d’entrée de données
Lire (<parametres_Lire>)
Le format général d'une instruction de lecture peut être décrit par la grammaire suivante :
Règles de production Explications
<Instruction_Lecture>::=Lire(<parametr Une instruction de lecture est l'action primitive
es_Lire>) Lire accompagnée des paramètres à lire.
<parametres_Lire> ::= Un paramètre de lecture est un identificateur de
<id_Var><Suite_id_Var> variable suivi d'une suite d'identificateurs de
variables.
<Suite_id_Var> ::= <vide> | , Une suite d'identificateurs de variables est :
<id_Var><Suite_id_Var> ● vide ;
● ou une virgule suivie d'un identificateur
de variable suivi d'une suite
d'identificateurs de variables.
Tableau 2.18 : Règles de constitution d'une instruction de lecture sous forme de grammaire.
b. L’opération de sortie
Écrire (<parametres_Écrire>)
Le format général d'une instruction d'écriture peut être décrit par la grammaire suivante :
Règles de production Explications
<parametres_Écrire> ::= Un paramètre à écrire est :
● un identificateur de données suivi d'une
2
suite de paramètres à écrire;
<id_Don><suite_Param_Écrire>| ● ou une suite de caractères entre
guillemets suivie d'une suite de
"<suite_Car>"<suite_Param_Écrire> paramètres à écrire.
<suite_Param_Écrire> ::= Une suite de paramètres à écrire est :
● vide ;
<vide>|,<id_Don><suite_Param_Écrire> ● ou une virgule suivie d'un identificateur
|, de données suivi d'une suite de
paramètres à écrire ;
"<suite_Car>"<suite_Param_Écrire> ● ou une virgule suivie d'une suite de
caractères entre guillemets suivie d'une
suite de paramètres à écrire.
<suite_Car> ::= Une suite de caractères est :
<vide>|<car><suite_Car> ● vide ;
● ou un caractère suivi d'une suite de
caractères.
c. L’opération d’affectation
L'affectation est l'action élémentaire dont l'effet est de donner une valeur à une variable de
l'environnement d'un algorithme. L'affectation est notée comme suit :
<id_Var> ← <Expression>
NB : 1. <Expression> doit être de même type ou de type compatible à celui de <id_Var>.
2. <id_Var> correspond à une variable de type simple ou prédéfini.
3. données, types et déclaration
Les types de données simples et prédéfinis :
o Entier
o Réel
o Booléen
o Caractère
o Chaîne de caractères
Mécanismes de structuration de données composées :
o Tableau (à une ou à deux dimensions)
o Enregistrement
a. Les tableau
Objet Type / Nature
//une dimension
Nom_tableau : Tableau [<N>] de <Type_élément>
3
//Deux dimensions
Nom_tableau : Tableau [<N>, <M>] de <Type_élément>
b. enregistrement
Objet Type / Nature
<Nom_enregistrement> : Enregistrement
<Nom_champ1> : <Type_champ1>
<Nom_champ2> : <Type_champ2>
...
FinEnregistrement <Nom_enregistrement>
c. Les nouveaux types utilisateurs
Il est possible de définir un nouveau type basé sur le mécanisme des tableaux puis de l'utiliser pour
déclarer des variables. Il est recommandé dans ce cas que le nom de nouveau type soit constitué de
lettres uniquement et commence par une majuscule.
Nouveau type
//Tableau à une dimension
<Nom_type> = Tableau[<N>] de <Type_élément>
//Tableau à deux dimensions
<Nom_type> = Tableau[<N>, <M>] de <Type_élément>
//Enregistrement
<Nom_type> = Enregistrement
<Nom_champ1> : <Type_champ1>
<Nom_champ2> : <Type_champ2>
...
FinEnregistrement <Nom_enregistrement>
NB : Comme tout type de données, le nom de type d'enregistrement débute par une lettre
en
majuscule. De même les noms de champs commencent par une lettre capitale.
4. Les structures de contrôle de l'exécution
a. La structure de contrôle conditionnelle simple
Si <Condition> Alors
<Traitement>
FinSi
b. La structure de contrôle conditionnelle alternative
Si Condition Alors
<Traitement1>
Sinon
<Traitement2>
FinSi
4
c. La structure de contrôle conditionnelle à choix multiples
Selon <Sélecteur>
<Valeur1_1>[, <Valeur1_2>, …]> : <Traitement1>
<Valeur1_1>[, <Valeur1_2>, …]> : <Traitement2>
…
[Autre : <TraitementN>]
Fin Selon
d. La structure de contrôle itérative complète
Pour <Compteur> de <Début> à <Fin> [Pas = <valeur_pas>] Faire
<Traitement>
FinPour
N.B. : • La valeur du pas peut être positive ou négative. Par défaut, elle est égale à 1.
• Éviter de modifier la valeur du compteur de la structure itérative complète au niveau du
traitement.
e. Structures de contrôle itérative à condition d'arrêt
Structure TantQue
TantQue <Condition> Faire
<Traitement>
FinTantQue
Structure Répéter
Répéter
<Traitement>
Jusqu'à <Condition>
f. L'indentation des blocs dans un algorithme :
L'indentation du bloc « A1, A2, …, An » qui consiste en l’ajout du même nombre d’espaces avant chaque
instruction, permet d’augmenter la lisibilité de l’algorithme et d’éviter l’oubli de l'instruction de la fermeture
de la structure de contrôle comme « FinSi » ou « FinPour », etc...
5. Les sous algorithmes
a. Les Fonctions
Déclaration
Fonction <Nom_fonction> (<pf1>: <type1>, <pf2>: <type2>,
…,
5
<pfn> : <typen>) : <Type_résultat>
Début
<Traitement>
Retourner Résultat
FinFonction Nom_fonction
Appel
<Nom_fonction> (<pe1>, <pe2>, …, <pen>)
NB: L’appel à une fonction se fait en tant qu’une expression.
b. Les Procédures
Déclaration
Procédure <Nom_procédure> ([Var]<pf1>: <type1>, [Var]<pf2>: <type2>,
… , [Var]<pfn>: <typen>)
Début
<Traitement>
FinProcédure <Nom_procédure>
Appel
<Nom_Procédure> (<pe1>, <pe2>, …, <pen>)
NB: L’appel à une procédure se fait en tant qu’une instruction sur une ligne à part.
c. Règles de nomenclature des procédures et des fonctions
En général, il existe certaines règles courantes à suivre pour nommer différemment les
procédures et les fonctions dans le cadre de la programmation. Les voici :
1. Les noms de Procédure doivent généralement être des verbes, tandis que les noms de
fonction doivent être des noms descriptifs.
2. Les noms de Procédure et de fonction doivent être courts et concis, mais doivent quand
même refléter leur objectif de manière claire.
3. Les noms de Procédure et de fonction doivent être en lettres minuscules, avec des
majuscules initiales pour chaque mot mise a part le premier mot qui commence par une
lettre minuscule. Ces mots sont parfois séparés par des tirets de soulignement: ‘_'.
6. Les opérateurs arithmétiques et logiques
a. Opérateurs arithmétique
Opérateurs arithmétiques
Opération Opérateur
Somme +
Soustraction -
Multiplication *
6
Division /
Division entière Div
Reste de la division entière Mod
b. Opérateurs Logiques
Opérateurs Logiques
Négation Non
Conjonction Et
Disjonction Ou
c. Opérateurs de comparaison
Opérateurs de comparaison
Opération Opérateur
Egal =
Différent ≠
Strictement supérieur >
Supérieur ou égal ≥
Strictement inférieur <
Inférieur ou égal ≤
7. Les fonctions prédéfinies
a. Les fonctions mathématique
Fonction Rôle
Arrondi (x) Retourne l’entier le plus proche de la valeur de x.
RacineCarré (x) Retourne la racine carrée d’un nombre x positif.
Ent (x) Retourne la partie entière de x.
Abs (x) Retourne la valeur absolue de x
b. Les fonctions sur le type caractère
Fonction Rôle
7
Ord (c) Retourne le code ASCII du caractère c.
Chr (d) Retourne le caractère dont le code ASCII est d.
c. Les fonctions sur le type chaînes de caractères
Fonction Rôle
Long (ch) Retourne le nombre de caractères de la chaîne ch.
Pos (ch1, ch2) Retourne la première position de la chaîne ch1 dans la
chaîne ch2, sinon elle retourne -1
Convch (x) Retourne la conversion d’un nombre x en une chaîne de
caractères.
Estnum (ch) Retourne Vrai si la chaîne ch est convertible en une valeur
numérique, elle retourne Faux sinon.
Valeur (ch) Retourne la conversion d’une chaîne ch en une valeur
numérique, si c’est possible.
Sous_chaine (ch, d, f) Retourne une partie de la chaîne ch à partir de la position d
jusqu’à la position f (f exclue).
Effacer (ch, d, f) Retourne une sous chaîne de ch après la suppression des
caractères de la position d à la position f (f exclue).
Majus (ch) Retourne l’équivalent de la chaîne ch en majuscule.
N.B. : On utilise l’opérateur “+” pour concaténer deux chaînes.