You are on page 1of 18

cours d'algorithmique pascal 16/11/2008

COURS
DALGORITHMIQUE/PASCAL
1re ANNEE ESI
Chapitre 2

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 1

NECESSITE DUN FORMALISME ALGORITHMIQUE


Un formalisme algorithmique est un ensemble de
conventions (ou de rgles) dans lequel on exprime
toute solution dun problme donn
donn..

langage commun

Communication

Prcision Non ambigit

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 2

1
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


STRUCTURE DUN ALORITHME

Entte ALGORITHME Nom_de_lalgorithme

Environnement ENVIRONNEMENT ( Dclaration des objets et


Modules utiliss dans lalgorithme
DEBUT

Corps CORPS DE LALGORITHME

FIN

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 3

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME

On y dfinira les outils de base ncessaires pour exprimer tout


algorithme. Ils servent prciser comment doivent s'enchaner
chronologiquement les actions composant un algorithme.

LES STRUCTURES DE CONTROLE

1. L'enchanement (squencement)

2. La conditionnelle et lalternative

3. La rptitive

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 4

2
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTROLE

1. L'enchanement (squencement)
Les actions primitives sont excutes dans l'ordre d'apparition dans
l'algorithme.
DEBUT
Action 1 Action 1
Action 2 Action 2
. BLOC .
. .
. Action n
Action n FIN

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 5

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

2. La conditionnelle et lalternative L alternative


SI expression logique ALORS
La conditionnelle
DSI
SI expression logique ALORS
BLOC 1
DSI
BLOC 1 FSI
SINON
FSI DSIN
BLOC 2

FSIN
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 6

3
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

2. La conditionnelle et lalternative Fonctionnement

a Evaluation de lexpression logique


b Si expression logique est = VRAI le Bloc 1 est excut ensuite
on passe en squence
Sinon cest dire SI expression logique = FAUX
- on passe en squence dans le cas de la conditionnelle
- on excute le Bloc2 dans le cas de lalternative puis on passe
en squence

REMARQUE : La conditionnelle est un cas particulier de lalternative

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 7

LALTERNATIVE EXEMPLES

exemple 1
Il sagit de lire une note et de dafficher lapprciation correspondante :
Trs bien si note >= 16 , Bien si note <16 et <= 14 , Assez bien si note
<14 et >=12 , Passable si note <12 et >=10 et Echec si note <10

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 8

4
cours d'algorithmique pascal 16/11/2008

ALGORITHME Apprciation
VAR N : ENTIER
DEBUT
LIRE (N)
SI N >= 16 ALORS
DSI
ECRIRE (La mention est : Trs bien)
FSI
SINON
DSIN
SI N >=14 ALORS
DSI
ECRIRE (La mention est : Bien)
FSI
SINON
DSIN
SI N >= 12 ALORS
DSI
ECRIRE (La mention est : Assez Bien)
FSI
SINON
DSIN
SI N >=10 ALORS
DSI
ECRIRE (La mention est : Passable)
FSI
Cours Algo-Pascal Nadji MEDJAOUI
SINON
DSIN
ECRIRE (ECHEC)
FSIN
FSIN
FSIN
FIN FSIN

LALTERNATIVE EXEMPLES

exemple 2
Il sagit de lire 3 ENTIERS A , B , C et de les classer par ordre croissant
cest---dire mettre la plus petite valeur dans A et la plus grande dans C
cest

Deux solutions diffrentes avec deux analyses


diffrentes

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 10

5
cours d'algorithmique pascal 16/11/2008

ANALYSE ALGORITHME Classement


Premire solution VAR A,B,C,S : ENTIER

DEBUT
-Soient A B C trois entiers LIRE (A,B,C)
-On compare A et B si dsordre SI A>B ALORS
permuter A et B DSI
SA
-On compare ensuite B et C si A B
dsordre permuter B et C B S
FSI
-Enfin on compare nouveau A et B
et si dsordre permuter A et B SI B>C ALORS
DSI
Pour permuter deux variables on SC
utilise une troisime S qui nous B C
CS
permet de sauvegarder la valeur de FSI
lune et de procder la permutation
2 SI A>B ALORS
DSI
A B SA
1 3 A B
B S
FSI
S
FIN

ANALYSE (seconde solution) ALGORITHME Classement


-Soient A B C trois entiers VAR A,B,C,S : ENTIER
-On compare A et B puis on compare B et C DEBUT
dans les deux cas et ensuite on compare A et LIRE (A,B,C)
C. On dcide de laction mener une fois SI A>B ALORS
toutes les comparaisons faites DSI
A> B SI B>C ALORS
DSI DSI
SI A>C ALORS SA
B>C B>C
A8 A C
FSI CS
SINON FSI
DSIN
A>C A>C A>C A>C SI A>C ALORS
A6
SINON
A1 A2 A3 A4 A5 A6 A7 A8 A5
FSIN
A1 : Ne rien faire les lments sont dans lordre FSI
A2 : impossible
SINON
A3 : 5 8 6- Permuter B et C
DSIN
A4 : 5 8 4 - Permutation circulaire droite SI B>C ALORS
A5 : 8 5 9 - Permuter A et B
DSI
A6 : 8 5 6 - Permutation circulaire gauche
SI A>C ALORS
A7 : impossible A4
A8 : 8 5 4 - Permuter A et C SINON
4 3 3 4 A3
A B C D A B C D FSI
5 5
1 S 1 S FSIN
2 2
FIN
Permutation circulaire D Permutation circulaire G

6
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive
Il arrive souvent que lon ait besoin de rpter une action ou un
ensemble dactions (bloc) plusieurs fois. Pour ce faire on utilise une
structure rptitive

Il existe 3 formes de structures rptitives

1. La structure POUR
2. La structure TANT QUE
3. La structure REPETER

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 13

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 1. La structure POUR


FORMAT :
POUR variable de contrle ALLANT DE valeur initiale A valeur finale FAIRE
DPOUR

BLOC

FPOUR

REMARQUE : Cette structure est utilise lorsque le nombre de fois rpter est
connu lavance

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 14

7
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 1. La structure POUR

FONCTIONNEMENT :
Pour chaque valeur de la variable de contrle qui varie de la valeur
initiale la valeur finale avec un pas gal 1 le bloc sera excut.
Chaque excution du bloc est appele itration (ou boucle).
1. initialisation de la variable de contrle
2. incrmentation chaque itration
3. test de fin

Le bloc est rpt (Valeur finale valeur initiale + 1) fois


16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 15

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 1. La structure POUR

Exemple 1 Exemple 2 : Structures Pour imbriques


POUR I Allant de 1 A 10 FAIRE
A5 DPOUR
POUR I Allant de 1 A 5 FAIRE POUR J Allant de 1 A 10 FAIRE
DPOUR DPOUR
K A* I ECRIRE ( I * J)
AK FPOUR
FPOUR
FPOUR

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 16

8
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 2. La structure TANT QUE


FORMAT :

TANT QUE expression logique FAIRE


DTQ

BLOC

FTQ

REMARQUE : Le nombre de fois rpter nest pas connu lavance


Le nombre ditrations dpend de la valeur de lexpression logique
16/11/2008 INI Cours Algo-Pascal Nadji MEDJAOUI 17

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 2. La structure TANT QUE


FONCTIONNEMENT :
Le bloc est rpt tant que lexpression logique est VRAI
VRAI.. En dbut de
chaque itration lexpression logique est value.
value. Si la valeur est VRAI
alors le bloc est excut SINON on passe en squence.
squence.
REMARQUE
Le bloc peut ntre excut aucune fois ( expression logique = FAUX au
dpart).. On dit alors que la structure TANT QUE est une structure 0, N
dpart)

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 18

