Vous êtes sur la page 1sur 23

07/12/2016

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


École Nationale Supérieure de Biotechnologie

Chapitre IV
Initiation à l’ Algorithmique

1ère Année cycle préparatoire


Dr. Fayçal BACHTARZI Module: Informatique 1
bachtarzi@misc-umc.org Année universitaire: 2016/2017

Chapitre IV
Algorithmique
Plan du chapitre

1) Objectifs du chapitre
2) Notions de base de l’algorithmique
3) Structure d’un algorithme Cours : 3 semaines
4) Instructions de base
5) Primitives

1
07/12/2016

1. Objectifs du chapitre

L’objectif principal des enseignements de ce chapitre est l’acquisition des


notions fondamentales de l’algorithmique.

Plus précisément :
• La structure d’un algorithme
• Les constantes et variables
• Les instructions de base
• Les primitives

07/12/2016 ENSB 3

2. Notions de base de l’algorithmique

Qu’est-ce qu’un algorithme ?


Un algorithme, est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat
donné

Exemple simple : Algorithme pour se dirigé d’un point A à un point B

Début de l’algorithme
1. Marcher tout droit jusqu’au prochain carrefour
2. Tourner à gauche au carrefour Algorithme destiné à être exécuté
3. Prendre la deuxième rue à droite par des humains
4. Le point B sera en face de vous
Fin de l’algorithme

Important : Un algorithme doit contenir uniquement des instructions compréhensibles par celui qui
devra l’exécuter.

07/12/2016 ENSB 4

2
07/12/2016

2. Notions de base de l’algorithmique

Qu’est-ce qu’un algorithme ?

Le mot Algorithme est dérivé du nom du célèbre


mathématicien et astronome perse Muhammad ibn Musa
al-Khawarizmi (783-850), qui formalisa au IXe siècle la
notion d'algorithme.
Cependant, l'algorithme le plus célèbre est l'algorithme
d'Euclide (300 avant J.-C.) permettant de calculer le PGCD
de deux nombres.

Al-Khawarizmi (783-850)

07/12/2016 ENSB 5

2. Notions de base de l’algorithmique

Du problème au code source

Étapes de conception d'un programme informatique

