Objectifs du chapitre :
CHAPITRE 1
LE PSEUDO-CODE
ALGORITHMIQUE 1
chapitre 1
DÉFINITIONS
Qu’est-ce qu’un Pseudo-code ? Qu’est ce que veut dire « écrire un
algorithme »?
• Le pseudocode est un langage pour exprimer • Analyser et comprendre le problème :
clairement et formellement un algorithme. Etude des données fournies et des résultats
Ce langage est près d'un langage de attendus.
programmation comme Java, C ou C++, sans
• Résoudre le problème :
être identique à l'un ou à l'autre. Il exprime
C’est trouver les structures de données
des idées formelles dans une langue près du
adaptées ainsi que l’enchaînement des
langage naturel de ses usagers (pour nous, le
actions à réaliser pour passer des données
français) en lui imposant une forme
(entrées) aux résultats(sorties).
rigoureuse.
ALGORITHMIQUE 2
chapitre 1
LES RÈGLES
Y a-t-il un langage d’algorithme L’analyse et l’écriture d’un
universelle? algorithme dépende de quoi?
• Aucune règle « officielle » ou norme n'est • Les contraintes qui régissent une écriture
définie pour écrire du pseudo-code. Il n'y a algorithmique sont :
donc pas de « mauvaise » syntaxe, ni • Le niveau d’abstraction du type de langage
d'écriture meilleure qu'une autre (vous pouvez ciblé.
constater cela en cherchant sur internet) • Les opérations élémentaires.
• Mais dans un soucis de compréhension et • La similarité aux langages naturels humain.
d’adaptation facile aux future langages qui • La recherche d’universalisation.
vont être étudiés, nous allons adopter les
notations proposées dans ce cours.
ALGORITHMIQUE 3
chapitre 1
LES CARACTÉRISTIQUES D’UN ALGORITHME
Nombre de calculs, temps L’organisation des données et
d’exécution, complexité utilisation de ressources
Il s’agit de l’évaluation du temps que peut La plupart des algorithmes compromettent une
prendre l’exécution d’un algorithme lorsqu’il est organisation optimisée des données et des
traduit en programme. ressources impliqué dans les calculs.
Cette organisation mène à des structures de
La clarté et la compréhensibilité données qui sont également des objets d’étude
centraux en informatique..
De l’algorithme
• La clarté des instructions et leur La modularité et la réutilisabilité
enchainement.
une écriture modulaire par décomposition de
• L’accompagnement par des commentaire.
tâches peut rendre des parties réutilisables dans
• Le choix significatif des noms de variables. d’autres contextes.
ALGORITHMIQUE 4
chapitre 1
MISE EN FORME D’UN ALGORITHME
Le modèle à respecter
ALGORITHME <nom_algorithme> • Un algorithme doit porter un nom (il est
désirable qu’il soit significatif et réduit).
<déclarations_variables>
• Juste après la déclaration de variables pour
DEBUT
stocker les données.
<instructions>
• Les mots clés doivent être écrites en
FIN majuscule.
• Entre DEBUT et FIN nous mettons l’ensemble
des instructions qui résous le problème.
ALGORITHMIQUE 5
chapitre 1
LES VARIABLES 1/3
Définition des variables Déclaration
Une variables est définies par : La déclaration des variables :
• Un identificateur : suite quelconque de <id1> : TYPE
caractères.
Si plusieurs variables ont le même type nous
• Un type : Booléen, numérique (entier ou pouvons les regrouper :
réel), caractère ou chaîne de caractères.
<id2>,<id3>… : TYPE
• Une valeur : c'est le contenu de l'objet
ALGORITHMIQUE 6
chapitre 1
LES VARIABLES 2/3
Exemple de déclaration de
Les types de variables variables
ALGORITHME : PrixDuPain
Nom : CHAINE
Types possibles de variables :
Nb : ENTIER
– ENTIER (ex : 14, -138) Prx, Qt, Tot : REEL
– REEL (ex : 3.14, 126.45) DEBUT
– BOOLEEN (Vrai/Faux ou True/False) Instruction1
Instruction2
– CARACTERE (ex : 'a', 'H')
FIN
– CHAINE (ex : ''Bonjour'')
ALGORITHMIQUE 7
chapitre 1
LES VARIABLES 3/3
Les identificateurs
4. Certains noms sont réservés pour les
compilateurs des langages de
Un identificateur est un nom donné à une programmation et ne doivent pas être
variable pour la différencier de toutes les donnés à des identificateurs de variables
autres. Et ce nom, c’est au programmeur de le
choisir. Cependant, il y a quelques limitations à 5. Les identificateurs peuvent être aussi longs
ce choix : que l’on désire, toutefois certains
compilateurs ne tiendra compte que des 32
1. On ne peut utiliser que les 26 lettres de premiers caractères.
l’alphabet latin, les chiffres et le caractère
underscore ( _ ) : pas d’accents, pas de 6. Le nom d'un variable doit être significatif.
ponctuation ni d’espaces. On devrait savoir immédiatement, à partir
de son nom, à quoi sert la variable ou la
2. Un identificateur ne peut pas commencer constante, et quel sens donner à sa valeur
par un chiffre.
3. Deux variables ne peuvent avoir le même
identificateur (le même nom)
ALGORITHMIQUE 8
chapitre 1
AFFECTATION
Règles d’affectation Exemple
ALGORITHME : Prix_du_pain
Nom : CHAINE
• L'instruction d'affectation est l'opération qui
Car : CARACTERE
consiste à attribuer une valeur à une variable
pendant l'exécution du programme. Nb : ENTIER
Prx, Qt, Tot, Tot1 : REEL Une chaine de caractères
• En algorithmique on utilise un opérateur entre " "
d'affectation. Nous le notons ← dans le cadre DEBUT
Un seul caractère
de ce cours. Nom "Mounir" entre ‘ ’
• L’affectation s’effectue de la droit vers la Car ‘g’
gauche Prx 10.25 Noter que la virgule
• La valeur de l’expression droite (valeur ou Qt 6
dans la notation des
résultat de calcul) sera stocké dans la réels est noté par un
Tot Prx * Qt
variable gauche. point « . » et non par
Tot1 Tot «,»
FIN
ALGORITHMIQUE 9
chapitre 1
LECTURE / AFFICHAGE
Définitions Exemple
ALGORITHME : Prix_du_pain
Prx, Qt, Tot : REEL
• Deux méthodes qui permettent de gérer les
DEBUT
entrés et sorties d’un algorithme sont : LIRE
et AFFICHER AFFICHER("donner la quantité de pains" )
LIRE(Qt)
• La méthode LIRE permet de lire des valeurs à
partir du clavier qui représente l’entrée d’un Prx 10.25
algorithme. Elle permet de récupérer la Tot Prx* Qt
valeur taper au clavier et la stocker dans la AFFICHER ("le prix de " ,Qt, "pains est = ",Tot,"dhs")
variable entre les parenthèses.
• La méthode AFFICHER permet d’afficher les
FIN
messages ou des valeurs de variables à
l’écran qui représente la sortie.
ALGORITHMIQUE 10
chapitre 1
LES COMMENTAIRES
Définitions Exemple
ALGORITHME : Prix_du_pain
Prx, Qt, Tot : REEL
• Les commentaires servent à donner des
DEBUT
explications à une partie de votre pseudo-
code. AFFICHER("donner la quantité de pains" )
LIRE(Qt)
• Un commentaire doit être mis entre /* et */, Ceci est un
tous ce qui se trouve entre ces deux Prx 10.25 /* le prix d’unité*/ commentaire sur une
symboles est considéré comme un Tot Prx* Qt /* ici nous calculons le seule ligne
commentaire. prix totale*/
• Un commentaire n’affecte pas les AFFICHER ("le prix total est :",Tot)
instructions de votre algorithme. FIN
Un commentaire sur
• Le commentaire peut s’écrire sur plusieurs plusieurs lignes
lignes.
ALGORITHMIQUE 11
chapitre 1
LES OPÉRATIONS ÉLÉMENTAIRES
Qu’est ce que c’est que les
Les niveaux d’abstraction
opérations élémentaires?
• Ce sont les opérations de base que la machine • Les langages de programmation classées dans
peut exécuter à travers un langage de ce contexte par leurs niveaux d’abstraction:
programmation. • Bas niveau : tel que l’assembleur, les opérations
élémentaires sont très basique (addition,
• En fonction du niveau d’abstraction du affectation), un algorithme simple peut s’écrire
langage de programmation dans le quelle sur des centaines de ligne.
l’algorithme vas être traduit, ces opérations • Haut niveau : les langages de ce type ont des
peuvent être très basique (telles que addition, fonctionnalités très évoluées, qui simplifient
multiplication) ou plus évoluer (envoie d’ e- l’écriture algorithmique et sa traduction en
mail, calcul d’intégral…) programme. Exemples : Java, C#, Python,
Matlab…
• Moyen niveau : Un niveau entre les deux, ou
souvent l’utilisation des deux autres niveaux est
équitable. Exemples : C, C++ .
ALGORITHMIQUE 12
chapitre 1
LES OPÉRATIONS 1/5
Les opérations arithmétiques
• Les opérateurs arithmétiques admis sont les Correct Incorrect
suivants :
pi ← 3.14159 π ← 3,14159
Notation Sens Remarques y ← 2 * x y ← 2(x+y)
en pseudocode per ← 2*r*pi vol ← 4/3π×rayon^3
a+b Addition
a-b Soustraction
a*b Produit
a/b Division Indéfini si b =0 L’opération modulo permet de
a%b Modulo Indéfini si b =0 calculer le reste de la division de a
par b, exemple :
17%5=2
ALGORITHMIQUE 13
chapitre 1
LES OPÉRATIONS 2/5
Les opérations relationnelles
Notation Notation Sens
en pseudocode mathématique
a<b a<b a inférieur strictement à b
a>b a>b a supérieur strictement à b
a<=b a≤b a inférieur ou égale à b
a>=b a≥b a supérieur ou égale t à b
a=b a=b a égale à b
a!=b a≠b a différent de b
• Les opérateurs relationnelles permettent d’exprimer des comparaisons entre deux variables ou
expressions.
• Ils sont utilisés pour évaluer des conditions .
ALGORITHMIQUE 14
chapitre 1
LES OPÉRATIONS 3/5
Les opérations logiques
• Les opérateurs logiques permettent • Il est possible de composer plusieurs
d ’exprimer des conditions composées de conditions avec des opérateurs logiques
plusieurs opérateurs relationnelles. différents :
• Les opérateurs logiques admis sont les ((x>=0)ET(x<=10))OU (x>100)
suivants :
0<x ET x<10
Notation Sens Exemples
en pseudocode
:
c1 ET c2 Vrai seulement si c1 et c2 sont tous deux (x>=0)ET(x<=10)
(prix=100)ET(qt>=3)ET(res!=0)
vrais
c1 OU c2 Faux seulement si c1 et c2 sont tous deux (a<b)OU(c>d)
faux
NON c1 Vrai seulement si c1 est faux NON (a<0)
ALGORITHMIQUE 15
chapitre 1
LES OPÉRATIONS 4/5
Priorité des opérations
• Il existe une priorité à respecter entre les
différents opérateurs que nous venons de
voir :
Exemples
Opérations Expression Résultat
NON a5*4+9 a29
Priorité croissante
L’operateurs * a plus de priorité que + donc
* / % l’opération 5*4 sera évaluée, le résultat 20 sera
ensuite additionné a 9, l’affectation est la
+ - dernière opération effectuée car sa priorité est
= ≠ ≥ ≤ < > la plus faible.
ET Vrai si
20+x>10 L’addition + est plus prioritaire que >.
OU x>-10
ALGORITHMIQUE 16
chapitre 1
LES OPÉRATIONS 5/5
Usage de parenthèses Exemples
Expression normale Expression complètement parenthésée
• Pourquoi avoir défini une règle de priorité ? C'est
pour pouvoir écrire les expressions complexes de
manière plus simple, plus lisible. En effet, on peut 7+2*3 (7 + (2 * 3))
très bien se passer de ces règles et utiliser 1-2-3 ((1 - 2) - 3)
systématiquement des parenthèses pour bien
rendre compte de l'ordre dans lequel les 1+2*3/4 (1 + ((2 * 3) / 4))
opérations doivent être effectuées. 3*5-2+1-8/2*3 ((((3 * 5) - 2) + 1) - ((8 / 2) * 3))
• Si nous voulons forcer l'ordinateur à commencer
par un opérateur avec une priorité plus faible,
nous devons (comme en mathématiques) X 2*(A+3)*B+4*C
entourer le terme en question par des l'ordinateur évalue d'abord l'expression entre parenthèses,
parenthèses. ensuite les multiplications, ensuite l'addition et enfin
l'affectation
ALGORITHMIQUE 17
chapitre 1
EXÉCUTION CONDITIONNELLE 1/13
Qu’est-ce l’exécution
conditionnelle ?
• L’exécution conditionnelle permet de faire deux
choses différentes selon le cas qui se produit.
L’instruction ne sera exécutée que sous certaines
conditions. Plus précisément, le programme teste
une condition, si la condition est satisfaite le
programme fait une chose, dans le cas contraire,
le programme fait une autre chose. Une
instruction conditionnelle peut avoir plusieurs
formes.
ALGORITHMIQUE 18
chapitre 1
EXÉCUTION CONDITIONNELLE 2/13
Condition si-alors Organigramme
• Supposons que l’on ait une condition (par
exemple que l’âge du capitaine soit inférieur à 30
ans). Si la condition est vérifiée, on fait quelque
chose, dans le cas contraire, on ne fait rien. En
algorithmique, cela s’écrit :
SI (condition) ALORS
Instructions 1
FINSI
Instructions 2 /* suite
d’instructions du programme hors
condition*/
ALGORITHMIQUE 19
chapitre 1
EXÉCUTION CONDITIONNELLE 3/13
Condition si-alors Exemple :
• L’algorithme ci-contre donne un exemple ALGORITHME note_valide
d’utilisation de SI en fonction d’une condition qui note :REEL
dépende de la valeur de la variable note. Les DEBUT Cette instruction ne
instructions entre SI et FINSI serons exécutées LIRE (note) sera exécutée que si la
seulement si la valeurs de note est supérieure ou SI (note>=12) ALORS condition note>=12
égale à 12. les instructions qui sont à l’extérieur de AFFICHER("Module valide") est vrai
ce bloc serons exécutées indépendamment de
FINSI
cette condition.
AFFICHER("Bon courage!") Cette instruction sera
FIN exécutée car elle ne
dépende pas de la
condition. Elle est en
d’hors de la structure
SI
ALGORITHMIQUE 20
chapitre 1
EXÉCUTION CONDITIONNELLE 4/13
Condition alternative :
Organigramme
si-alors sinon
• Une seconde forme plus intéressant est constituée
d’un second bloc d’instructions qui seront
exécutées lorsque la condition n’est pas vérifiée.
Elle aura pour forme :
SI (condition) ALORS
Instructions 1
SINON
Instructions 2
FINSI
Instructions 3 /* suite
d’instructions du programme hors
condition*/
ALGORITHMIQUE 21
chapitre 1
EXÉCUTION CONDITIONNELLE 5/13
Condition alternative :
Exemple :
si-alors sinon
ALGORITHME note_valide Cette instruction ne
• L’algorithme ci-contre donne un exemple sera exécutée que si la
d’utilisation de SI en fonction d’une condition qui note :REEL
DEBUT condition note>=12
dépende de la valeur de la variable note. Les est vrai
instructions entre SI et FINSI serons exécutées que LIRE (note)
si la valeurs de note est supérieure à 12. les SI (note>=12) ALORS
AFFICHER("Module valide") Cette instruction ne
instructions qui sont à l’extérieur de ce bloc serons sera exécutée que si la
exécutées indépendamment de cette condition. SINON
AFFICHER("Module NON valide") condition note>=12
FINSI est Fausse
AFFICHER("Bon courage!")
FIN Cette instruction sera
exécutée car elle ne
dépende pas de la
condition. Elle est en
d’hors de la structure
SI
ALGORITHMIQUE 22
chapitre 1
EXÉCUTION CONDITIONNELLE 6/13
Conditions imbriquées Exemple :
Parfois l’expression d’une structure conditionnelle • Si Temp est entre 75 et 100 degrés alors il
peut contenir plusieurs situations. affiche que l’eau est Très chaud.
Prenons l’exemple d’un algorithme qui donne l’état • Si Temp est supérieure à 100 degrés alors il
de l’eau en fonction de sa température. Il prend en affiche que l’eau est Brûlant.
entrée une variable Temp qui représente la Une première stratégie consiste à utiliser
température de l’eau et puis il affiche des messages: linéairement (indépendamment) la structure
• Si la température est inférieure a 0 degrés alors il SI-ALORS plusieurs fois en combinant des
affiche que l’eau est Gelé. conditions à l’aide d’operateurs logiques.
• Si Temp est entre 0 et 12 degrés alors il affiche Voir l’organigramme suivant :
que l’eau est Froid.
• Si Temp est entre 12 et 25 degrés alors il affiche
que l’eau est Confortable.
• Si Temp est entre 25 et 75 degrés alors il affiche
que l’eau est Chaud. ALGORITHMIQUE 23
chapitre 1
EXÉCUTION CONDITIONNELLE 7/13
Organigramme de l’algorithme
ALGORITHMIQUE 24
chapitre 1
EXÉCUTION CONDITIONNELLE 8/13
L’algorithme de la structure
conditionnelle non-imbriquées
ALGORITHME Temp_Eau /*suite de l’algorithme*/
Temp :REEL SI ((Temp > 75) ET (Temp <= 100)) ALORS
DEBUT AFFICHER("C'est très chaud")
AFFICHER("Donner la température") FINSI
LIRE(Temp) SI (Temp > 100) ALORS
SI (Temp <= 0) ALORS AFFICHER("C'est brulant")
AFFICHER("C'est gelé") FINSI
FINSI FIN
SI ((Temp > 0) ET (Temp <= 12)) ALORS
AFFICHER("C'est froid")
FINSI
SI ((Temp > 12) ET (Temp <= 25)) ALORS
AFFICHER("C'est confortable")
FINSI
SI ((Temp > 25) ET (Temp <= 75)) ALORS
AFFICHER("C'est chaud")
FINSI
ALGORITHMIQUE 25
chapitre 1
EXÉCUTION CONDITIONNELLE 9/13
Conditions imbriquées Syntaxe :
• L’imbrication des conditions consistes à utiliser la SI (condition 1) ALORS
structure SI-ALORS SINON l’une à l’intérieure Instructions1
d’une autre. SINON
• Elle permet de mieux structurer l’algorithme afin SI(condition 2) ALORS
que cela soit plus clair, mais surtout à réduire le Instructions2
nombre d’opérations de comparaisons effectuées. SINON
Cela permet de réduire la complexité de SI(condition 3) ALORS
l’algorithme. Instructions3
Question? Combien d’opérations de comparaison SINON
sont effectuées par l’algorithme précèdent? …
FINSI
L’algorithme précèdent peut être conçus de manière
FINSI
à utiliser la structure de conditions imbriquées
comme nous pouvons voir dans l’organigramme de la FINSI
page suivante.
ALGORITHMIQUE 26
chapitre 1
EXÉCUTION CONDITIONNELLE 10/13
Organigramme de l’algorithme
ALGORITHMIQUE 27
chapitre 1
EXÉCUTION CONDITIONNELLE 11/13
Conditions imbriquées
ALGORITHME Temp_Eau /*suite de l’algorithme*/
Temp :REEL SI (Temp <= 100) ALORS
DEBUT AFFICHER("C'est très chaud")
AFFICHER("Donner la température") SINON
LIRE(Temp) AFFICHER("C'est brûlant")
SI (Temp <= 0) ALORS FINSI
AFFICHER("C'est gelé") FINSI
SINON FINSI
SI (Temp <= 12) ALORS FINSI
AFFICHER("C'est froid") FINSI
SINON FIN
SI (Temp <= 25) ALORS
AFFICHER("C'est confortable")
SINON
SI (Temp <= 75) ALORS Étudier combien d’opérations de
AFFICHER("C'est chaud") comparaison sont effectuées ?
SINON
ALGORITHMIQUE 28
chapitre 1