9
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 2. La structure TANT QUE


EXEMPLE 1 :
A5
I 1 Initialisation
TANT QUE I <= 5 FAIRE Test de fin de rptition

DTQ
K A* I
AK
II+1 Incrmentation
FTQ

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 19

Exemple 1 :
Ecrire lalgorithme qui permet de savoir si un nombre entier N lu
au clavier est premier ou non.

Analyse :
Soit un nombre entier N
On divise N par des diviseurs I que lon gnre partir de 2
jusqu au plus N DIV 2
Ce processus sarrte au premier I qui divise N ou bien
lorsque I dpasse N DIV 2
A la fin du processus, pour savoir si N est premier ou pas on
regarde la manire dont le processus prcdent sest
termin. Si N MOD I = 0 alors N nest pas premier Sinon il
lest.

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 20

10
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 2. La structure TANT QUE


ALGORITHME Premier
VAR N , I : ENTIER
DEBUT
LIRE (N)
I 2
TANT QUE (I <= N DIV 2) ET ( N MOD I <> 0) FAIRE
I I+1
SI I > N DIV 2 ALORS
ECRIRE ( N , EST PREMIER)
SINON
ECRIRE ( N , NEST PAS PREMIER)
FIN

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 21

EXEMPLE 2
Ecrire un algorithme qui permet de lire 20 nombres entiers positifs ,
qui calcule et imprime la somme de ces nombres et qui imprime le plus
grand nombre saisi.

ANALYSE :
Soit un nombre entier positif N
On cumule N SOM initialis 0
On compare N au plus grand nombre PGN initialis 0
Si N > PGN alors PGN  N
On rpte ces actions 20 fois

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 22

11
cours d'algorithmique pascal 16/11/2008

ALGORITHME Exemple
VAR
I,N , PGN , SOM : ENTIER
DEBUT
PGN  0
SOM  0
POUR I ALLANT DE 1 A 20 FAIRE
DPOUR
LIRE (N)
SOM  SOM + N
SI N > PGN ALORS
DSI
PGN  N
FSI
FPOUR
ECRIRE ( La somme est : , SOM)
ECRIRE ( Le plus grand nombre saisi est : , PGN)
FIN
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 23

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 3. La structure REPETER