Traduction Compilation
Organiser les Code source
Identifier le problème : Programme
actions : écrire (langage de
données, résultats ? exécutable
l'algorithme programmation)

Objectif : Apprendre à définir des algorithmes pour qu’ils soient compréhensibles (et donc exécutables)
par un ordinateur.

Q :Pourquoi apprendre l’algorithmique pour apprendre à programmer ?

R : L’algorithmique exprime les instructions indépendamment des particularités des langages de programmation

07/12/2016 ENSB 6

3
07/12/2016

2. Notions de base de l’algorithmique

Les ordinateurs, quels qu’ils soient, ne sont fondamentalement capables de comprendre que
quatre catégories d'ordres (instructions). Ces quatre familles d'instructions sont :

 L’affectation de variables
Instructions de base
 La lecture / écriture

 Les tests
Instructions évoluées
 Les boucles

Un algorithme
informatique = La combinaison de ces quatre type
briques (Instruction)

07/12/2016 ENSB 7

3. Structure d’un algorithme

Algorithme Nom Entête

Déclaration
Constante Remarque :
Il est fortement
/*Déclaration des constante*/
Zone déclarative conseillé d'écrire un
Variable algorithme sur une
et une seule page
/*Déclaration des variables*/

Début

/*Instructions*/ Corps de l’algorithme

Fin.

07/12/2016 ENSB 8

4
07/12/2016

3. Structure d’un algorithme


3.1. Déclaration des variables
Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs
(des données de types Nombres, Textes, … Etc.).

Une variable est un objet informatique qui associe un nom à une valeur qui peut éventuellement
varier au cours du temps
Variables = Contenant qui permet de contenir une donnée

Valeur 1
Etiquette … Etiquette … Etiquette

Variable 1 Variable X Variable Y

Mémoire de l’ordinateur

07/12/2016 ENSB 9

3. Structure d’un algorithme


3.1. Déclaration des variables

Avant de pouvoir utiliser une variable il faut la déclarer = Créer la boîte et de lui coller une étiquette.

Une variable est déclarée par son nom (identificateur ou l’étiquette) suivi de deux points ‘ : ’ puis son
type et enfin un point-virgule.

On commence par étudier seulement trois (03) types de variables : entier, réel et caractère.

Exemple :
A : entier ;
B : réel ; Déclaration de 4 Variables
C : entier;
F : caractère ;

07/12/2016 ENSB 10

5
07/12/2016

3. Structure d’un algorithme


3.2. Déclaration des constantes
Une constante est un objet informatique qui associe un nom à une valeur qui ne peut pas varier au
cours du temps

Une constante est déclarée par son nom (identificateur) égal une information (une donnée) suivie
d’un point-virgule.

Exemple :
A=4; Déclaration de 2 Constantes
Pi = 3.14 ;

07/12/2016 ENSB 11

3. Structure d’un algorithme


3.3. Variable/ Constantes : équivalent en narration

Narration Algorithmique

Objet = Contenant ~ Mémoire Variable = Contenant ~ Mémoire


 Possède un nom  Possède un nom
 Contenu: nombre (naturel ou réel), caractère, …  Contenu: Selon le type
Le type n’est pas spécifié Le type est important :
Nombre naturel : type entier
Nombre réel : type réel
Caractère : type caractère
 La valeur peu changée
Constante = Contenant ~ Mémoire
 Possède un nom
 La Valeur ne peut pas changer
Le type n’est pas spécifier dans la déclaration

07/12/2016 ENSB 12

6
07/12/2016

4. Instructions de base
4.1. Affectation
L’affectation est l’opération qui consiste à attribuer une Valeur à une variable

Important !!! La variable doit être préalablement déclarée

L’instruction d’affectation est notée  en algorithmique : Variable  Valeur ;

Le nom de la variable à modifier est placé à gauche du signe , la valeur qu’on veut lui attribuer (ou
plus généralement l’expression) est placée à droite du signe  suivie du point-virgule.

07/12/2016 ENSB 13

4. Instructions de base
4.1. Affectation
Exemples :

A  13 ; La variable A prend la valeur 13

Y  (2*A )/ 3 ; L’expression (2*A + 3) est évaluée et son résultat est attribué à la


A  24 ; variable Y
Co  T ; La variable Co prend la valeur de la variable T

Très Important !!!


 Le type de la variable de gauche doit être le même que l’évaluation finale de l’expression à droite de
l’affectation
 La variable ne peut contenir qu'une seule valeur à la fois (les anciennes valeurs de la variables sont
écrasées à chaque fois )

07/12/2016 ENSB 14

7
07/12/2016

4. Instructions de base
4.1. Affectation

Exemple 1 : Exemple 2 :

Déclaration Déclaration
Variable Variable
A : Entier; A : Entier;
Y : Entier; Y : Réel; Début
Début A  13 ;
A  13 ; A  123 ;
Y  (2*A)/3 ; A 46;
Fin; Fin;

L’évaluation de l’expression donne un réel La valeur de la variable A est : 46 (la dernière affecter)
et non pas 13, 123, 46 ou 13 + 123 + 46

07/12/2016 ENSB 15

4. Instructions de base
4.1. Affectation : équivalent en narration

Narration Algorithmique

Verbes ou actions Calculer Instruction d’affectation


Exemple: Exemple:
Calculer S = S + 2 SS+2;
Calculer X = 12 X  12 ;
Calculer Y = S * X YS*X;

07/12/2016 ENSB 16

8
07/12/2016

4. Instructions de base
4.1. La lecture
L'instruction de lecture attend que l'utilisateur entre une valeur au clavier et stocke la valeur en mémoire
dans la variable désignée en paramètres.

Important !!! On ne lit que les variables et rien d’autre.


Exemples :
Dans les deux exemples suivants nous allons utiliser trois variables X,Y et a. Ces variables
doivent être déclarés dans la section déclaration de l’algorithme.

