Vous êtes sur la page 1sur 56

Cours ALGORITHMIQUE Elies JEBRI

1

Chapitre I. INTRODUCTION .................................................................................................... 1
I.1. Intrt de lalgorithmique ................................................................................................ 2
I.2. Dfinitions ........................................................................................................................ 2
Quest ce que lAlgorithmique ? ........................................................................................ 2
I.3. Les tapes de rsolution dun problme ........................................................................... 2
I.4. Structure dun algorithme ................................................................................................ 3
Rappel des notions de : ....................................................................................................... 3
Exemple 1 ........................................................................................................................... 3
Chapitre II. LES ACTIONS ALGORITHMIQUES SIMPLES ................................................. 5
II.1. 0. Concepts de base ........................................................................................................ 5
II.2. 1. Laffichage : ECRIRE ................................................................................................ 5
Exemples ............................................................................................................................ 5
II.3. 2. La saisie des donnes : LIRE ...................................................................................... 5
II.4. 3. Les expressions arithmtiques .................................................................................... 6
II.5. 4. Laffectation ............................................................................................................... 6
Chapitre III. Les structures Conditionnelles ............................................................................ 11
III.1. Introduction ................................................................................................................. 11
III.2. Notion de PREDICAT ................................................................................................ 11
III.3. Evaluation d'une expression logique ........................................................................... 11
Notons que ........................................................................................................................ 11
Notation et Ordre de priorit des oprateurs logiques ...................................................... 11
Tableaux d'valuations ..................................................................................................... 11
III.4. La structure conditionnelle SI ..................................................................................... 12
Exemple 1 ......................................................................................................................... 13
Exemples .......................................................................................................................... 14
III.5. La structure conditionnelle SELON ............................................................................ 14
Exemple ............................................................................................................................ 14
Chapitre IV. LES STRUCTURES REPETITIVES ................................................................. 17
IV.1. Introduction ................................................................................................................. 17
IV.2. La boucle POUR ......................................................................................................... 17
Syntaxe ............................................................................................................................. 17
IV.3. La boucle Rpter Jusqu' ...................................................................................... 19
IV.4. La boucle TANT QUE ........................................................................................... 20
Chapitre V. Traitement des Tableaux .................................................................................... 24
V.2. 1. Les vecteurs .............................................................................................................. 24
V.3. Rappel de Dclaration dun vecteur ............................................................................. 25
V.4. Chargement dun Vecteur ............................................................................................ 25
V.5. Solution de lexemple avec la notion de tableau ................. Erreur ! Signet non dfini.
V.6. 2. Les matrices .............................................................................................................. 27
Chapitre VI. TD ALGORITHMIQUE 1 .................................................................................. 28
Exercice 12 ....................................................................................................................... 28
Chapitre VII. LES ALGORITHMES DE TRI ......................................................................... 29
1. Tri par slection ............................................................................................................ 29
Principe ............................................................................................................................. 29
Exemple ............................................................................................................................ 29
2. Algorithme de tri par slection et permutation ............................................................. 30
VII.2. 3. Tri par la mthode des bulles ................................................................................. 31

Cours ALGORITHMIQUE Elies JEBRI
2
C CH HA AP PI IT TR RE E I I. . I IN NT TR RO OD DU UC CT TI IO ON N

Objectif : Connatre le but du cours dalgorithmique

lments de contenu :

Quest ce quune application informatique ?
Comment arriver dun problme rel un programme pouvant tre excut par ordinateur
Liens entre ALGORITHMIQUE et STRUCTURES DE DONNEES
I.1.Intrt de lalgorithmique
Informatiser une application, facturation de la consommation deau, par exemple, cest faire
raliser par ordinateur, une tche qui tait ralise par lHomme.
Pour faire excuter une tche par ordinateur, il faut tout dabord, dtailler suffisamment les
tapes de rsolution du problme, pour quelle soit excutable par lhomme. Ensuite,
transfrer la rsolution en une suite dtapes si lmentaire et simple excuter, pouvant tre
code en un programme dans un langage comprhensible par ordinateur.
Toute suite dtapes si lmentaire et simple excuter sappelle un ALGORITHME.

Un programme cest un algorithme cod dans un langage comprhensible par ordinateur
laide dun compilateur (traducteur).

I.2.Dfinitions
Lalgorithme est le rsultat dune dmarche logique de rsolution dun problme pour la
mise en uvre pratique sur ordinateur et afin dobtenir des rsultats concrets il faut passer
par lintermdiaire dun langage de propagation.

Un algorithme dcrit une succession doprations qui, si elles sont fidlement excutes,
produiront le rsultat dsir.

Un algorithme est une suite dactions que devra effectuer un automate pour arriver en un
temps fini, un rsultat dtermin partir dune situation donne. La suite doprations sera
compose dactions lmentaires appeles instructions.

1-a) Quest ce que lAlgorithmique ?
Cest la logique dcrire des algorithmes. Pour pouvoir crire des algorithmes, il faut
connatre la rsolution manuelle du problme, connatre les capacits de lordinateur en terme
dactions lmentaires quil peut assurer et la logique dexcution des instructions.
I.3.Les tapes de rsolution dun problme
1. Comprendre lnonc du problme
2. Dcomposer le problme en sous-problmes plus simple rsoudre
3. Associer chaque sous problme, une spcification :
Les donnes ncessaires
Les donnes rsultantes
La dmarche suivre pour arriver au rsultat en partant dun ensemble de donnes.
4. Elaboration d'un algorithme.
Cours ALGORITHMIQUE Elies JEBRI
3
Illustration du fonctionnement d'un ordinateur















On peut dire que la partie EXECUTANT est le problme de lalgorithmique, et la partie
MEMOIRE (stockage de donne) concerne la matire " Structures de donnes ".

I.4.Structure dun algorithme
ALGORITHME nom_de_lalgorithme
CONST {Dfinition des constantes}
TYPE {Dfinition de types}
VAR {Dclaration de variables}
DEBUT
{Suite dinstructions}
FIN

1-b) Rappel des notions de :
- Constante,
- Type,
- Variable.
1-c)
1-d) Exemple 1
ALGORITHME afficher
DEBUT
Ecrire("La valeur de 3*5 est ", 3*5)
FIN

Cet algorithme permet d'afficher sur l'cran la phrase suivante :
La valeur de 3*5 est 15
Exemple 2
On veut crire lalgorithme qui permet de saisir 3 notes dun tudiant dans trois matires,
tant donns les coefficients respectifs 2, 3 et 1.

Rsolution
A partir de lnonc du problme, nous recherchons la solution par une dmarche en 2 phases.
Dispositifs dentre :
- clavier
- souris,
-
MEMOIRE EXECUTANT
.....


Excution


Rsultat
Suite de cases
mmoire
Donnes
en entre
Donnes
en sortie
Ecran
ou
Imprimante
Cours ALGORITHMIQUE Elies JEBRI
4

On doit comprendre comment le rsoudre manuellement,
Dfinir ce quon a besoin comme donnes, quelles est la dmarche suivre (formules de
calcul) pour arriver aux rsultats.

Pour notre problme, nous connaissons les coefficients et la formule de calcul (N
i
*C
i
/ C
i
),
nous avons besoins des notes de chaque matire dans lordre, et enfin nous pouvons
communiquer le rsultat lutilisateur.

ALGORITHME MOYENNE
CONST C1=2
C2=3
C3=1
VAR
N1, N2, N3 : REEL
MOY : REEL
DEBUT
{Affichage message : Invitation de l'utilisateur introduire des donnes}
ECRIRE(" Donner trois valeurs relles ")
{Saisie des notes}
LIRE(N1, N2, N3)
{Calcul de la moyenne}
MOY (N1*C1+N2*C2+N3*C3) / (C1+C2+C3)
{Affichage du rsultat sur lcran}
ECRIRE(" La moyenne est = ", MOY)
FIN

Remarque : Le texte entre les accolades est purement explicatif, il sert rendre lalgorithme
plus lisible.
Cours ALGORITHMIQUE Elies JEBRI
5

C CH HA AP PI IT TR RE E I II I. . L LE ES S A AC CT TI IO ON NS S A AL LG GO OR RI IT TH HM MI IQ QU UE ES S S SI IM MP PL LE ES S

Objectif : Comprendre les actions algorithmiques simples et connatre leurs syntaxes

lments de contenu :

Concepts de base
La saisie de donnes
L'affichage
L'affectation
L'valuation d'une expression arithmtique

II.1.0. Concepts de base
Dans tout ce qui suit, pour prsenter les syntaxes, on suit les rgles suivantes :
- Ce qui est entre les crochets est optionnel.
- La suite des points de suspensions "" veut dire que ce qui prcde peut se rpter
plusieurs fois.
- Le symbole " | " veut dire : " ou bien ".
- Les mots en majuscule sont des mots rservs.
- Ce qui est entre accolades est un commentaire, pour la lisibilit des algorithmes.
II.2.1. Laffichage : ECRIRE
Cette action permet de communiquer un rsultat ou un message sur cran ou sur imprimante
pour l'utilisateur.

Syntaxe
ECRIRE(paramtre1 [[,paramtre2]])
Paramtre = variable | expression | constante
Constante = nombre | message

1-e) Exemples
ECRIRE(" La valeur de 3*2 est gale ", 3*2)
| |
message expression

ECRIRE(" La moyenne est = ", MOY)
|
Variable
II.3.2. La saisie des donnes : LIRE
L'ordre LIRE permet l'ordinateur dacqurir des donnes partir de lutilisateur, dans des
cases mmoire bien dfinies (qui sont les variables dclares).
Rappel
Les variables sont des cases mmoire, supposes contenir un type de donnes, nommes par
le nom de variable.
Cours ALGORITHMIQUE Elies JEBRI
6

Syntaxe
LIRE(variable1 [[, variable2] ])

Remarques :
1. La saisie se fait uniquement dans des variables. Ce sont les cases (cellules) qui
pourront accueillir les donnes correspondantes.
2. La donne introduire doit tre de mme type que la variable rceptrice.
II.4.3. Les expressions arithmtiques
Parmi les oprateurs, on distingue les fonctions et les oprateurs.
Les fonctions
- La fonction DIV permet de donner le rsultat de la division entire dun nombre par un
autre. 7 DIV 2 3
- La fonction MOD (se lit Modulo), permet de donner le reste de la division entire dun
entier par un autre. 7 MOD 2 1
- La fonction ** ou ^ permet dlever un nombre la puissance dun autre. 2**3 8

Les oprateurs
- Sont le "+", "-", "/", "*" et le "-" un aire.

Ordre de priorit
Les oprateurs suivants sont ordonns du plus prioritaire au moins prioritaire dans l'valuation
d'une expression arithmtique.
1- Les parenthses
2- "- " un aire
3- Les fonctions
4- Les oprateurs de multiplication " * " et de division " / "
5- Les oprateurs daddition " + " et de soustraction " - "

Remarque
Si lordre entre les oprateurs dans une expression est le mme, on value lexpression de
gauche droite.

Exemples
3**2+4 = 9+4=13
3**(2+4)=3**6 car les parenthses sont plus prioritaires
17 MOD 10 DIV 3=(17MOD10)DIV3=7DIV3=2
II.5.4. Laffectation
Cest laction de charger une valeur dans une variable. Cette valeur peut elle-mme tre une
variable, le rsultat dune expression arithmtique ou logique ou une constante.

