Académique Documents
Professionnel Documents
Culture Documents
Introduction
En informatique, un algorithme est une sorte de « plan » composé d’une suite finie d’instructions
(écrites selon un format adapté aux langages compréhensibles par les ordinateurs) destinées à la
résolution d’un problème donné. Pour que ce plan (algorithme) soit transformé en un programme (qui
s’exécute sur un ordinateur), il suffit de réécrire ses instructions en un langage compréhensible par
l’ordinateur (comme les langages classiques : Pascal, C, Basic, Fortran, etc.). Une fois exécuté, le
programme conçu permet d’aboutir à une solution du problème posé.
De ce fait, dans le présent cours, nos algorithmes seront écrits à l’aide d’un pseudo-langage (ou
pseudo-code) proche des langages de programmation classiques.
I- Les variables
Dotée d’un nom (X, A, Var, Truc, …), une variable est un espace qui permet de stocker une valeur
(numérique, logique, texte, etc.). Une variable doit être « déclarée » en début d’algorithme pour que
l’ordinateur puisse lui réserver l’espace nécessaire en mémoire. La déclaration d’une variable permet de
fixer son nom, son « type » (numérique, logique, texte, etc.) et éventuellement sa valeur initiale.
Variables …
Début
Instruction 1
Instruction 2
….
Instruction n
Fin
La partie déclarations commence par le mot clé Variables et permet de lister toutes les variables
que l’algorithme utilisera ainsi que leurs types. Par exemple :
Variable A en Numérique
Indique la déclaration d’une variable nommée A de type numérique. L’ordinateur va donc réserver un
espace en mémoire pour cette variable. La taille de cet espace est déterminée par le type (ici
Numérique). Bien sûr, certains types consomment plus d’espaces en mémoire que d’autres.
La partie corps de l’algorithme est délimitée par les mots clés Début et Fin. Elle est composée
d’une suite finie d’instructions, placées les unes après les autres. Chaque instruction est un ordre
donné à l’ordinateur. Il faut noter ici, que ces ordres seront exécutés de manière séquentielle : on
exécute d’abord l’Instruction 1, puis l’Instruction 2 … et enfin l’Instruction n.
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Il est important de noter qu’une variable, ne peut prendre qu’une valeur à la fois. Par contre,
cette valeur peut être modifiée à tout moment par une instruction de l’algorithme.
Une instruction de base permettant de modifier la valeur d’une variable est l’affectation. Dans
notre pseudo-code, l’affectation est représentée par le signe ←. Dans l’exemple Algorithme 1,
l’instruction :
A ← 10
demande à l’ordinateur d’affecter la valeur 10 à la variable A.
Algorithme 1 :
Variable A en Numérique
Début
A ← 10
Fin
Ici, la variable A est déclarée comme de type numérique. Cet algorithme lui affecte la valeur 10.
Algorithme 2 :
Variable A en Numérique
Début
A ← 10
A ← 20
Fin
Ici, la variable A est prend d’abord la valeur 10. Cette valeur est écrasée et est remplacée par la
valeur 20 après la deuxième instruction d’affectation.
Algorithme 3 :
Variables A, B en Numérique
Début
A ← 10
B←A
A ← 15
Fin
Ici, on déclare deux variables numériques A et B. La première instruction affecte la valeur 10 à A.
A ce moment, B n’a pas encore de valeur. La seconde instruction affecte à B, la valeur de A (donc
10). A ce moment, A et B ont tous les deux la valeur 10. La troisième instruction écrase la valeur
courante (10) de A par une nouvelle valeur (15). Donc en fin d’algorithme, A a la valeur 15 et B la
valeur 10.
Remarque :
Comme dans les langages de programmation, notre pseudo-code n’évalue que la partie droite de
l’affectation :
Quelques opérateurs :
Opérateurs numériques :
Ce sont les quatre opérations arithmétiques, tout ce qu’il y a de classique.
+ : addition
- : soustraction
* : multiplication
/ : division
Remarque :
Il y a également le signe ^ qui signifie « puissance ». 9 au carré s’écrira donc 9 ^ 2.
Opérateurs logiques (ou booléens) : il s’agit du ET, du OU et du NON. (A voir plus tard)
Exercices
Exercice 1
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C en Numérique
Début
A←7
B←3
C←A+B
A←6
C←B–A
Fin
Exercice 2
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B en Numérique
Début
A←7
B←A+3
A←A+8
B←A–2
Fin
Afin de permettre une meilleure interaction entre l’ordinateur et l’utilisateur, les programmes permettent
souvent l’insertion de données via le clavier (dit entrée standard) ainsi que l’affichage des résultats sur
l’écran (dit sortie standard).
Lire X, Y, … indique à l’ordinateur qu’il doit attendre de lire une valeur entrée par l’utilisateur du
programme (via le clavier) et l’affecter à la variable X. Ensuite, attendre de lire une deuxième valeur
entrée par l’utilisateur et l’affecter à Y, etc.
Ecrire X, Y, … indique à l’ordinateur qu’il doit afficher (à l’écran) la valeur de la variable X, puis celle
de la variable Y, etc. Il est important ici de noter que tout ce qui suit le mot clé Ecrire sera évalué (et
doit donc avoir une valeur au moment de l’exécution de l’instruction d’écriture). Si une variable n’a pas
encore de valeur au moment de l’exécution de l’instruction Ecrire, l’ordinateur va afficher une erreur
et le programme s’arrête.
Par exemple,
Variables A en Numérique
Début
A←7
Ecrire A
Fin
Cet algorithme affecte la valeur 7 à la variable A (instruction A ← 7) puis affiche 7 (valeur courante de
la variable A au moment de l’exécution de l’instruction Ecrire A).
Variables A en Numérique
Début
Ecrire A
A←7
Fin
Ici, l’ordinateur va afficher une erreur et s’arrêter. En effet, l’ordre d’afficher la valeur de la variable A
(Ecrire A) se fait avant que celle-ci n’ait une valeur. L’ordre séquentiel de l’exécution des instructions
est important !
Un autre point important de l’instruction d’écriture est l’utilisation des guillemets lorsqu’on souhaite
afficher une chaine de caractères (une lettre, un mot, une phrase …). Par exemple, l’instruction :
Ecrire « A »
indique à l’ordinateur qu’il doit afficher la lettre A à l’écran et non la valeur de cette variable.
Variables A en Numérique
Début
A←7
Ecrire A
Fin
Variables A en Numérique
Début
A←7
Ecrire « A »
Fin
Autre exemple :
Variable P, N en Chaîne
Début
Ecrire « Entrez votre prénom »
Lire P
Ecrire « Entrez votre nom »
Lire N
Ecrire « Vous êtes : », «Monsieur », « », P, « », N
Fin
Lire P
indique à l’ordinateur qu’il doit attendre que l’utilisateur entre quelque chose au clavier, puis mettre
cette chose dans la variable P. Comme cette dernière est de type chaîne, ce qui est entré au clavier doit
être une chaine de caractères (une lettre, un mot, une phrase …). C’est normal car on attend de mettre
un prénom (entré par l’utilisateur) dans cette variable.
Lire N
indique à l’ordinateur qu’il doit attendre que l’utilisateur entre une chaine de caractères (au clavier)
pour la mettre dans la variable N.
Pour mieux comprendre, imaginons que cet algorithme soit transformé en programme (via un vrai
langage de programmation) et exécuté sur un ordinateur. Voici le déroulement de l’exécution :
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Supposons que l’utilisateur entre au clavier : Khalid. Le programme va mettre ce texte dans la variable
P et poursuivra l’exécution de la commande suivante (Ecrire « entrez votre nom »). Après affichage de
cette nouvelle phrase, il va attendre à nouveau que l’utilisateur entre le nom au clavier.
Supposons que cette fois-ci l’utilisateur entre : Moussaoui. Le programme va mettre ce texte dans la
variable N et poursuivra l’exécution de la commande suivante (Ecrire « Vous êtes : », «Monsieur », « »,
P, « », N).
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Notez ici qu’à l’écran, ce qui est indiqué entre guillemets (« vous êtes : » et « Monsieur ») apparait
textuellement alors que pour le reste (variables P et N), ce sont les valeurs qui sont affichées (Khalid et
Moussaoui). De même, le « » indiqué après «Monsieur», au niveau la dernière instruction Ecrire,
explique à l’ordinateur qu’il faut placer un espace blanc après le mot Monsieur. Idem entre les mots
contenus dans les variables P et N. Si cet espace blanc n’est pas indiqué, l’ordinateur va afficher ces
deux mots collés (KhalidMoussaoui).
III- Le test SI
car l’algorithme n’a prévu que le cas « Monsieur ». Il serait judicieux de reformuler ce programme de
manière à ce qu’il puisse aussi identifier les femmes. Comme le concepteur de l’algorithme ne peut
prévoir à l’avance si l’utilisateur sera femme ou homme, il doit demander à celui-ci s’il est homme ou
femme avant d’afficher « Vous êtes Monsieur » ou « Vous êtes Madame ».
La modification consiste à inclure une variable Sexe (1 pour homme et 2 pour femme) et de répondre
« Monsieur » ou « Madame » en fonction du sexe annoncé par l’utilisateur. Grâce à une instruction
conditionnelle appelée « Si », on peut établir cette nouvelle version du programme :
Variable P, N en chaîne
Variable Sexe en Numérique
Début
Ecrire « Entrez votre prénom »
Lire P
Ecrire « Entrez votre nom »
Lire N
Ecrire « Entrez 1 si vous êtes homme et 2 si vous êtes femme »
Lire Sexe
Si (Sexe = 1) Alors
Ecrire « Vous êtes : », «Monsieur », « », P, « », N
Sinon
Ecrire « Vous êtes : », «Madame », « », P, « », N
Finsi
Fin
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Si condition Alors
Instructions1
Sinon
Instructions2
Finsi
où Instructions1 et Instructions2 sont des blocs d’instructions (une ou plusieurs instructions à la suite).
Instruction1 est dit « Bloc Alors » et Instructions2 est dit « Bloc Sinon ».
Si condition Alors
Instructions 1
Finsi
Fonctionnement : si la condition est vérifiée (c’est-à-dire : Vraie) on exécute les instructions1 sinon
(condition fausse) on exécute les instructions2.
L’expression ‘condition’ doit aboutir à vrai ou faux. Elle peut être simple ou composée.
Reprenant maintenant l’algorithme modifié (après y avoir inclus la variable Sexe et l’instruction Si).
L’exécution donnerait :
Grâce à l’instruction « Si », nous avons pu prévoir tous les cas possibles des utilisateurs et le programme
précise maintenant Madame ou Monsieur.
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Quelques remarques :
Tests imbriqués
Les blocs instructions1 et instructions2 peuvent eux-mêmes contenir un test « Si ». Dans ce cas, on parle
de tests imbriqués. Exemple :
Un programme qui affiche le repas associé à un moment donné de la journée :
Matin : Petit-déjeuner, Midi : Déjeuner et Soir : Diner.
A l’exécution, cet algorithme affichera le repas en fonction du choix 1, 2 ou 3 entré par l’utilisateur.
Exemples d’exécutions :
Exercice 4 :
Un magasin de reprographie facture 0,10 Dhs les dix premières photocopies, 0,09 Dhs les vingt suivantes
et 0,08 Dhs au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de photocopies
effectuées et qui affiche le montant total à payer.
Par exemple, si l’utilisateur entre le nombre 35 (photocopies), le programme doit afficher 3,2 (car
10*0,1+20*0,09+5*0,08 = 3,2)
Conditions composées :
L’expression de certaines conditions exige parfois l’utilisation des connecteurs logiques classiques : ET,
OU et NON. Dans notre pseudo-code on va adopter la syntaxe :
Expression1 ET Expression2,
Expression1 OU Expression2,
NON(Expression),
Exemples :
Variables X, Y en Numérique
Début
Ecrire "Entrez deux nombres : "
Lire X, Y
Si (X > 0 ET Y > 0) OU (X < 0 ET Y < 0) Alors
Ecrire "Le produit de ces deux nombres est positif"
Sinon
Ecrire "Le produit de ces deux nombres est négatif"
Finsi
Fin
Remarque : dans cet algorithme nous n’avons pas prévu le cas où X = 0 ou Y = 0. Si l’utilisateur
entre le nombre 0 (en X ou en Y), qu’affiche l’algorithme ?
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Exercice 5:
Un module est composé de deux matières. La condition de réussite est d’avoir une moyenne du
module supérieure ou égale à 10 sans avoir une note éliminatoire dans une des deux matières. La
matière Math a un coefficient de 2 et la matière Info a un coefficient de 1. La note éliminatoire est de
6/20.
Ecrire un algorithme qui lit les deux notes et qui affiche l’un des résultats suivants :
« Succès » : la moyenne est supérieure ou égale à 10 avec aucune note éliminatoire.
« Echec pour note éliminatoire » : la moyenne est supérieure ou égale à 10 mais il y a une note
éliminatoire.
« Echec » : la moyenne est strictement inférieure à 10.
Exemples d’exécution :
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Cas Affichage
Moy < 10 Echec.
Moy >= 10, Math < 6, Info >= 10 Echec pour note éliminatoire.
Moy >= 10, Math >= 10, Info < 6 Echec pour note éliminatoire.
10<= Moy < 12, Math > 6, Info > 6 Succès avec la mention : Passable
12<= Moy < 14, Math > 6, Info > 6 Succès avec la mention : A. Bien
14<= Moy < 16, Math > 6, Info > 6 Succès avec la mention : Bien
16<= Moy, Math > 6, Info > 6 Succès avec la mention : T. Bien
Exemples d’exécution
Sciences Economiques – Semestre 4 – Cours d’Algorithmique
Question : l’algorithme proposé ci-dessous est-il valide pour cet exercice (exercice 5 variante 1) ?
Exercice 5 (variante 2) : Ecrire un nouvel algorithme qui, après lecture des deux notes, affiche l’un
des résultats suivants (de la première session) :
- La mention en cas de succès : la moyenne est supérieure ou égale à 10 avec aucune note
éliminatoire.
- La ou les matière(s) à refaire lors du rattrapage, en cas d’échec ou d’échec pour note
éliminatoire.