L’algorithme se bloque, attend que l’utilisateur tape une valeur


Lire (a) ;
au clavier, puis il affecte la valeur à la variable a

L’algorithme attend que l’utilisateur tape deux valeurs


Lire (X,Y) ; au clavier, puis il affecte la première valeur à la variable X
Et la deuxième valeur à la variable Y
07/12/2016 ENSB 17

4. Instructions de base
4.1. La lecture : équivalent en narration

Narration Algorithmique
Lire A : Lire une valeur à partir du clavier Lire (A) ; Lire une valeur à partir du clavier
et la mettre dans l’objet A et l’affecter à la variable A
Lire A, B : Lire les valeurs des objets A et B Lire (A, B) ; : Lire deux valeurs à partir du clavier et les
à partir du clavier affecter aux variables A et B respectivement
Lire A et Lire B Lire (A), Lire (B) ;

Remarque : Remarques :
La notion de type d’objet n’existe pas en narration, • Si on fait un parallèle avec la narration, on
nous ne somme pas obliger de faire attention au type remarque l’utilisation des parenthèses et le point-
de l’information fournie virgule
• En algorithmique, le type de la valeur fournie en
entrée de lecture doit correspondre au type de la
variable entre parenthèses

07/12/2016 ENSB 18

9
07/12/2016

4. Instructions de base
4.2. L’écriture
L'instruction d'écriture permet d’afficher à l’écran le contenu de l'expression en paramètre.

Important !!!
 Une expression peut être une valeur, le contenu d'une variable, le résultat d'un calcul ou un message.
 Tout ce qui se trouve entre deux côtes est considéré comme un message.

Exemples :
Dans les exemples suivants nous allons utiliser les variables F,R,X,Y et Z. Ces variables doivent
être déclarés dans la section déclaration de l’algorithme.

Ecrire (F) ;
Ecrire (‘’ Le résultat est : ‘’, R) ; Ecrire à l’écran le message suivie du contenue de la variable R
Ecrire (X, Y, Z) ;

07/12/2016 ENSB 19

4. Instructions de base
4.2. L’écriture équivalent en narration

Narration Algorithmique
Ecrire A : Ecrire à l’écran la valeur de l’objet A Ecrire (A) ; Ecrire la valeur de la variable A à l’écran.

Ecrire A, B : Ecrire à l’écran la valeur des Ecrire (A, B) ; : Ecrire la valeur des variables A et B à
objets A et B l’écran.

Ecrire A et Ecrire B Ecrire (‘’Bonjour !!! ‘’) ; Ecrire à l’écran le message


entre ‘’ ’’

Ecrire (A) , Ecrire (B) ;

07/12/2016 ENSB 20

10
07/12/2016

Exercices d’évaluation sur la 1ère partie

07/12/2016 ENSB 21

5. Les primitives
5.1. Primitives (ou instruction) conditionnelles

 Une primitive conditionnelle est un type d’instruction un peu spécial car elle permet
d’exécuter ou non un bloc d’instructions selon le résultat d’un test

 Les mots clés utilisés sont : Si , alors , fin si

 La syntaxe utilisée pour écrire une instruction conditionnelle est comme suit:

Si (Condition(s)) alors
Peut être une instruction de base (lecture, écriture, affectation)
Instruction ;
ou une primitive
Finsi

07/12/2016 ENSB 22

11
07/12/2016

5. Les primitives
5.1. Primitive (ou instruction) conditionnelle

Narration Algorithmique
Tester <Objet> par rapport à <Valeur> (Condition) SI ( Condition ) Alors
Oui Aller à <Étiquette A >
Non Aller à < Étiquette B > Instruction 1;
<Étiquette A > Instruction 1
<Étiquette B > Instruction 2 Fin si

Instruction 2;

07/12/2016 ENSB 23

5. Les primitives
5.1. Primitive (ou instruction) conditionnelle

Qu’est ce qu’une condition ?


 Une condition en informatique est une comparaison de valeurs
 Une condition est composée de trois parties :