Syntaxe
Variable1 variable2 | expression | constante

A B se lit " A reoit B "
Cours ALGORITHMIQUE Elies JEBRI
7
Le rsultat de cette action est de mettre le contenu de la variable B dans la variable A. Si B
tait une expression, elle aurait t value, ensuite sa valeur est transfre dans la variable
rceptrice ( notre gauche).
Remarque
Laffectation ne vide pas la variable mettrice ( notre droite) de sa valeur. Par contre, le
contenu de la variable rceptrice est cras et remplac par la nouvelle valeur.

Illustration de laffectation
Supposons quon ait deux rcipients A et B o A contient un liquide color en jaune et B
contient un liquide rouge.
Peut-on changer les contenus de A et de B (c.--d. mettre le liquide rouge dans A et le
liquide jaune dans B).
Rsultat
Cette opration nest possible que si on utilise un troisime rcipient quon appelle rcipient
auxiliaire.


Etat 0 Aux A = Jaune
B = Rouge
Aux = Vide




AuxB
A = Jaune
Etat 1 B = vide
Aux = Rouge



BA
A = Vide
Etat 2 B = Jaune
Aux = Rouge




AAux
A = Rouge
Etat Final B = Jaune
Aux = Vide


Avec des variables relles, cette opration dchange de contenu se fait entre cases mmoires
qui reprsentent les conteneurs (rcipients).
Problme : Echanger les valeurs de 2 variables numriques.
Principe : pour viter de perdre lune des 2 valeurs initiales (A et B), on utilise une 3
ime

variable pour prserver la valeur initiale de la premire variable modifie.
A
B
Aux
Aux
Cours ALGORITHMIQUE Elies JEBRI
8



Remarques Importantes
Toute variable utilise dans un algorithme doit tre dclare au dbut de
lalgorithme, une fois et une seule.
Laffectation de valeur une variable peut tre effectue autant de fois que lon
veut au cours dun algorithme. La valeur de la variable sera alors modifie
chaque affectation.
Lorsquune variable apparat en partie droite dune action daffectation, cest que
lon suppose quelle contient obligatoirement une valeur. Cette valeur devra lui
avoir t affecte auparavant (par initialisation ou saisie), sinon lon dira que la
valeur est indfinie, et le rsultat de laffectation ne sera pas dfini.
La variable rceptrice dune affectation doit tre de mme type que de la valeur
affecter ou de type compatible. Le type est dit compatible sil est inclus dans le
type de la variable rceptrice. Exemple : REEL ENTIER est possible mais pas
linverse.

Exemple
Ecrire lalgorithme qui permet de calculer le discriminant A (delta) dune quation du second
degr.



Cours ALGORITHMIQUE Elies JEBRI
9

TD ALGORITHMIQUE I
Les actions simples

Exercice 1
Soit lalgorithme suivant :

ALGORITHME EQUATION2D
VAR a,b,c : REEL
delta : REEL
DEBUT
Ecrire("Donnez la valeur du premier paramtre")
Lire(a)
Ecrire("Donnez la valeur du second paramtre")
Lire(b)
Ecrire("Donnez la valeur du troisime paramtre")
Lire(c)
delta b
2
b * b - 4a * c
Ecrire(" le discriminant est = A ")
Fin

1 - Dcrire cet algorithme en dtail (ligne par ligne), en donnant les ventuelles erreurs.
2 - Quelles sont les valeurs de delta dans les cas suivants :
a=2 b=-3 c=1
a=1 b=2 c=2

Exercice 2
Ecrire l'algorithme permettant de saisir l'abscisse d'un point A et de calculer son ordonn
f(x)= 2 x
3
- 3x
2
+ 4
Evaluer le rsultat en expliquant les ordres de priorit pour x=-2.

Exercice 3
Ecrire l'algorithme qui permet de permuter les valeurs de A et B sans utiliser de variable
auxiliaire.

Exercice 4
Faire l'algorithme qui lit les coordonnes de deux vecteurs u et v, et de calculer leur norme et
leur produit scalaire.

Exercice 5
Ecrire lalgorithme qui permet de saisir les paramtres dune quation du second degr et de
calculer son discriminant A.

Exercice 6
Ecrire lalgorithme permettant de calculer et dafficher le salaire net dun employ. Sachant
que :
- Le salaire net = Salaire brut Valeur de limpt Valeur de CNSS
- Salaire brut = (Salaire de base + Prime de technicit + Prime de transport + Prime des
enfants) * Taux de travail
- Taux de travail = Nombre de jours travaills / 26
Cours ALGORITHMIQUE Elies JEBRI
10
- Prime des enfants = Prime dun enfant * Nombre denfants
- Valeur de lImpt = Taux de lImpt * Salaire Brut
- Valeur de CNSS = Taux de CNSS * Salaire Brut
- Taux CNSS = 26,5%
- Taux Impt = 2%

Indication :
Dcrire lenvironnement de travail : toutes les variables en entre, en sortie et de calcul.

Cours ALGORITHMIQUE Elies JEBRI
11

C CH HA AP PI IT TR RE E I II II I. . L LE ES S S ST TR RU UC CT TU UR RE ES S C CO ON ND DI IT TI IO ON NN NE EL LL LE ES S
III.1. Introduction
Souvent les problmes ncessitent l'tude de plusieurs situations qui ne peuvent pas tre
traites par les squences d'actions simples. Puisqu'on a plusieurs situations, et qu'avant
l'excution, on ne sait pas quel cas de figure on aura excuter, dans lalgorithme on doit
prvoir tous les cas possibles.
Ce sont les structures conditionnelles qui le permettent, en se basant sur ce quon appelle
prdicat ou condition.

III.2. Notion de PREDICAT
Un prdicat est un nonc ou proposition qui peut tre vrai ou faux selon ce quon est entrain
de parler.
En mathmatiques, cest une expression contenant une ou plusieurs variables et qui est
susceptible de devenir une proposition vraie ou fausse selon les valeurs attribues ces
variables.
Exemple :
(10 < 15) est un prdicat vrai
(10 < 3) est un prdicat faux
III.3. Evaluation d'une expression logique
Une condition est une expression de type logique. Ils lui correspondent deux valeurs possibles
VRAI et FAUX qu'on note par V ou F.
Considrons deux variables logiques A et B. Voyons quels sont les oprateurs logiques et
leurs ordres de priorits.

1-f) Notons que
- (A = faux) non A
- (A = vrai) A

Les oprateurs logiques sont :
- La ngation : "non"
- L'intersection : "et"
- L'union : "ou"

1-g) Notation et Ordre de priorit des oprateurs logiques
1. non :
2. et : .
3. ou : v
1-h)
1-i) Tableaux d'valuations

La ngation d'une condition
A Non A
Vrai Faux
Faux Vrai
Cours ALGORITHMIQUE Elies JEBRI
12

L'intersection de deux conditions
A et
B
Vrai Faux
Vrai Vrai Faux
Faux Faux Faux
L'union de deux conditions
A ou
B
Vrai Faux
Vrai Vrai Vrai
Faux Vrai Faux
Thorme de DE MORGAN
- (A . B) A v B
- (A v B) A . B

III.4. La structure conditionnelle SI
Syntaxe
SI <Condition> ALORS
<suite daction(s)-1>
[SINON
<suite dactions(s)-2>]
FINSI

Format Organigramme













- La <condition> est un prdicat, qui peut tre vrai ou faux, selon les valeurs des paramtres
la constituant.
- Si la condition est vrifie (sa valeur est vrai), cest la <suite dactions-1> qui sera
excute. Ensuite, le systme passe lexcution juste aprs le FINSI.
- Dans le cas contraire, lorsque la condition nest pas vrifie (valeur de la condition est
faux), cest la <suite dactions-2> qui sexcute, en cas o celle ci existe (facultative). Si
elle nexiste pas, le systme passe directement linstruction qui suit le FINSI.
- Les suites d'actions 1 et 2, peuvent tre des actions simples ou mme des structures
conditionnelles.

condition
TRAITEMENT-2
vrai faux
TRAITEMENT-1
FINSI
Cours ALGORITHMIQUE Elies JEBRI
13
1-j) Exemple 1
Lire un nombre rel, et dire sil est positif ou strictement ngatif.

ALGORITHME POS-NEG
VAR A : rel
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
SI (A < 0) ALORS
ECRIRE(A, " est ngatif ")
SINON
ECRIRE(A, " est positif ")
FINSI
FIN

Autrement :
ALGORITHME POS-NEG-1
VAR A : rel
B : logique
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
B (A < 0)
SI (B) ALORS
ECRIRE(A, " est ngatif ")
SINON
ECRIRE(A, " est positif ")
FINSI
FIN

Dans cet exemple, on a dtermin uniquement les cas de positivit ou de ngativit, et on n'a
pas dtermin le cas o A est nulle.

ALGORITHME POS-NEG-NUL
VAR A : rel
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
SI (A < 0) ALORS
ECRIRE(A, " est ngatif ")
SINON {A >= 0}
SI (A > 0)ALORS
ECRIRE(A, " est positif ")
SINON {A = 0}
ECRIRE (A, "est nulle")
FINSI
FINSI
FIN

Cours ALGORITHMIQUE Elies JEBRI
14
1-k) Exemples
1) Ecrire l'algorithme qui permet de dterminer si un entier lu est pair ou impair.
2) Ecrire l'algorithme qui permet de saisir deux nombres A et B et de dterminer si la valeur
de A est suprieure, infrieure ou gale B.

III.5. La structure conditionnelle SELON
Cette structure conditionnelle est appele aussi choix multiple ou slective car elle
slectionne entre plusieurs choix la fois, et non entre deux choix alternatifs (le cas de la
structure SI).
Syntaxe
SELON (slecteur) FAIRE
Cas <liste de valeurs-1> : <suite d'action (s)-1>
[Cas <liste de valeur-2> : <suite d'action (s)-2>
. ]
[SINON : <suite d'action (s)-n> ]
FINSELON

Le slecteur peut tre une variable de type scalaire ou une expression arithmtique ou
logique.
La structure SELON value le "slecteur", passe comparer celui ci respectivement avec les
valeurs dans les listes. En cas d'galit avec une valeur, les actions correspondantes, qui sont
devant cette valeur seront excutes.
Devant "Cas", il peut y avoir une seule valeur, une suite de valeurs spares par des virgules
et/ou un intervalle de valeurs.
Aprs avoir traiter la suite d'actions correspondante, l'excution se poursuit aprs le
FINSELON.

Remarque
1. Le slecteur doit avoir le mme type que les valeurs devant les cas.
2. Le type de ces valeurs ne doit tre, ni rel ni chane de caractres.
1-l) Exemple
Ecrire l'algorithme qui permet de saisir un numro de couleur de l'arc-en-ciel et d'afficher la
couleur correspondante : 1: rouge, 2 : orang, 3 : jaune, 4 : vert, 5 : bleu, 6 : indigo et 7 :
violet.

Cours ALGORITHMIQUE Elies JEBRI
15

TD ALGORITHMIQUE I
Les Structures Conditionnelles
Exercice 1
Evaluer les expressions logiques suivantes, avec (a, b, c, d) = (2, 3,5, 10) et (X, Y) = (V, F).