FORMAT :
REPETER
ACTION 1

ACTION n

JUSQU Expression logique

REMARQUE
Les actions qui forment le bloc ne sont pas encadres par DEBUT et FIN

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 24

12
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 3. La structure REPETER


FONCTIONNEMENT:
Les actions situes entre les mots cl REPETER et JUSQU sont rptes
jusqu ce que lexpression logique soit gale VRAI
VRAI.. En fin de chaque
itration lexpression logique est value.
value. Si la valeur est = FAUX les
actions sont excutes SINON on passe en squence.
squence.
REMARQUE
Les actions sont excutes au moins une fois car lexpression logique
nest value que lorsquon atteint le JUSQUA.
JUSQUA. On dit alors que la
structure REPETER est une structure 1, N
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 25

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 3. La structure REPETER


EXEMPLE
Ecrire lalgorithme qui lit un certain nombre dentiers positifs et qui
calcule leur somme
somme.. La lecture des nombres sarrte lorsquon entre 0.
ANALYSE
Soit un Nombre entier N.
Si N > 0 Alors on le cumule dans SOM initialis 0
on rpte ces 2 actions jusqu N = 0

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 26

13
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LE CORPS DE LALGORITHME
LES STRUCTURES DE CONTRLE

3. La rptitive 3. La structure REPETER


ALGORITHME SomRpeter
VAR
N , SOM : ENTIER
DEBUT
SOM  0
REPETER
LIRE (N)
SI N > 0 ALORS
SOM  SOM + N
JUSQU N = 0
ECRIRE ( La somme des nombres saisis est : , SOM)
16/11/2008
FIN Cours Algo-Pascal Nadji MEDJAOUI 27

PRESENTATION DU FORMALISME ADOPTE


LES
LAFFECTATION
FORMAT :

Variable  expression
FONCTIONNEMENT :

Lexpression est value. Le rsultat est affect la variable

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 28

14
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LES
LES EXPRESSIONS
Dfinition :
Une expression est un ensemble cohrent ventuellement
parenthss form doprandes et doprateurs qui sont valus pour
donner une valeur.
Les oprandes peuvent tre :
Variables : Moy
Constantes : Pi , 5 , 3.5 etc
fonctions : SQR () SQRT () etcetc
(APPEL)
Les oprateurs peuvent tre :
Oprateurs arithmtiques : + - / * MOD DIV
Oprateurs de relation : > >= < <= = <>
Oprateurs logiques : ET OU NON
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 29

PRESENTATION DU FORMALISME ADOPTE


LES
LES EXPRESSIONS
Remarque :
Une expression peut se rsumer un seul oprande
exemple : I , 5 , TVA etc
etc

Exemples:
45 + I * J / 3
N DIV 5 MOD J
A=5 ET N MOD J <> 0

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 30

15
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LES
LES EXPRESSIONS
EXEMPLES :

Expressions mathmatiques Expressions algorithmiques


B - 4ac B*B4*a*c

(-b SQRT(b*b - 4*a*c))/(2*a)

i <= n/2 ET n MOD i <> 0 ( i <= n DIV 2 ) ET (n MOD i <> 0)

Une opration met en jeu deux oprandes et un oprateur

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 31

Les priorits

Niveau 1 : NON
Niveau 2 : * / DIV MOD ET
Niveau 3 : + - OU
Niveau 4 : Les oprateurs de
relation
Niveau 5 : DANS
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 32

16
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LES EXPRESSIONS
EXEMPLES : Evaluation des expressions
b * b 4 * a * c (-b SQRT
SQRT((b*b - 4*a*c
4*a*c)))/(2*a
2*a))
1 2 2 1 4
3 3
4 5

( i <= n DIV 2 ) ET (n MOD i <> 0)


1 3
2 4

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 33

PRESENTATION DU FORMALISME ADOPTE


LES
LA LECTURE
FORMAT :
LIRE ( Var1 , Var2 , , Varn)
Fonctionnement :
Les valeurs lues au clavier sont affectes respectivement
aux variables avec prise en compte de la compatibilit
des types
Exemples:
LIRE (N)
LIRE ( a,b,c
a,b,c))

16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 34

17
cours d'algorithmique pascal 16/11/2008

PRESENTATION DU FORMALISME ADOPTE


LES
LECRITURE
FORMAT :
ECRIRE ( Expression1, Expression2 , , Expressionn)
Fonctionnement :
les expressions sont values et les rsultats sont crits ou
affichs)
Exemples:
ECRIRE ( Le discriminant est : , b * b 4 * a * c)
ECRIRE (N DIV 5 MOD J)
ECRIRE ( X1 = , (-b SQRT(b*b - 4*a*c))/(2*a))
16/11/2008 Cours Algo-Pascal Nadji MEDJAOUI 35

18

You might also like