1. Une valeur
2. Un opérateur de comparaison
3. Une autre valeur
 Les opérateurs de comparaison sont :
1. égal à… =
2. différent de… ≠
3. strictement plus petit que… <
4. strictement plus grand que… >
5. plus petit ou égal à… ≤
6. plus grand ou égal à… ≥

07/12/2016 ENSB 24

12
07/12/2016

5. Les primitives
5.1. Primitive (ou instruction) conditionnelle

Conditions composées
Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées
sous la forme simple exposée ci-dessus.

Exemple : 10 < X < 18 Solution : Divisé la condition en deux conditions (ou plus)
et les lier avec un opérateur logique

Trois valeurs au lieu de deux et (10 < X) ET (X< 18)


deux comparateur au lieu de un
l’informatique met à notre disposition trois opérateurs
logiques : ET, OU et NON
Condition correcte en mathématique
mais qui n’a pas de sens en informatique

07/12/2016 ENSB 25

5. Les primitives
5.1. Primitive (ou instruction) conditionnelle

Conditions composées

Le ET a le même sens en informatique que dans le


langage courant. (C1 ET C2) est vrai que si C1 est vrai et
C2 est vrai. Le ET est faux dans tous les autres cas

(C1 OU C2) est faux que si C1 est faux et C2 est faux. Le


Ou est vrai dans tous les autres cas

Le NON, inverse une condition

07/12/2016 ENSB 26

13
07/12/2016

5. Les primitives
5.1. Primitive conditionnelle (2ème Format d’écriture)

Si (Condition(s)) alors
Début

Instruction 1 ;
Si nous avons plus d’une instruction conditionnée entre le « si »
Instruction 2 ;
et le « fin si », on utilise un bloc début fin

Instruction N;

Fin
Finsi

07/12/2016 ENSB 27

5. Les primitives
5.1. Primitives (ou instruction) conditionnelles

Exemple: Calculer la valeur absolue d’un nombre


Algorithme Absolue
Déclaration
Absolue
Variable
Objet X
X : entier ;
1_ Lire X
Début
2_ Tester X par rapport à 0 (X < 0 ?)
2-1_ Oui : Aller à 3 Lire (X);
2-2_ Non : Aller à 4 Algorithme Si (X < 0) alors
X  X *(-1); Une seule instruction entre
3_ Calculer X = X * (-1) le Si et le Finsi : pas besoin
4_ Écrire X Finsi
Écrire (X); d’utiliser un bloc début Fin
5_ Arrêter
Fin.

07/12/2016 ENSB 28

14
07/12/2016

5. Les primitives
5.2. Primitive alternative

 Une primitive alternative est un type d’instruction qui permet d’exécuter un bloc
d’instructions si une condition est vérifiée ET un autre bloc d’instruction si la condition n’est
pas vérifiée

 Les mots clés utilisés sont : Si , alors , Sinon , fin si

 La syntaxe utilisée pour écrire une instruction conditionnelle est comme suit:

Si (Condition(s)) alors
Instruction 1;
Peut être une instruction de base (lecture, écriture, affectation)
Sinon
ou une primitive
Instruction 2;
Finsi

07/12/2016 ENSB 29

5. Les primitives
5.2. Primitive alternative

Si (Condition(s)) alors
Remarque :
Instruction 1;
• L’instruction 1 et l’instruction 2 ne sont jamais
Sinon
exécutées en même temps ; c’est ou bien l’une ou
Instruction 2; bien l’autre d’où le mot « alternative ».
Finsi

07/12/2016 ENSB 30

15
07/12/2016

5. Les primitives
5.2. Primitive alternative (2ème forme)
Si (Condition(s)) alors
Début
Instruction 1 ;
Instruction 2 ; Si nous avons plus d’une instruction conditionnée entre le « si »
Instruction 3; et le « Sinon », on utilise un bloc début fin
Fin
Sinon
Début
Instruction 1 ;
Instruction 2 ; Si nous avons plus d’une instruction conditionnée entre le « Sinon »
Fin et le « Finsi », on utilise un bloc début fin
Finsi

07/12/2016 ENSB 31