1) (a < b) . (a < c) 2) ((a < b) . (a < c)) 3) (a < b) . (a < c)
4) (a < c) . (c = d/2) 5) (d / a = c) = Y 6) (d / c = b) = Y
7) (d / c = b) = X 8) (a < b) . (d < c) 9) (a < b) . (d < c) = X

Exercice 2
Rcrire l'exercice 6 de la srie N1 en supposant que le taux de l'impt n'est pas fixe mais il
varie selon la valeur du salaire de base. En effet :
- Taux de l'impt = 0 si le salaire de base < 150
- Taux de l'impt = 2% si le salaire de base e[150,250[
- Taux de l'impt = 5% si le salaire de base e[250,500[
- Taux de l'impt = 12% si le salaire de base >= 500.
En plus, la prime des enfants est dfinit comme suit :
- 7DT pour le premier enfant,
- 5DT pour le deuxime enfant,
- 4DT pour le troisime enfant.
- Pas de prime pour le reste.

Exercice 3
Ecrire l'algorithme qui permet de saisir un nombre puis dterminer sil appartient un
intervalle donn, sachant que les extrmits de lintervalle sont fixes par lutilisateur.

Exercice 4
Ecrire l'algorithme qui permet de calculer le montant des heures supplmentaires dun
employ, sachant le prix unitaire dune heure selon le barme suivant :
- Les 39 premires heures sans supplment,
- De la 40
ime
la 44
ime
heure sont majores de 50%,
- De la 45
ime
la 49
ime
heure sont majores de 75%,
- De la 50
ime
heure ou plus, sont majores de 100%.

Exercice 5
Ecrire l'algorithme qui permet de saisir la moyenne gnrale dun tudiant et de dterminer
son rsultat et sa mention. (les conditions de rachat sont appliques partir de 9,75.

Exercice 6
Ecrire l'algorithme qui permet de saisir les trois paramtres d'une quation du second degr, et
de discuter les solutions selon les valeurs de a, b et c, lorsqu'elles sont nulles ou pas.

Exercice 7
Ecrire l'algorithme qui permet de saisir le jour, le mois et l'anne d'une date (Mois : numro
du mois), et de dterminer si elle est correcte ou non, et o est l'erreur.

Exercice 8
Cours ALGORITHMIQUE Elies JEBRI
16
Ecrire l'algorithme qui permet de saisir deux nombres, et un oprateur et d'valuer
l'expression arithmtique correspondante.

Exercice 9
Ecrire l'algorithme CONTRAT qui permet d'aider une compagnie d'assurance prendre une
dcision concernant les demandes d'affiliation en se basant sur les critres suivants :

CRITERE
DECISION
AGE Bonne sant Accident
Contrat A <=30 OUI NON
Contrat B >30 OUI OUI
Contrat refus - NON OUI
Expertise demande - OUI OUI

Exercice 10
Ecrire un algorithme qui permet de saisir un numro de mois et un jour (le contrle n'est pas
demand) et d'afficher la priode correspondante selon le tableau suivant :
Priode DU AU
Vacances d't 1/7 15/9
Premier trimestre 16/9 19/12
Vacances d'hiver 20/12 3/1
Deuxime trimestre 4/1 19/3
Vacances de printemps 20/3 3 / 4
Troisime trimestre 4/4 30/6

Exercice 11
Ecrire l'algorithme permettant de lire la valeur de la variable DEVINETTE et dafficher parmi
les messages suivants celui qui correspond la valeur trouve :
ROUGE si la couleur vaut R ou r
VERT si la couleur vaut V ou v
BLEU si la couleur vaut B ou b
NOIR pour tout autre caractre.

Exercice 12
Ecrire l'algorithme permettant de lire la valeur de la temprature de leau et dafficher son
tat :
GLACE Si la temprature infrieure 0,
EAU Si la temprature est strictement suprieure 0 et infrieure 100,
VAPEUR Si la temprature suprieure 100.

Exercice 13
Ecrire l'algorithme qui lit un entier positif infrieur 999 (compos de trois chiffres au
maximum) et d'afficher le nombre de centaines, de dizaines et d'units.



Cours ALGORITHMIQUE Elies JEBRI
17
C CH HA AP PI IT TR RE E I IV V. . L LE ES S S ST TR RU UC CT TU UR RE ES S R RE EP PE ET TI IT TI IV VE ES S
IV.1. Introduction
Dans les problmes quotidiens, on ne traite pas uniquement des squences d'actions, sous ou
sans conditions, mais il peut tre frquent d'tre oblig d'excuter un traitement (squence
d'actions), plusieurs fois. En effet, pour saisir les N notes d'un tudiant et calculer sa
moyenne, on est amen saisir N variables, puis faire la somme et ensuite diviser la somme
par N. Cette solution ncessite la rservation de l'espace par la dclaration des variables, et
une srie de squences d'criture/lecture. Ce problme est rsolu l'aide des structures
rptitives. Celles ci permettent de donner un ordre de rptition d'une action ou d'une
squence d'actions une ou plusieurs fois.
IV.2. La boucle POUR
Cette structure exprime la rptition d'un traitement un nombre de fois.
1-m)
1-n) Syntaxe

POUR Vc DE Vi A Vf [PAS Vp] FAIRE
<Traitement>
FINFAIRE

O Vc est une variable entire, qui compte le nombre de rptition du <Traitement>,
Vi la valeur initiale laquelle Vc est initialis,
Vf la valeur finale laquelle se termine Vc,
Vp la valeur du pas, c'est la valeur qu'on rajoute Vc chaque fin de traitement.

Remarque
1. La boucle POUR est utilise lorsqu'on connat le nombre de rptition du <Traitement>
d'avance.
2. La valeur du pas peut tre positive ou ngative et par consquent, il faut; au dpart de la
boucle; que Vi <= Vf ou Vi >= Vf selon la positivit ou la ngativit de cette valeur.
3. La valeur du pas est gale 1 par dfaut.

Les tapes d'excution de la boucle POUR
1) Initialisation de Vc par la valeur de Vi (comme si on avait VcVi)
2) Test si Vi dpasse () Vf (du ct suprieur ou infrieur, selon la positivit ou la
ngativit du pas).
Si oui, alors la boucle s'arrte et l'excution se poursuit aprs le FINFAIRE
Sinon,
- Excution du <Traitement>,
- Incrmentation ou dcrmentation de Vc par la valeur du pas,
- Retour l'tape 2.

Application
Ecrire l'algorithme qui permet de saisir les moyennes des N tudiants de la classe
Informatique et de calculer la moyenne gnrale de la classe.


Cours ALGORITHMIQUE Elies JEBRI
18
Rsolution
Sans les boucles, on est oblig de dclarer N variables, et d'crire N actions LIRE.
LIRE(note)
S S + MOY
LIRE(MOY)
S S + MOY

..
LIRE(MOY)
S S + MOY
La boucle POUR donne l'ordre la machine d'itrer les deux actions N fois.
Donc le compteur varie de 1 jusqu' N avec un pas de 1.

ALGORITHME MOYENNE
VAR i, N : entier
MOY, MC : rel
DEBUT
ECRIRE("Donner le nombre d'tudiants")
LIRE(N)
SI (N > 0) ALORS
S 0 {Initialisation de S}
POUR i DE 1 A N FAIRE {Le pas gale 1 par dfaut}
ECRIRE("Donner la moyenne de l'tudiant n", i)
LIRE(MOY)
S S + MOY {on rajoute la moyenne du i
ime
tudiant la somme}
FIN FAIRE
MC S / N
ECRIRE("La moyenne de la classe est : ", MC)
SINON
ECRIRE("Erreur dans le nombre d'tudiants")
FINSI
FIN

Remarque Juste Avant le FIN FAIRE, le changement de la valeur de i se fait
automatiquement.

Application 1
Ecrire l'algorithme qui permet d'afficher tous les nombres pairs qui existent entre 1 et 10.

1
ire
solution
POUR i de 2 10 pas 2
Faire
ECRIRE(i)
FINFAIRE

2
ime
solution
POUR i de 2 10 Faire
SI (i mod 2 = 0) ALORS
ECRIRE(i)
FINSI
FINFAIRE
3
ime
solution
POUR i de 1 5 Faire
ECRIRE(2*i)
FINFAIRE

Application 2
Ecrire l'algorithme qui permet d'afficher tous les nombres impairs entre 50 et 100 dans l'ordre
dcroissant.

N
fois
LIRE(MOY)
SS+ MOY
Cours ALGORITHMIQUE Elies JEBRI
19
POUR i de 99 50 PAS (-2) FAIRE
ECRIRE(i)
FIN FAIRE

La valeur finale peut tre 50 ou 51 car le test de sortie est i < Vf (49 < 50 ou 51)
IV.3. La boucle Rpter Jusqu'
Syntaxe
Rpter
<Traitement>
Jusqu' (condition d'arrt)

Cet ordre d'itration permet de rpter le <Traitement> une ou plusieurs fois et de s'arrter sur
une condition. En effet, lorsque la condition est vrifie, la boucle s'arrte, si non elle r-
excute le <Traitement>.

Remarques
1. Dans cette boucle, le traitement est excut au moins une fois avant l'valuation de la
condition d'arrt.
2. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.

Les tapes d'excution de la boucle Rpter
1) Excution du <Traitement>
2) Test de la valeur de la <condition d'arrt>
Si elle est vrifie Alors la boucle s'arrte
Sinon Retour l'tape 1.

Application
Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible
par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2).

ALGORITHME PAIR-NBDIV2
VAR N, N2 : entier
DEBUT
{Saisie d'un entier qui doit tre pair}
Rpter
ECRIRE("Donner un entier pair")
LIRE(N)
Jusqu' (N MOD 2 = 0) {condition pour que N soit pair}
{Dtermination du nombre de division par 2}
N2 0
NB N
Rpter
NB NB div 2
N2 N2 +1
Jusqu' (NB MOD 2 <> 0) {On s'arrte lorsque NB n'est plus divisible par 2}

ECRIRE(N, "est divisible par 2", N2,"fois")
FIN
Cours ALGORITHMIQUE Elies JEBRI
20

IV.4. La boucle TANT QUE
Syntaxe
TANT QUE (condition d'excution)
FAIRE
<Traitement>
FIN FAIRE

Cet ordre d'itration permet de rpter le <Traitement> zro ou plusieurs fois et de s'arrter
lorsque la condition d'excution n'est plus vrifie. En effet, lorsque la condition d'excution
est vrifie, le <Traitement> est excut, si non elle s'arrte.

Les tapes d'excution de la boucle Rpter
1) Test de la valeur de la <condition d'excution>
2) Si elle est vrifie Alors
Excution du <Traitement>
Retour l'tape 1.
Sinon Arrt de la boucle.

Remarques
1. Dans cette boucle, le traitement peut ne pas tre excut aucune fois, c'est lorsque la
condition d'excution est faux ds le dpart.
2. Les paramtres de la condition doivent tre initialiss par lecture ou par affectation avant
la boucle.
3. Il doit y avoir une action dans le <Traitement> qui modifie la valeur de la condition.

Application
Ecrire un algorithme qui saisit un nombre pair et qui dtermine combien de fois il est divisible
par 2. Exemple 8 est divisible 3 fois par 2 (2*2*2).

