0% ont trouvé ce document utile (0 vote)
44 vues8 pages

Bonnes pratiques du pseudo-code algorithmiques

Ce document décrit les bonnes pratiques pour l'écriture d'algorithmes, notamment la structure générale d'un algorithme, la nomenclature des identificateurs, les commentaires, les opérations élémentaires, les types de données, les structures de contrôle et les sous-algorithmes.

Transféré par

sami.makni2020
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues8 pages

Bonnes pratiques du pseudo-code algorithmiques

Ce document décrit les bonnes pratiques pour l'écriture d'algorithmes, notamment la structure générale d'un algorithme, la nomenclature des identificateurs, les commentaires, les opérations élémentaires, les types de données, les structures de contrôle et les sous-algorithmes.

Transféré par

sami.makni2020
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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.

Vous aimerez peut-être aussi