5. Les primitives
5.1. Primitive alternative
Exemple : Dire si un nombre est pair ou impair
Algorithme PairImpair
PairImpair
Déclaration Si (R=0) alors
Objet X, Q, R
Variable Écrire (X,’’est pair ’’);
1_ Lire X
X, Q, R : entier ; Finsi
2_ Calculer Q = X/2
Début Si (R !=0 ) alors
3_ Calculer R = X – 2*Q
Lire (X); Écrire (X,’’est impair ’’);
4_ Tester R par rapport à 0 (R = 0 ?)
Q  X/2; Finsi
4-1_ Oui : Aller à 5
4-2_ Non : Aller à 7 Algorithme R  X – 2*Q ;
5_ Ecrire X ‘est pair’ Si (R=0) alors
Écrire (X,’’est pair ’’); Une seule instruction dans
6_ Aller à 8 les blocs Si et Sinon : pas
7_ Ecrire X ‘est impair’ Sinon
Écrire (X,’’est impair ’’); besoin d’utiliser un bloc
8_ Arrêter début Fin
Finsi
Fin.

07/12/2016 ENSB 32

16
07/12/2016

5. Les primitives
5.1. Primitive itérative
Ces primitives sont appelées aussi structures répétitives ou encore boucles. Nous allons étudier deux
types de boucles :
 La boucle Tant que
 La boucle Pour

A quoi ça sert ?
Les boucles sont des structures qui permettent d'exécuter plusieurs fois la même série d'instructions
jusqu'à ce qu'une condition ne soit plus vérifiée...

07/12/2016 ENSB 33

5. Les primitives
5.1. Primitive itérative
Dans tous les cas, le schéma de fonctionnement est le même (pour toutes les boucles) :

1. L'ordinateur lit les instructions de haut en bas (comme d'habitude) Instruction


2. Une fois arrivé à la fin de la boucle, il repart à la première instruction Instruction
3. Il recommence alors à lire les instructions de haut en bas… Instruction
4.… et il repart au début de la boucle Instruction
Instruction

07/12/2016 ENSB 34

17
07/12/2016

5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Tantque
 Les mots clés utilisés sont : tantque, faire, fintantque
 La syntaxe utilisée pour écrire une instruction Tant que est comme suit :

1er format d’écriture : 2ème format d’écriture :


Tant que (Condition(s)) faire
Tant que (Condition(s)) faire
Début
Instruction ; Instruction 1 ;
Instruction 2 ; Si nous avons plus d’une instruction
Fin tant que Instruction 3; conditionnée entre le « Tantque »
Fin et le « Fintantque »,
Fin tant que on utilise un bloc début fin

07/12/2016 ENSB 35

5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour
 Les mots clés utilisés sont : pour, de, à, pas, faire, fin pour
 La syntaxe utilisée pour écrire une instruction Pour est comme suit :

1er format d’écriture :


On constate qu’il y a quatre espace « … », cela veut dire, il y aura :
Pour ... de … à … pas … faire
 Après pour, le nom d’une variable déclarée.
 Après de : le point de départ ou l’initialisation de la variable.
Instruction ;
 Après à : le point d’arrivée ou la condition de sortie de la boucle
Finpour pour.
 Après pas : le pas d’avancement (incrémentation) ou de recul
(décrémentation).

07/12/2016 ENSB 36

18
07/12/2016

5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour

2ème format d’écriture :


Pour ... de … à … pas … faire
Début
Instruction 1 ; Si nous avons plus d’une instruction
Instruction 2 ; conditionnée entre le « Pour »
Instruction 3; et le « Finpour », on utilise un bloc début fin
Fin
Finpour

07/12/2016 ENSB 37

5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour En quelque sorte trois opérations
Initialisation
Condition
Exemple : Équivalent de la boucle pour
Incrémentation
en boucle Tantque
Pour N de 1 à 10 pas 1 faire

Écrire (N); N1; / * initialisation*/


Tant que (N < 11) faire /* Condition*/
Finpour Début
Écrire (N);
 La boucle va écrire la valeur de N dix fois : N  N + 1 ; /* Incrémentation */
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Fin
Fin tant que