ALGORITHME PAIR-NBDIV2
VAR N, N2 : entier
DEBUT
{Saisie d'un entier qui doit tre pair}
Rpter
ECRIRE("Donner un entier pair")
LIRE(N)
Jusqu' (N MOD 2 = 0) {condition pour que N soit pair}
{Dtermination du nombre de division par 2}
N2 0
NB N
TANT QUE (NB MOD 2 = 0)
FAIRE
NB NB div 2
N2 N2 +1
FIN FAIRE {On s'arrte lorsque NB n'est plus divisible par 2}
ECRIRE(N, "est divisible par 2", N2,"fois")
FIN
Cours ALGORITHMIQUE Elies JEBRI
21

+ La condition d'arrt avec la boucle Rpter est l'inverse de la condition d'excution de la
boucle TANTQUE.

Remarque
Le Traitement d'une boucle peut contenir lui aussi une autre boucle. On l'appelle dans ce cas
des boucles imbriques.

Cours ALGORITHMIQUE Elies JEBRI
22

TD ALGORITHMIQUE I
Les structures rptitives
Exercice 1
Ecrire l'algorithme qui permet d'afficher les N premiers entiers impairs dans l'ordre
dcroissant.

Exercice 2
Ecrire l'algorithme qui permet d'afficher les diviseurs d'un entiers N.

Exercice 3
Ecrire l'algorithme qui dtermine si une entier N est parfait ou non. Un entier est dit parfait s'il
est gal la somme de ses diviseurs. Exemple 6 = 3 + 2 +1

Exercice 4
Ecrire l'algorithme qui permet de calculer le produit de deux entiers en utilisant des additions
successives.

Exercice 5
Ecrire l'algorithme qui permet de calculer la division de deux entiers en utilisant des
soustractions successives


Exercice 6
Ecrire l'algorithme qui permet de saisir un entier N et d'afficher s'il est premier ou non. Un
nombre est dit premier s'il est divisible uniquement par 1 et par lui-mme.

Exercice 7
Ecrire l'algorithme qui dtermine le 20
ime
terme d'une suite dfinie par :
S
0
= 2, S
1
= 3 et S
n
= S
n-2
+ (-1)
n
* S
n-1


Exercice 8
Ecrire l'algorithme qui dtermine le N
ime
terme d'une suite dfinie par :
S
0
= 2, S
1
= 3, S
2
= -2 et S
n
= S
n-3
+ (-1)
n
* S
n-1


Exercice 9
On dmontre en mathmatique que le cosinus d'un angle exprim en radian est donn par la
somme infinie suivante :
COS(x) = 1 X
2
/ 2! + X
4
/4! X
6
/6! +
On dcide d'arrter la somme un certain rang n (n>3) donn.
Ecrire l'algorithme qui permet d'valuer le cosinus d'une valeur x donne.

Exercice 10
Ecrire l'algorithme qui permet de saisir autant de nombres que l'utilisateur le veuille, et de
dterminer le nombre de rels strictement positifs et celui des ngatifs. On s'arrte lorsque la
valeur est 999.

Exercice 11
Ecrire l'algorithme qui permet de saisir autant de nombres que l'utilisateur le veuille, pourvu
qu'ils soient dans l'ordre croissant. On s'arrte lorsque la valeur est 999.
Cours ALGORITHMIQUE Elies JEBRI
23

Exercice 12
Ecrire l'algorithme qui permet de saisir un entier positif en dcimal et de le transformer en
binaire.
Exemple (7)
10
= (111)
2


Exercice 13
Ecrire un algorithme qui permet de saisir un entier et une base infrieure ou gale 10 et de
vrifier si ce nombre appartient la base ou non.

Exercice 14
Ecrire un algorithme qui permet de saisir deux entiers et de vrifier si les chiffres du premier
appartiennent ceux du second nombre ou non.

Exercice 15
Ecrire un algorithme qui permet de saisir deux entiers positifs et de dterminer leur plus grand
commun diviseur (PGCD).
Le PGCD(A,B) = PGCD(A-B, B) si A est le plus grand et
PGCD(A,B) = PGCD(A, B-A) si B est le plus grand. Si A=B le PGCD(A,B) est A ou B.

Exercice 16
Ecrire un algorithme qui permet de calculer la factorielle d'un entier N donn.

Exercice 17
Ecrire un algorithme qui permet de saisir des entiers alternatifs (si l'un est positif sont suivant
doit tre ngatif et vice versa).

Exercice 18
Ecrire l'algorithme qui permet de saisir deux entiers et de dterminer leur plus petit commun
multiple (PPCM).
Cours ALGORITHMIQUE Elies JEBRI
24

C CH HA AP PI IT TR RE E V V. . T TR RA AI IT TE EM ME EN NT T D DE ES S T TA AB BL LE EA AU UX X
Rappel
Pourquoi les tableaux ?

1) Calculer la moyenne de 30 lves
2) Effectuer leur classement
+ Rponse
pour i de 1 30
faire
Ecrire (" Donner la moyenne de l'tudiant N",i)
Lire (moyenne)
Fin faire

+ Conclusion : On ne peut pas effectuer le classement
Pourquoi ? Parce qu'on ne garde pas les moyennes prcdentes et la variable moyenne
contient uniquement la dernire valeur.

Utilisation des tableaux
Intrt Gain de temps, rtrcissement du volume de l'algorithme et possibilit de rutilisation
de toutes les valeurs ultrieurement dans l'algorithme.
Il est plus convenable, alors, de dfinir un espace mmoire quon appelle MOY qui sera
divis en 30 parties quitables, indices de 1 30.

MOY
Contenu 15 12 5 10 4 50 .
Indice 1 2 3 4 5 6 7 8 9 10 11 12 13

On dfinit un tableau de 30 cases une seule dimension quon appelle VECTEUR.
ALGORITHME MOYENNE
CONST Bi=1
Bs=30
VAR T : Tableau [bi..bs] de rel
i : entier


V.1.1. Les vecteurs
Un vecteur est une partie de mmoire contenant n zones variables rfrences par le mme
nom de variable pour accder un lment particulier de ce vecteur.
On indice le nom de variable. Lindice peut tre une constante, une variable ou une expression
arithmtique.
MOY[i]
q R indice dun lment du vecteur
variable qui indique le nom du vecteur

MOY[i] : reprsente llment du vecteur MOY occupant le rang " i ".
Cours ALGORITHMIQUE Elies JEBRI
25
Lindice peut tre :
Une constante MOY[5]
Une variable MOY[i]
Une expression MOY[i*2]


ATTENTION
Avant dutiliser un tableau, il faut dclarer sa taille pour que le systme rserve la place en
mmoire, ncessaire pour stocker tous les lments de ce tableau.
Les lments dun mme tableau doivent tre de mme type.
V.2.Rappel de Dclaration dun vecteur
Dans la partie CONST, on peut dfinir la taille du tableau. Ensuite, on peut dclarer le nombre
dlments saisir dans le tableau.
Remarque : Le nombre dlments saisir ne doit pas dpasser la taille du tableau pour ne
pas dborder sa capacit.
On appelle dimension dun vecteur le nombre dlments qui constituent ce vecteur.

V.3.Chargement dun Vecteur
Le chargement dun vecteur consiste saisir les donnes des lments du vecteur. (remplir
des cases successives du tableau). On doit utiliser une boucle qui permet de saisir chaque
entre dans la boucle la i
ime
case.

ALGORITHME Vecteur
CONST N = 30
VAR
MOY : Tableau[1..N] de rels
Dbut
{ chargement du tableau }
Pour i de 1 N
Faire
Ecrire (" donner la moyenne de ltudiant N " , i )
Lire ( MOY [i])
Fin Faire
{ fin chargement }

{Calcul de la somme des moyennes}
SMOY 0
Pour i de 1 N
Faire
SMOYSMOY+MOY[i]
Fin Faire

SMOY SMOY / 30
Ecrire (" la moyenne du groupe est ", SMOY )
{ calcul de la diffrence entre la moyenne de groupe et celle de ltudiant }
Pour i de 1 N
Faire
Cours ALGORITHMIQUE Elies JEBRI
26
Ecrire (" la diffrence de la moyenne du groupe et celle de ltudiant ",i , " est= ",
SMOY-MOY[i])
Fin Faire
Fin

On peut crire les deux premires boucle en une seule. Simplifier alors cet algorithme.

Remarque
La taille dun tableau est fixe et ne peut tre donc change dans un programme : il en rsulte
deux dfauts :
Si on limite trop la taille dun tableau on risque le dpassement de capacit.
La place mmoire rserve est insuffisante pour recevoir toutes les donnes.

Application
1) Charger un vecteur de 10 lments par les 10 premiers entiers naturels positifs.
2) Charger un vecteur de 10 lments par les 10 premiers multiples de 7.

1-o) Recherche dans un vecteur
Recherche squentielle
On peut chercher le nombre d'apparition d'un lment dans un vecteur, sa ou bien ses
positions. Pour cela, on doit parcourir tout le vecteur lment par lment et le comparer avec
la valeur de l'lment chercher.

Applications
1. Chercher la position de la premire occurrence d'un lment e dans un vecteur V
contenant N lments. (On suppose que le vecteur est dfinit)
2. Chercher le nombre d'apparition d'un lment e dans un vecteur V contenant N lments,
ainsi que les positions des occurrences de cet lment.

Rponse 1
i 1
Trouv vrai
Tant que ((i <= N) et (Trouv = vrai))
Faire
Si V[i] = e Alors
Trouv Faux
Sinon
i i +1
Fin Si
Fin Faire
Si (Trouv = vrai) Alors
Ecrire(e, "se trouve la position" , i)
Sinon
Ecrire(e, "ne se trouve pas dans V")
Fin Si

Recherche dichotomique
Ce type de recherche s'effectue dans un tableau ordonn.
Principe
1. On divise le tableau en deux parties sensiblement gales,
2. On compare la valeur chercher avec l'lment du milieu,
Cours ALGORITHMIQUE Elies JEBRI
27
3. Si elles ne sont pas gales, on s'intresse uniquement la partie contenant les lments
voulus et on dlaisse l'autre partie.
4. On recommence ces 3 tapes jusqu' avoir un seul lment comparer.

Application
On suppose qu'on dispose d'un vecteur V de N lments. On veut chercher la valeur Val.
ALGORITHME DICHOTHOMIE
...
Inf 1
Sup N
Trouv vrai
Tant que ((Inf <= Sup) et (Trouv = vrai))
Faire
Mil (Inf+Sup)DIV 2
Si (V[Mil] = Val) Alors
Trouv faux
Sinon
Si (V[Mil] < Val) Alors
Inf Mil + 1
Sinon
Sup Mil -1
Fin Si
Fin Si
Fin Faire

Si (Trouv = faux) Alors
Ecrire(Val, "existe la position" , Mil)
Sinon
Ecrire(Val, "n'existe pas dans V)
Fin Si

V.4.2. Les matrices
Les matrices sont les tableaux deux dimensions.

4 COLONNES
1 2 3 4
5

L
I
G
N
E
S

1
2 5 3 6
2
4 -5 -1 3
3
7 -6 -3 0
4
5 -2 2 2
5
8 4 10 -9

L'lment d'indice [i,j] est
celui du croisement de la
ligne i avec la colonne j
M[3,2] est -6
Cours ALGORITHMIQUE Elies JEBRI
28
C CH HA AP PI IT TR RE E V VI I. . T TD D A AL LG GO OR RI IT TH HM MI IQ QU UE E 1 1


Chercher le plus petit lment dans un vecteur.

1-p) Exercice 12
Saisissez un vecteur de telle faon qu'il soit ordonn.

Soit un tableau NOM dont les lments sont de type chane de caractres. Ce tableau contient
les noms des tudiants ordonns selon le numro de registre. Et soit le tableau MOY
contenant respectivement la moyenne de chaque tudiant selon le mme ordre.
Ecrire l'algorithme qui permet de saisir les deux tableaux puis d'afficher le nom de l'tudiant
ayant la meilleure moyenne.

Cours ALGORITHMIQUE Elies JEBRI
29
C CH HA AP PI IT TR RE E V VI II I. . L LE ES S A AL LG GO OR RI IT TH HM ME ES S D DE E T TR RI I
Dans ce chapitre on prsente quelques algorithmes utiles, qui permettent d'ordonner les
lments d'un tableau dans un ordre croissant ou dcroissant. L'ordre est par dfaut croissant.

Un vecteur est dit tri si V[i] <= V[i+1], i e [1..n-1]
1. Tri par slection
1-q) Principe
Utiliser un vecteur VT (vecteur tri) comme vecteur rsultat. Celui ci contiendra les lments
du vecteur initial dans l'ordre croissant.
Le principe est de :
0- Chercher le plus grand lment dans le vecteur initial V
1- Slectionner le plus petit lment dans V
2- Le mettre dans son ordre dans le vecteur VT
3- Le remplacer par le plus grand lment dans le vecteur initial (pour qu'il ne sera plus le
minimum)
4- Si le nombre d'lments dans le vecteur rsultat n'est pas identique celui dans le vecteur
initial Retourner l'tape 1
Sinon on s'arrte.
1-r) Exemple
Soit le vecteur V contenant 4 lments.

V VT
Au dpart 10 15 -1 7
Phase 1 10 15 15 7 -1
Phase 2 10 15 15 15 -1 7
Phase 3 15 15 15 15 -1 7 10
Phase 4 15 15 15 15 -1 7 10 15

Schma de l'algorithme
ALGORITHME TRI_SELECTION
CONST Bi = 1
Bs = 10
VAR V, VT : Tableau[Bi..Bs] de rel
N, i, j, indmin : entier
MIN, MAX : rel
DEBUT
{Chargement du vecteur V}

{Recherche du maximum}
MAXV[1]
Pour i de 2 N
FAIRE
Si MAX < V[i] Alors
MAXV[i]
FINSI
FINFAIRE


Cours ALGORITHMIQUE Elies JEBRI
30

POUR i de 1 N-1 FAIRE
{Recherche du minimum}
MIN V[1]
indmin 1
Pour j de 2 N faire
Si MIN > V[j] ALORS
MINV[j]
Indmin j
Fin si
Fin Faire
{Mettre le minimum trouv sa place dans le vecteur rsultat}
VT[i] MIN
V[indmin] MAX
Fin Faire
VT[N] MAX
FIN

Peut-on amliorer cet algorithme ?

2. Algorithme de tri par slection et permutation
Il s'agit ici d'viter la construction d'un second vecteur et d'utiliser un seul vecteur initial qui
sera tri.

Supposons traits n-i (1 <= i < N) lments du vecteur.

V[1..i] non trait V[i+1..N] Tri


1 i N
On peut considrer le vecteur V comme la concatnation de deux sous-vecteurs : le sous-
vecteur V[1..i] dont les lments n'ont pas encore t tris, et le sous vecteur V[i+1..N] dont
les lments sont tris. D'autre part tous les lments du sous-vecteur V[1..i] sont infrieurs
ou gaux l'lment V[i+1].
On a donc :
V[1..i] non trait, V[1..i] <= V[i+1], V[i+1..N] Tri
On a deux cas :
- I = 1
(V[1] non trait, V[1]<= V[2], V[2..N] tri) donc V[1..N] tri
L'algorithme est termin.
- I > 1
Pour augmenter le sous-vecteur V[i+1..n] d'un lment, il suffit de chercher le plus
grand lment contenu dans le sous-vecteur V[1..i] et de placer cet lment en
position i.
Schma de l'algorithme
ALGORITHME SLECTION_PERMUTATION
CONST Bi = 1
Bs = 10
Cours ALGORITHMIQUE Elies JEBRI
31
VAR V : Tableau[Bi..Bs] d'entier
N, i, j : entier
DEBUT
{Chargement du vecteur V}

Pour i de N 2 Faire
{Recherche de l'indice du maximum dans V[1..i]}
indmax 1
Pour j de 2 i
FAIRE
Si V[indmax] < V[j] Alors
indmax i
FIN SI
FIN FAIRE
{Mettre le maximum relatif trouv sa place}
Si indmax <> i Alors
Aux V[indmax]
V[indmax] V[i]
V[i] Aux
Fin Si
Fin Faire


VII.1.3. Tri par la mthode des bulles
Mme principe que le prcdent.

Aprs avoir trait n-i (1 <= i < N) lments du vecteur.

V[1..i] non trait V[i+1..N] Tri


1 i N
On peut donc considrer le vecteur V comme la concatnation de deux sous-vecteurs : le
sous-vecteur V[1..i] dont les lments n'ont pas encore t tris, et le sous vecteur V[i+1..N]
dont les lments sont tris. D'autre part tous les lments du sous-vecteur V[1..i] sont
infrieurs ou gaux l'lment V[i+1].
On a donc :
V[1..i] non trait, V[1..i] <= V[i+1], V[i+1..N] Tri
On a deux cas :
- I = 1
(V[1] non trait, V[1]<= V[2], V[2..N] tri) donc V[1..N] tri
L'algorithme est termin.
- I > 1
Pour augmenter le sous-vecteur V[i+1..n] d'un lment, il suffit de chercher le plus grand
lment contenu dans le sous-vecteur V[1..i] et de placer cet lment en position i.


Cours ALGORITHMIQUE Elies JEBRI
32
On parcourt le sous-vecteur V[1..i] de gauche droite et, chaque fois qu'il y a deux lments
conscutifs qui ne sont pas dans l'ordre, on les permute. Cette opration permet d'obtenir en
fin du i
ime
parcours le plus grand lment plac en position i, et les lments aprs cette
position sont ordonns.

Schma de l'algorithme
ALGORITHME TRI_BULLE1
CONST N= 10
VAR V : tableau[1..N] de rel
N, i, j : entier
AUX : rel
DEBUT
{Chargement du vecteur}

POUR i de N 2 pas 1 FAIRE
POUR j de 1 i FAIRE
SI V[j]>V[j+1] ALORS
AUX V[j]
V[j] V[j+1]
V[j+1] AUX
FIN SI
FIN FAIRE
FIN FAIRE
FIN
Application
Excuter la main cet algorithme avec les vecteurs suivants :
2 2 -1 3 0 1

1 -1 2 5 13 15

Que remarquez-vous ?

3. Schma de l'algorithme bulle optimis
ALGORITHME TRI_BULLE1
CONST N= 10
VAR V : tableau[1..N] de rel
N, i, j : entier
AUX : rel
DEBUT
{Chargement du vecteur}

i N
atonpermut vrai
TANT QUE (atonpermut) FAIRE
j1
atonpermut faux
TANT QUE (j < i) FAIRE
DEBUT
SI (V[J+1] < V[j]) ALORS
Cours ALGORITHMIQUE Elies JEBRI
33
AUXV[J+1]
V[J+1] V[J]
V[J] AUX
FIN SI
atonpermutvrai
FIN
jj+1
FIN
ii-1
FIN
FIN




POUR i de N 2 pas 1 FAIRE
POUR j de 1 i FAIRE
SI V[j]>V[j+1] ALORS
AUX V[j]
V[j] V[j+1]
V[j+1] AUX
FIN SI
FIN FAIRE
FIN FAIRE
FIN




Cours ALGORITHMIQUE Elies JEBRI
34


Composer un algorithme lisant une quantit commande infrieure 10000 puis calculer le
nombre de caisse non nul de chaque type utilis

VARIABLE LOCALE
Une variable de type locale si elle est dfinie lintrieur de la procdure . Elle nest
accessible que dans lenvironnement de la procdure ou elle a t dfinie.
Lintret des variables locales cest quelles conntribuent particulierement une plus grande
lisibilit dun programme (algorithme). Elle minimisent les erreurs.

VARIABLE GLOBAL
Une variable est dite global si elle est dfinie au niveau de lalgorithme qui appelle la
procdure cest dire une variable utilise par la procdure et nest pas dclars a linterieur
de cette procdure.
Un m
me nom de variable peut tre glopal ou local
Dans de telle situation le dfinition dune variable local dtient la prsance l interieur de
son champ dapplication
IMPORTANT
Une variable globale peut tre utilis nimporte o
linterieur ou lextrieur de la procdure
PROCEDURE MAXI
DEBUT
si(A>B)
alors
MAX=a
si non
MAX=B
fin si
crire("le maximum est ,"MAX)
FIN

ALGORITHME Maximum
DEBUT
crire("donner deux valeurs distinctes")
REPETER
lire(A,B)
JUSQUA(A<>B)
MAXI
FIN
AetB sont deux variables globales
MAX est une variable local
Lechange dinformation entre la procedure et lalgorithme est fait via (atravers) les variables
globales
Cette mthode dechange peut changer le contenu de la variable linterieur de la procedure
qui peut effecter certaines informations errones lexterieur de la procedure et vice vers a
Pour resoudre ce problme on fait recour lemploie des parametres qui offrent une meilleur
approche lechange dinformation entre une procedure et son point de reference chaque
donne est transfere entre paramtre rel et un paramtre formel
Cours ALGORITHMIQUE Elies JEBRI
35

PARAMETRE FORMEL:
Est un paramtre (variable) dfini l intrieur de la procedure
exemple:procdure saisie(A,B) ;A,B:paramtres formels
PARAMETRE REEL:
Est un paramtre inclu lappel de la procdure
Lors de lappel de la procdure les paramtres rel remplacent les paramtres formels crant
ainsi un mcanisme dchange dinformation entre la procdure ey son point de rfrance
PROCEDURE (x,y)
DEBUT
si x>y
alors
MAX=x

si non
MAX=y
fin si
crire("le maximum entre ",x,"et",y,"est",MAX)
FIN

ALGORITHME Maximum
DEBUT
crire("
deonner deux valeurs distinctes")
REPETER
lire(A,B)
JUSQUA(A<>B)
maxi(A,B)
FIN
A,B:deux parametres rels
x,y:deux paramtre formels
MAX:variable locale
PASSAGE DES PARAMETRES PAR VALEURS
Un paramtre par valeur est considr comme un paramtre dentr
Le sens de transfert des donnes se fait a une seule direction du paramtre rel en paramtre
formel
Lemploi dun paramtre par valeur implique le transfert dune valeur plutt que la
substitution dun paramtre rel
=Lors du transfert on assigne la valeur du paramtre rel au paramtre formel par valeur
exemple:
PROCEDURE UNE(x,y)
DEBUT
x=x+5
Y=y*2
crire ("x=",x,"y=",y)
FIN

ALGORITHME VALEUR
DEBUT
lire("A=",A,"B=",B)
Cours ALGORITHMIQUE Elies JEBRI
36
UNE(A,B)
crire("A=",A,"B=",B)
FIN
Passage par valeur du programme principal vers la procdure
PROGRAMME PRINCIPAL
A 5
B 8

PROCEDURE
x 5 10 y 8 16 A=5 B=8
5 10 y 8 16 A=5 B=8
5 10 y 8 16 A=5 B=8
10 y 8 16 A=5 B=8
10 y 8 16 A=5 B=8
10 y 8 16 A=5 B=8
0 y 8 16 A=5 B=8
y 8 16 A=5 B=8
y 8 16 A=5 B=8
y 8 16 A=5 B=8
8 16 A=5 B=8
8 16 A=5 B=8
16 A=5 B=8
16 A=5 B=8
16 A=5 B=8
6 A=5 B=8
A=5 B=8
A=5 B=8
A=5 B=8
=5 B=8
5 B=8
B=8
B=8
B=8
B=8
B=8
B=8
B=8
B=8
=8
8

x=10 y=16
=10 y=16
10 y=16
0 y=16
y=16
y=16
y=16
y=16
y=16
Cours ALGORITHMIQUE Elies JEBRI
37
y=16
y=16
=16
16
6

A=5 B=8
=5 B=8
5 B=8
B=8
B=8
B=8
B=8
B=8
B=8
B=8
B=8
=8
8

1) Le nombre de paramtre rel doit tre gale au nombre de paramtre formel
) Le nombre de paramtre rel doit tre gale au nombre de paramtre formel
Le nombre de paramtre rel doit tre gale au nombre de paramtre formel
Le nombre de paramtre rel doit tre gale au nombre de paramtre formel
e nombre de paramtre rel doit tre gale au nombre de paramtre formel
nombre de paramtre rel doit tre gale au nombre de paramtre formel
nombre de paramtre rel doit tre gale au nombre de paramtre formel
ombre de paramtre rel doit tre gale au nombre de paramtre formel
mbre de paramtre rel doit tre gale au nombre de paramtre formel
bre de paramtre rel doit tre gale au nombre de paramtre formel
re de paramtre rel doit tre gale au nombre de paramtre formel
e de paramtre rel doit tre gale au nombre de paramtre formel
de paramtre rel doit tre gale au nombre de paramtre formel
de paramtre rel doit tre gale au nombre de paramtre formel
e paramtre rel doit tre gale au nombre de paramtre formel
paramtre rel doit tre gale au nombre de paramtre formel
paramtre rel doit tre gale au nombre de paramtre formel
aramtre rel doit tre gale au nombre de paramtre formel
ramtre rel doit tre gale au nombre de paramtre formel
amtre rel doit tre gale au nombre de paramtre formel
mtre rel doit tre gale au nombre de paramtre formel
tre rel doit tre gale au nombre de paramtre formel
tre rel doit tre gale au nombre de paramtre formel
re rel doit tre gale au nombre de paramtre formel
e rel doit tre gale au nombre de paramtre formel
rel doit tre gale au nombre de paramtre formel
rel doit tre gale au nombre de paramtre formel
el doit tre gale au nombre de paramtre formel
el doit tre gale au nombre de paramtre formel
l doit tre gale au nombre de paramtre formel
Cours ALGORITHMIQUE Elies JEBRI
38
doit tre gale au nombre de paramtre formel
doit tre gale au nombre de paramtre formel
oit tre gale au nombre de paramtre formel
it tre gale au nombre de paramtre formel
t tre gale au nombre de paramtre formel
tre gale au nombre de paramtre formel
tre gale au nombre de paramtre formel
tre gale au nombre de paramtre formel
re gale au nombre de paramtre formel
e gale au nombre de paramtre formel
gale au nombre de paramtre formel
gale au nombre de paramtre formel
gale au nombre de paramtre formel
ale au nombre de paramtre formel
le au nombre de paramtre formel
e au nombre de paramtre formel
au nombre de paramtre formel
au nombre de paramtre formel
u nombre de paramtre formel
nombre de paramtre formel
nombre de paramtre formel
ombre de paramtre formel
mbre de paramtre formel
bre de paramtre formel
re de paramtre formel
e de paramtre formel
de paramtre formel
de paramtre formel
e paramtre formel
paramtre formel
paramtre formel
aramtre formel
ramtre formel
amtre formel
mtre formel
tre formel
tre formel
re formel
e formel
formel
formel
ormel
rmel
mel
el
l