07/12/2016 ENSB 38

19
07/12/2016

5. Les primitives
5.1. Primitive itérative
Si pas est égale à 1, nous pouvant ne pas le
5.1.1. La boucle Pour
mentionner --> Pour N de 1 à 10 faire

Exemple :
Pour N de 1 à 10 pas 1 faire /* Condition*/
Début
Écrire (N);
N  N+1 ;
Il est strictement interdit de modifier la variable
Fin de la boucle Pour à l’intérieur de la boucle
Finpour

07/12/2016 ENSB 39

5. Les primitives
5.1. Primitive itérative
MoyenneN
Objet X, S, Co, N, M
1_ Écrire ‘Combien de nombres à lire?’
2_ Lire N
3_ Calculer S = 0
4_ Calculer Co = 0
5_ Tester Co par rapport à N (Co < N ?)
Exemple : Narration qui calcule
5-1_ Oui : Aller à 6
la moyenne de N nombres entiers
5-2_ Non : Aller à 10
6_ Lire X
7_ Calculer S = S+X
8_ Calculer Co = Co+1
9_ Aller à 5
10_ Calculer M = S/N
11 _ Écrire M
12_ Arrêter

07/12/2016 ENSB 40

20
07/12/2016

5. Les primitives Algorithme MoyenneN


Déclaration
5.1. Primitive itérative Variable
X, S, Co, N : entier ;
M : réel;
Début
Exemple : Algorithme qui calcule
Lire (N);
la moyenne de N nombres entiers
S  0;
(Avec boucle Tantque)
CO  0;
Tantque (CO<N) faire
X 2 4 2 Debut
N 3 Lire(X);
S  S+X;
S 0 2 6 8 CoCO+1;
Co 0 1 2 3 Fin
M 2,66 Fintantque
MS/N;
Écrire (M);
Fin.

07/12/2016 ENSB 41

5. Les primitives
Algorithme MoyenneN
5.1. Primitive itérative Déclaration
Variable
X, S, Co, N : entier ;
M : réel;
Exemple : Algorithme qui calcule Début
la moyenne de N nombres entiers Lire (N);
(Avec boucle Pour) S  0;
Pour CO de 0 à N-1 Pas 1 faire
X 2 4 2 Début
Lire(X);
N 3
S S + X;
S 0 2 6 8 Fin
Co 0 1 2 3 Finpour
M S / N;
M 2,66
Écrire (M);
Fin.

07/12/2016 ENSB 42

21
07/12/2016

5. Les primitives
5.1. Primitive itérative
Attention aux boucles infinies !!!

 Lorsque l’on créez une boucle, nous devons absolument nous assurer qu'elle peut
s'arrêter à un moment !
 Si la condition est toujours vraie, votre programme ne s'arrêtera jamais !
 Voici un exemple de boucle infinie :

N5;
Co  0 ;
Tantque ( CO < N ) faire
Debut
Lire(X);
S  S+X;
Fin
Fintantque

07/12/2016 ENSB 43

Les commentaires

Les commentaires sont essentiels pour “éclairer” le code. Un commentaire est un texte qui est
ignoré par l’ordinateur lorsqu’il exécute le programme, mais qui peut être lu par le développeur
lorsqu’il lit le programme.

En Algorithmique, tous ce qui se trouve entre le /* et */ est un commentaire.

Bien que les commentaires soient essentiels, il ne faut pas en abuser.

07/12/2016 ENSB 44

22
07/12/2016

Les commentaires Algorithme MoyenneN


Déclaration
Variable
X, S, Co, N : entier ;
M : réel;
Exemple : Début
Lire (N);
S  0; /* initialisation de la variable S à 0 */
CO  0;
Tantque (CO<N) faire
Debut
Lire(X);
S  S+X;
CoCO+1;
Fin
Fintantque
MS/N; /* Calcul de la moyenne */
Écrire (M);
Fin.

07/12/2016 ENSB 45

23

Vous aimerez peut-être aussi