2) Les paramtres rels et formels doivent tre de mme type
) Les paramtres rels et formels doivent tre de mme type
Les paramtres rels et formels doivent tre de mme type
Cours ALGORITHMIQUE Elies JEBRI
39
Les paramtres rels et formels doivent tre de mme type
es paramtres rels et formels doivent tre de mme type
s paramtres rels et formels doivent tre de mme type
paramtres rels et formels doivent tre de mme type
paramtres rels et formels doivent tre de mme type
aramtres rels et formels doivent tre de mme type
ramtres rels et formels doivent tre de mme type
amtres rels et formels doivent tre de mme type
mtres rels et formels doivent tre de mme type
tres rels et formels doivent tre de mme type
tres rels et formels doivent tre de mme type
res rels et formels doivent tre de mme type
es rels et formels doivent tre de mme type
s rels et formels doivent tre de mme type
rels et formels doivent tre de mme type
rels et formels doivent tre de mme type
els et formels doivent tre de mme type
els et formels doivent tre de mme type
ls et formels doivent tre de mme type
s et formels doivent tre de mme type
et formels doivent tre de mme type
et formels doivent tre de mme type
t formels doivent tre de mme type
formels doivent tre de mme type
formels doivent tre de mme type
ormels doivent tre de mme type
rmels doivent tre de mme type
mels doivent tre de mme type
els doivent tre de mme type
ls doivent tre de mme type
s doivent tre de mme type
doivent tre de mme type
doivent tre de mme type
oivent tre de mme type
ivent tre de mme type
vent tre de mme type
ent tre de mme type
nt tre de mme type
t tre de mme type
tre de mme type
tre de mme type
tre de mme type
re de mme type
e de mme type
de mme type
de mme type
e mme type
mme type
mme type
me type
Cours ALGORITHMIQUE Elies JEBRI
40
me type
e type
type
type
ype
pe
e

3) Lordre dans le transfert intervient
) Lordre dans le transfert intervient
Lordre dans le transfert intervient
Lordre dans le transfert intervient
ordre dans le transfert intervient
ordre dans le transfert intervient
rdre dans le transfert intervient
dre dans le transfert intervient
re dans le transfert intervient
e dans le transfert intervient
dans le transfert intervient
dans le transfert intervient
ans le transfert intervient
ns le transfert intervient
s le transfert intervient
le transfert intervient
le transfert intervient
e transfert intervient
transfert intervient
transfert intervient
ransfert intervient
ansfert intervient
nsfert intervient
sfert intervient
fert intervient
ert intervient
rt intervient
t intervient
intervient
intervient
ntervient
tervient
ervient
rvient
vient
ient
ent
nt
t

Passage des paramtres par variable ou rfrence
assage des paramtres par variable ou rfrence
Cours ALGORITHMIQUE Elies JEBRI
41
ssage des paramtres par variable ou rfrence
sage des paramtres par variable ou rfrence
age des paramtres par variable ou rfrence
ge des paramtres par variable ou rfrence
e des paramtres par variable ou rfrence
des paramtres par variable ou rfrence
des paramtres par variable ou rfrence
es paramtres par variable ou rfrence
s paramtres par variable ou rfrence
paramtres par variable ou rfrence
paramtres par variable ou rfrence
aramtres par variable ou rfrence
ramtres par variable ou rfrence
amtres par variable ou rfrence
mtres par variable ou rfrence
tres par variable ou rfrence
tres par variable ou rfrence
res par variable ou rfrence
es par variable ou rfrence
s par variable ou rfrence
par variable ou rfrence
par variable ou rfrence
ar variable ou rfrence
r variable ou rfrence
variable ou rfrence
variable ou rfrence
ariable ou rfrence
riable ou rfrence
iable ou rfrence
able ou rfrence
ble ou rfrence
le ou rfrence
e ou rfrence
ou rfrence
ou rfrence
u rfrence
rfrence
rfrence
frence
frence
rence
rence
ence
nce
ce
e


1)Un paramtre variable est pass par rfrence et non par valeur
)Un paramtre variable est pass par rfrence et non par valeur
Cours ALGORITHMIQUE Elies JEBRI
42
Un paramtre variable est pass par rfrence et non par valeur
n paramtre variable est pass par rfrence et non par valeur
paramtre variable est pass par rfrence et non par valeur
paramtre variable est pass par rfrence et non par valeur
aramtre variable est pass par rfrence et non par valeur
ramtre variable est pass par rfrence et non par valeur
amtre variable est pass par rfrence et non par valeur
mtre variable est pass par rfrence et non par valeur
tre variable est pass par rfrence et non par valeur
tre variable est pass par rfrence et non par valeur
re variable est pass par rfrence et non par valeur
e variable est pass par rfrence et non par valeur
variable est pass par rfrence et non par valeur
variable est pass par rfrence et non par valeur
ariable est pass par rfrence et non par valeur
riable est pass par rfrence et non par valeur
iable est pass par rfrence et non par valeur
able est pass par rfrence et non par valeur
ble est pass par rfrence et non par valeur
le est pass par rfrence et non par valeur
e est pass par rfrence et non par valeur
est pass par rfrence et non par valeur
est pass par rfrence et non par valeur
st pass par rfrence et non par valeur
t pass par rfrence et non par valeur
pass par rfrence et non par valeur
pass par rfrence et non par valeur
ass par rfrence et non par valeur
ss par rfrence et non par valeur
s par rfrence et non par valeur
par rfrence et non par valeur
par rfrence et non par valeur
par rfrence et non par valeur
ar rfrence et non par valeur
r rfrence et non par valeur
rfrence et non par valeur
rfrence et non par valeur
frence et non par valeur
frence et non par valeur
rence et non par valeur
rence et non par valeur
ence et non par valeur
nce et non par valeur
ce et non par valeur
e et non par valeur
et non par valeur
et non par valeur
t non par valeur
non par valeur
non par valeur
Cours ALGORITHMIQUE Elies JEBRI
43
on par valeur
n par valeur
par valeur
par valeur
ar valeur
r valeur
valeur
valeur
aleur
leur
eur
ur
r

2) Pour distinguer les paramtres variables des paramtres par valeur on procde le nom de la
) Pour distinguer les paramtres variables des paramtres par valeur on procde le nom de la
Pour distinguer les paramtres variables des paramtres par valeur on procde le nom de la
Pour distinguer les paramtres variables des paramtres par valeur on procde le nom de la
our distinguer les paramtres variables des paramtres par valeur on procde le nom de la
ur distinguer les paramtres variables des paramtres par valeur on procde le nom de la
r distinguer les paramtres variables des paramtres par valeur on procde le nom de la
distinguer les paramtres variables des paramtres par valeur on procde le nom de la
distinguer les paramtres variables des paramtres par valeur on procde le nom de la variable
istinguer les paramtres variables des paramtres par valeur on procde le nom de la variable
stinguer les paramtres variables des paramtres par valeur on procde le nom de la variable
tinguer les paramtres variables des paramtres par valeur on procde le nom de la variable
inguer les paramtres variables des paramtres par valeur on procde le nom de la variable par
nguer les paramtres variables des paramtres par valeur on procde le nom de la variable par
guer les paramtres variables des paramtres par valeur on procde le nom de la variable par
uer les paramtres variables des paramtres par valeur on procde le nom de la variable par le
er les paramtres variables des paramtres par valeur on procde le nom de la variable par le
r les paramtres variables des paramtres par valeur on procde le nom de la variable par le
les paramtres variables des paramtres par valeur on procde le nom de la variable par le
les paramtres variables des paramtres par valeur on procde le nom de la variable par le mot
es paramtres variables des paramtres par valeur on procde le nom de la variable par le mot
s paramtres variables des paramtres par valeur on procde le nom de la variable par le mot
paramtres variables des paramtres par valeur on procde le nom de la variable par le mot
paramtres variables des paramtres par valeur on procde le nom de la variable par le mot cl
aramtres variables des paramtres par valeur on procde le nom de la variable par le mot cl
ramtres variables des paramtres par valeur on procde le nom de la variable par le mot cl
amtres variables des paramtres par valeur on procde le nom de la variable par le mot cl
mtres variables des paramtres par valeur on procde le nom de la variable par le mot cl var
tres variables des paramtres par valeur on procde le nom de la variable par le mot cl var
tres variables des paramtres par valeur on procde le nom de la variable par le mot cl var
res variables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou
es variables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou
s variables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou
variables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou
variables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou
ariables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
Cours ALGORITHMIQUE Elies JEBRI
44
riables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
iables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
ables des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
bles des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
les des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
es des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
s des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
des paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
es paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
s paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
paramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
aramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
ramtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
amtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
mtres par valeur on procde le nom de la variable par le mot cl var (ou ref)
tres par valeur on procde le nom de la variable par le mot cl var (ou ref)
tres par valeur on procde le nom de la variable par le mot cl var (ou ref)
res par valeur on procde le nom de la variable par le mot cl var (ou ref)
es par valeur on procde le nom de la variable par le mot cl var (ou ref)
s par valeur on procde le nom de la variable par le mot cl var (ou ref)
par valeur on procde le nom de la variable par le mot cl var (ou ref)
par valeur on procde le nom de la variable par le mot cl var (ou ref)
ar valeur on procde le nom de la variable par le mot cl var (ou ref)
r valeur on procde le nom de la variable par le mot cl var (ou ref)
valeur on procde le nom de la variable par le mot cl var (ou ref)
valeur on procde le nom de la variable par le mot cl var (ou ref)
aleur on procde le nom de la variable par le mot cl var (ou ref)
leur on procde le nom de la variable par le mot cl var (ou ref)
eur on procde le nom de la variable par le mot cl var (ou ref)
ur on procde le nom de la variable par le mot cl var (ou ref)
r on procde le nom de la variable par le mot cl var (ou ref)
on procde le nom de la variable par le mot cl var (ou ref)
on procde le nom de la variable par le mot cl var (ou ref)
n procde le nom de la variable par le mot cl var (ou ref)
procde le nom de la variable par le mot cl var (ou ref)
procde le nom de la variable par le mot cl var (ou ref)
rocde le nom de la variable par le mot cl var (ou ref)
ocde le nom de la variable par le mot cl var (ou ref)
cde le nom de la variable par le mot cl var (ou ref)
de le nom de la variable par le mot cl var (ou ref)
de le nom de la variable par le mot cl var (ou ref)
e le nom de la variable par le mot cl var (ou ref)
le nom de la variable par le mot cl var (ou ref)
le nom de la variable par le mot cl var (ou ref)
e nom de la variable par le mot cl var (ou ref)
nom de la variable par le mot cl var (ou ref)
nom de la variable par le mot cl var (ou ref)
om de la variable par le mot cl var (ou ref)
Cours ALGORITHMIQUE Elies JEBRI
45
m de la variable par le mot cl var (ou ref)
de la variable par le mot cl var (ou ref)
de la variable par le mot cl var (ou ref)
e la variable par le mot cl var (ou ref)
la variable par le mot cl var (ou ref)
la variable par le mot cl var (ou ref)
a variable par le mot cl var (ou ref)
variable par le mot cl var (ou ref)
variable par le mot cl var (ou ref)
ariable par le mot cl var (ou ref)
riable par le mot cl var (ou ref)
iable par le mot cl var (ou ref)
able par le mot cl var (ou ref)
ble par le mot cl var (ou ref)
le par le mot cl var (ou ref)
e par le mot cl var (ou ref)
par le mot cl var (ou ref)
par le mot cl var (ou ref)
ar le mot cl var (ou ref)
r le mot cl var (ou ref)
le mot cl var (ou ref)
le mot cl var (ou ref)
e mot cl var (ou ref)
mot cl var (ou ref)
mot cl var (ou ref)
ot cl var (ou ref)
t cl var (ou ref)
cl var (ou ref)
cl var (ou ref)
l var (ou ref)
var (ou ref)
var (ou ref)
var (ou ref)
ar (ou ref)
r (ou ref)
(ou ref)
(ou ref)
ou ref)
u ref)
ref)
ref)
ef)
f)
)

3)Unparamtre variable ne peut tre quune variable et non une cte ou expression
)Unparamtre variable ne peut tre quune variable et non une cte ou expression
Unparamtre variable ne peut tre quune variable et non une cte ou expression
nparamtre variable ne peut tre quune variable et non une cte ou expression
paramtre variable ne peut tre quune variable et non une cte ou expression
Cours ALGORITHMIQUE Elies JEBRI
46
aramtre variable ne peut tre quune variable et non une cte ou expression
ramtre variable ne peut tre quune variable et non une cte ou expression
amtre variable ne peut tre quune variable et non une cte ou expression
mtre variable ne peut tre quune variable et non une cte ou expression
tre variable ne peut tre quune variable et non une cte ou expression
tre variable ne peut tre quune variable et non une cte ou expression
re variable ne peut tre quune variable et non une cte ou expression
e variable ne peut tre quune variable et non une cte ou expression
variable ne peut tre quune variable et non une cte ou expression
variable ne peut tre quune variable et non une cte ou expression
ariable ne peut tre quune variable et non une cte ou expression
riable ne peut tre quune variable et non une cte ou expression
iable ne peut tre quune variable et non une cte ou expression
able ne peut tre quune variable et non une cte ou expression
ble ne peut tre quune variable et non une cte ou expression
le ne peut tre quune variable et non une cte ou expression
e ne peut tre quune variable et non une cte ou expression
ne peut tre quune variable et non une cte ou expression
ne peut tre quune variable et non une cte ou expression
e peut tre quune variable et non une cte ou expression
peut tre quune variable et non une cte ou expression
peut tre quune variable et non une cte ou expression
eut tre quune variable et non une cte ou expression
ut tre quune variable et non une cte ou expression
t tre quune variable et non une cte ou expression
tre quune variable et non une cte ou expression
tre quune variable et non une cte ou expression
tre quune variable et non une cte ou expression
re quune variable et non une cte ou expression
e quune variable et non une cte ou expression
quune variable et non une cte ou expression
quune variable et non une cte ou expression
uune variable et non une cte ou expression
une variable et non une cte ou expression
une variable et non une cte ou expression
ne variable et non une cte ou expression
e variable et non une cte ou expression
variable et non une cte ou expression
variable et non une cte ou expression
ariable et non une cte ou expression
riable et non une cte ou expression
iable et non une cte ou expression
able et non une cte ou expression
ble et non une cte ou expression
le et non une cte ou expression
e et non une cte ou expression
et non une cte ou expression
et non une cte ou expression
t non une cte ou expression
non une cte ou expression
Cours ALGORITHMIQUE Elies JEBRI
47
non une cte ou expression
on une cte ou expression
n une cte ou expression
une cte ou expression
une cte ou expression
ne cte ou expression
e cte ou expression
cte ou expression
cte ou expression
te ou expression
e ou expression
ou expression
ou expression
u expression
expression
expression
xpression
pression
ression
ession
ssion
sion
ion
on
n


4) changement dans la valeur dun paramtre formel lintrieur dune procedure
) changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
changement dans la valeur dun paramtre formel lintrieur dune procedure changera
hangement dans la valeur dun paramtre formel lintrieur dune procedure changera
angement dans la valeur dun paramtre formel lintrieur dune procedure changera
ngement dans la valeur dun paramtre formel lintrieur dune procedure changera
gement dans la valeur dun paramtre formel lintrieur dune procedure changera
ement dans la valeur dun paramtre formel lintrieur dune procedure changera galement
ment dans la valeur dun paramtre formel lintrieur dune procedure changera galement
ent dans la valeur dun paramtre formel lintrieur dune procedure changera galement la
nt dans la valeur dun paramtre formel lintrieur dune procedure changera galement la
t dans la valeur dun paramtre formel lintrieur dune procedure changera galement la
dans la valeur dun paramtre formel lintrieur dune procedure changera galement la
dans la valeur dun paramtre formel lintrieur dune procedure changera galement la
ans la valeur dun paramtre formel lintrieur dune procedure changera galement la
Cours ALGORITHMIQUE Elies JEBRI
48
ns la valeur dun paramtre formel lintrieur dune procedure changera galement la valeur
s la valeur dun paramtre formel lintrieur dune procedure changera galement la valeur
la valeur dun paramtre formel lintrieur dune procedure changera galement la valeur
la valeur dun paramtre formel lintrieur dune procedure changera galement la valeur du
a valeur dun paramtre formel lintrieur dune procedure changera galement la valeur du
valeur dun paramtre formel lintrieur dune procedure changera galement la valeur du
valeur dun paramtre formel lintrieur dune procedure changera galement la valeur du
aleur dun paramtre formel lintrieur dune procedure changera galement la valeur du
leur dun paramtre formel lintrieur dune procedure changera galement la valeur du
eur dun paramtre formel lintrieur dune procedure changera galement la valeur du
ur dun paramtre formel lintrieur dune procedure changera galement la valeur du
r dun paramtre formel lintrieur dune procedure changera galement la valeur du
dun paramtre formel lintrieur dune procedure changera galement la valeur du
dun paramtre formel lintrieur dune procedure changera galement la valeur du
un paramtre formel lintrieur dune procedure changera galement la valeur du paramtre
un paramtre formel lintrieur dune procedure changera galement la valeur du paramtre
n paramtre formel lintrieur dune procedure changera galement la valeur du paramtre
paramtre formel lintrieur dune procedure changera galement la valeur du paramtre
paramtre formel lintrieur dune procedure changera galement la valeur du paramtre
aramtre formel lintrieur dune procedure changera galement la valeur du paramtre rel
ramtre formel lintrieur dune procedure changera galement la valeur du paramtre rel
amtre formel lintrieur dune procedure changera galement la valeur du paramtre rel
mtre formel lintrieur dune procedure changera galement la valeur du paramtre rel
tre formel lintrieur dune procedure changera galement la valeur du paramtre rel
tre formel lintrieur dune procedure changera galement la valeur du paramtre rel
re formel lintrieur dune procedure changera galement la valeur du paramtre rel
e formel lintrieur dune procedure changera galement la valeur du paramtre rel
formel lintrieur dune procedure changera galement la valeur du paramtre rel
formel lintrieur dune procedure changera galement la valeur du paramtre rel
ormel lintrieur dune procedure changera galement la valeur du paramtre rel
rmel lintrieur dune procedure changera galement la valeur du paramtre rel
mel lintrieur dune procedure changera galement la valeur du paramtre rel
el lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
l lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
lintrieur dune procedure changera galement la valeur du paramtre rel correspondant
intrieur dune procedure changera galement la valeur du paramtre rel correspondant
intrieur dune procedure changera galement la valeur du paramtre rel correspondant
ntrieur dune procedure changera galement la valeur du paramtre rel correspondant
trieur dune procedure changera galement la valeur du paramtre rel correspondant
rieur dune procedure changera galement la valeur du paramtre rel correspondant
rieur dune procedure changera galement la valeur du paramtre rel correspondant
ieur dune procedure changera galement la valeur du paramtre rel correspondant
eur dune procedure changera galement la valeur du paramtre rel correspondant
ur dune procedure changera galement la valeur du paramtre rel correspondant
r dune procedure changera galement la valeur du paramtre rel correspondant lextrieur
dune procedure changera galement la valeur du paramtre rel correspondant lextrieur
dune procedure changera galement la valeur du paramtre rel correspondant lextrieur
Cours ALGORITHMIQUE Elies JEBRI
49
une procedure changera galement la valeur du paramtre rel correspondant lextrieur de
une procedure changera galement la valeur du paramtre rel correspondant lextrieur de
ne procedure changera galement la valeur du paramtre rel correspondant lextrieur de
e procedure changera galement la valeur du paramtre rel correspondant lextrieur de
procedure changera galement la valeur du paramtre rel correspondant lextrieur de
procedure changera galement la valeur du paramtre rel correspondant lextrieur de
rocedure changera galement la valeur du paramtre rel correspondant lextrieur de
ocedure changera galement la valeur du paramtre rel correspondant lextrieur de
cedure changera galement la valeur du paramtre rel correspondant lextrieur de
edure changera galement la valeur du paramtre rel correspondant lextrieur de
dure changera galement la valeur du paramtre rel correspondant lextrieur de
ure changera galement la valeur du paramtre rel correspondant lextrieur de
re changera galement la valeur du paramtre rel correspondant lextrieur de
e changera galement la valeur du paramtre rel correspondant lextrieur de
changera galement la valeur du paramtre rel correspondant lextrieur de
changera galement la valeur du paramtre rel correspondant lextrieur de
hangera galement la valeur du paramtre rel correspondant lextrieur de
angera galement la valeur du paramtre rel correspondant lextrieur de
ngera galement la valeur du paramtre rel correspondant lextrieur de
gera galement la valeur du paramtre rel correspondant lextrieur de
era galement la valeur du paramtre rel correspondant lextrieur de
ra galement la valeur du paramtre rel correspondant lextrieur de
a galement la valeur du paramtre rel correspondant lextrieur de
galement la valeur du paramtre rel correspondant lextrieur de
galement la valeur du paramtre rel correspondant lextrieur de
galement la valeur du paramtre rel correspondant lextrieur de
alement la valeur du paramtre rel correspondant lextrieur de
lement la valeur du paramtre rel correspondant lextrieur de
ement la valeur du paramtre rel correspondant lextrieur de
ment la valeur du paramtre rel correspondant lextrieur de
ent la valeur du paramtre rel correspondant lextrieur de
nt la valeur du paramtre rel correspondant lextrieur de
t la valeur du paramtre rel correspondant lextrieur de
la valeur du paramtre rel correspondant lextrieur de
la valeur du paramtre rel correspondant lextrieur de
a valeur du paramtre rel correspondant lextrieur de
valeur du paramtre rel correspondant lextrieur de
valeur du paramtre rel correspondant lextrieur de
aleur du paramtre rel correspondant lextrieur de
leur du paramtre rel correspondant lextrieur de
eur du paramtre rel correspondant lextrieur de
ur du paramtre rel correspondant lextrieur de
r du paramtre rel correspondant lextrieur de
du paramtre rel correspondant lextrieur de
du paramtre rel correspondant lextrieur de
u paramtre rel correspondant lextrieur de
paramtre rel correspondant lextrieur de
paramtre rel correspondant lextrieur de
aramtre rel correspondant lextrieur de
ramtre rel correspondant lextrieur de
Cours ALGORITHMIQUE Elies JEBRI
50
amtre rel correspondant lextrieur de
mtre rel correspondant lextrieur de
tre rel correspondant lextrieur de
tre rel correspondant lextrieur de
re rel correspondant lextrieur de
e rel correspondant lextrieur de
rel correspondant lextrieur de
rel correspondant lextrieur de
el correspondant lextrieur de
el correspondant lextrieur de
l correspondant lextrieur de
correspondant lextrieur de
correspondant lextrieur de
orrespondant lextrieur de
rrespondant lextrieur de
respondant lextrieur de
espondant lextrieur de
spondant lextrieur de
pondant lextrieur de
ondant lextrieur de
ndant lextrieur de
dant lextrieur de
ant lextrieur de
nt lextrieur de
t lextrieur de
lextrieur de
lextrieur de
lextrieur de
lextrieur de
extrieur de
extrieur de
xtrieur de
trieur de
rieur de
rieur de
ieur de
eur de
ur de
r de
de
de
e








Cours ALGORITHMIQUE Elies JEBRI
51









































Algorithme change
Dbut
Introduire la valeur de A et introduire la valeur de B
Introduire la valeur de A =lire (A)
Introduire la valeur de B = lire (B)
Affect la valeur de A dans lauxiliaire = auxiliaire A
Affect la valeur de B dans A = AB
Affect la valeur de lauxiliaire dans B = B auxiliaire
Fin
Cours ALGORITHMIQUE Elies JEBRI
52
QUELQUE TERMINOLOGIE UTILISE DE LA NOTION ALGORITHME
Processeur : est toute entit capable de comprendre un nonc et dexcuter le travail indiqu
par cet nonc .
Environnement : lensemble des objectifs ncessaire lexcution dun travail .
Action primitive : une action est primitive si lnonce de cette action lui seul suffisant pour
que le processeur puisse lexcuter sans information supplmentaire ; une action non
primitive doivent dcomposer en action primitive. Pour composer une action non primitive,
on peut utiliser plusieurs approche tel que lanalyse descendante.
Etant donn un travail T dcrit pour un nonc non primitive ; lanalyse descendante
constitue trouver une dcomposition de T seule dnonce .

LES CONSTANTES ET LES VARIABLES


Nous considrons laction suivant
Ajouter 1 la valeur de x et affecter le rsultat comme novelle valeur de x , cette exemple
fait intervenir deux objets 1 et x .
Lobjet x soit sa valeur varier = on dit que x est un variable, et nous dirons que 1 est un
constant .
Dfinition : 1-une variable est un objet dont la valeur nest pas invariable (cest peut modifier
au cours dune excution ).
Toute variable est dfini par :
-un nom qui sert designer et qui commence par une par une par une lettre
-un type qui dcrit lutilisation possible de la valeur .
Dfinir variable cest en fait crer un objet pour le processeur .

2-une constante est un objet de valeur invariable . Exemple : x1
Action daffectation : constante variable Exemple : xy
Les types de donns lmentaires :
1-Le type numrique : cest lensemble des valeurs numriques . Une valeur numrique sera
crite sous sa forme habituelle avec ou sans signe(une valeur sans signe est considr comme
positive).
2-Le type caractre : cest lensemble des chaines que lon peut former partir des lments
de lensemble des caractres(lettres , chiffres et spciaux) .
Ce type est connu sous le nom type alpha-numrique .
Pour viter de confondre une chaine de caractre avec le nom dune variable , on le
reprsentera entre deux apostrophes qui dlimitent le dbut et la fin de la chaine et ne seront
pas considres comme faisant partie de la cheine .

LES PROCEDURES ET LES FONCTION
DEFINITION
Une procedure est un sous programme realisent un traitement sur une partie du donns dun
programme principal
exemple : ecrire un programme(alg) qui effectue les traitement suivant
-)saisie des notes de chaque leve = procdure
-)calcul de la moyenne = procedure
-)cllassement=procdure est quelle vite lecriture de la mme chose plusieur fois
POUR QUOI UNE PROCEDURE :
Les procdures permettent de decomposer un algorithme en entit plus simple et donc de
simplifier la lecture et le suivi dun algorithme
Cours ALGORITHMIQUE Elies JEBRI
53
un procdure peut etre appele :
-)partir de lalgorithme principal
ou
-)partir dune entre procdure
-)une procdure peut retourner ou non une valeur comme elle peut procder ses propres
variables ou peut utiliser les variables de lalgorithme appelant
exemple :
calcul de la combinaison
on remarque quil ya une traitement de calcul du factoriel qui se rpetes 3 fois
avec lutilisation de la procdure,on crit une procdure qui calcule un factoriel et on lapple 3
fois
-)une fois pour(n)
-)une fois pour(p)
-)une fois pour(p - n)
lappel de la procdure se fait tout simplement en faisant rference son nom suivi ou non de
ses paramtres spars par des virgules et entours par des ( )
Quand on appelle une procdure le controle se trouve automatiquement transfr au dbut de
la procdure
Les instructions daction linterieur de la procdure sexcutent en prenant en considrons
toutes les variables propres la procdure.
Quand toutes les actions de la procdure ont t excutes le contrle retourne laction qui
suit immdiatement laction dappel de la procdure.
Une procdure est finie par son nom avec ou sans paramtres
exemple :
procdure sans paramtre
procdure mssage
DEBUT
crire(" bongour ")
FIN
ALGORITHME PRINCIPALE
DEBUT
message
FIN
procdure avec paramtre
procdure MESSAGE(M)
DEBUT
crire(" bongour ",)
FIN
ALGORITHME PRINCIPAL
DEBUT
MESSAGE(" monsieur ")
MESSAGE(" madame ")
FINT
OU
ALGORITHME PRINCIPAL3
DEBUT
lire(personne)
MESSAGE(personne)
FIN
LEXERCICE 7 DE LA SERIE N 2
Cours ALGORITHMIQUE Elies JEBRI
54
Une socit fabrique des objets en plastique quelle peut emballer dans les caisses de
diffrentes capacit s
caisse G 213 units
caisse M 36 units
caisse P1 6 units
caisse p2 1 nits


Cours ALGORITHMIQUE Elies JEBRI
55

ALGORITHME SANS-PROCEDURE
DEBUT
crire(" donner la valeur de la quantit commande?")
REPETER
LIRE (Q)
JUSQUA(Q<10000)
G=E(Q/213)
M=E(Q-G*213)/316)
p1=E(Q-G*213)-M*36)/G)
P2=E(Q-G*213-M*36-P1*6)
si(G<>0)
alors
crire("le nombre de caisse type G est:"G)
fin si
si(M<>0)
alors
crire("le nombre de caisse type M est:"M)
fin si
si(P1<>0)
alors
crire("le nombre de caisse type P1 est:"P1)
fin si
si(P2<>0)
alors
crire("le nombre de caisse type P2 est:"P2)
fin si
FIN

ALGORITHME AVEC-PROCEDURE
DEBUT
crire("donner le valeur de la quantit commande?")
REPETER
LIRE(Q)
JUSQUA(Q<10000)
G=E(Q/213)
M=E((Q-G*213)/36)
P1=E((Q-G*213-M*36)/G)
P2=E(Q-G*213-M*36-P1*6)
affichage("G,G)
affichage("M,M)
affichage("P1,P1)
affichage("P2,P2)
FIN

PROCEDURE AFFICHAGE(G,A)
debut
si(A<>0)
alors
crire("le nombre de caisse type,"G",est,"A)
Cours ALGORITHMIQUE Elies JEBRI
56
fin si
FIN