Vous êtes sur la page 1sur 8

Cours Algorithmique

Philippe Lawrence
October 11, 2014

Contents
1 Les
1.1
1.2
1.3
1.4
1.5
1.6

principales structures dun


Affectation . . . . . . . . . .
Debut et fin de lalgorithme .
Instruction . . . . . . . . . .
Test . . . . . . . . . . . . . .
Acquisition . . . . . . . . . .
Fonction . . . . . . . . . . . .

algorithme
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

2
2
2
3
3
3
4

2 Les comparaisons

3 Les boucles
3.1 La boucle Pour . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 La boucle Tant que . . . . . . . . . . . . . . . . . . . . . .

5
5
6

Cours dalgorithmique

Un algorithme est une suite doperations ou dinstructions permettant


de resoudre un probl`eme, generalement informatique. Une recette de cuisine
peut aussi etre vue comme un algorithme. Lorsque lalgorithme ne fait pas
reference `
a un langage de programmation particulier, on parle de pseudocode.
Il existe aussi une representation graphique de lalgorithme, on parle dorganigramme (ou dalgorigramme). La representation graphique doit etre limitee
aux probl`emes les plus simples car elle devient vite lourde et ne correspond
pas toujours `
a la structure reelle dun programme.

1
1.1

Les principales structures dun algorithme


Affectation

Laffectation consiste `
a donner `a une variable (par exemple x) une valeur
(par exemple 0). Cette operation correspond `a ecrire x=0 en mathematique.
En informatique, laffectation consiste `a associer en memoire deux choses :
un nom de variable x avec une valeur 0.
Sur lalgorigramme, la representation dune affectation est la suivante:
Representation :
x0

1.2

D
ebut et fin de lalgorithme

Les zones de forme ovale servent `a materialiser le debut et la fin de lalgorithme


ou dune partie de celui-ci (une fonction par exemple). Les formes ovales
sont plus rarement utilisees pour marquer des interruptions ou des points
de contr
ole.
Un algorigramme commence et se termine toujours par une sequence debut
et fin comme illustre sur la figure 1.
Debut

Fin
Figure 1: Le debut et la fin dun algorigramme sont materialises par des
formes ovales
Lalgorithme peut lui aussi commencer par Debut et sachever par Fin.

Cours dalgorithmique

Debut
| ...
Fin
1.3

Instruction

Les instructions (affectation, operation, ...) sont representees dans une zone
rectangulaire (voir figure 2).

Figure 2: Symbole pour une ou plusieurs instructions

1.4

Test

Un test permet deffectuer des operations differentes selon quune condition


est vraie ou fausse.
Les tests (structures de type si sinon) sont representes par un losange `a
linterieur duquel on ecrit la condition (une comparaison en general). Deux
branches sortent de ce losange. La branche horizontale correspond `a une
valeur fausse de la condition (non) tandis que la branche verticale correspond
`a un valeur vraie (oui) comme le montre la figure 3.

non

non

oui

oui

Figure 3: Symbole pour un test si / sinon

1.5

Acquisition

Les acquisitions sont ecrites `a linterieur dun parall`elogramme (voir figure 4). Une acquisition correspond par exemple `a la lecture dune donnee
dun capteur, une lecture de fichier, une ressource internet...
3

Cours dalgorithmique

Figure 4: Symbole pour une acquisition

1.6

Fonction

Les fonctions deviennent obligatoires d`es que le programme informatique


prend de limportance. Une fonction sert `a mettre `a part une partie dun
code repondant `
a un probl`eme donne. Les fonctions facilitent la lisibilite et
la reutilisation du code.

Figure 5: Symbole pour une fonction

Les comparaisons

non

a == b ?

oui

print(Egal)

print(Different)

Figure 6: Algorigramme : exemple dutilisation dune egalite dans un test


Il est souvent utile dorienter le programme vers des taches differentes
4

Cours dalgorithmique

en fonction de la comparaison des variables a et b. Les comparaisons sont


le plus souvent utilisees avec les tests. Les comparaisons retournent vrai
(True) ou faux (False).
Soient a et b deux variables contenant des nombres. Les principales comparaisons sont:
a == b : vrai si a=b, faux sinon,
a! = b : vrai si a different de b,
a >= b : vrai si a superieur ou egal `a b,
a >= b : vrai si a inferieur ou egal `a b,
La figure 6 donne un exemple dutilisation dun test et dune comparaison:

Les boucles
n0

non

n <= 10

oui
Afficher(n)
Quitter
nn+1

Figure 7: Algorigramme de la boucle Pour

Une boucle est un dispositif permettant de repeter une sequence doperations


un nombre controle de fois. Chaque tour dans la boucle porte le nom
diteration.

3.1

La boucle Pour

La boucle Pour est utilisee pour repeter une operation un nombre determine
de fois (par exemple afficher tous les entiers inferieurs `a 10). Cette boucle
necessite generalement (sauf en python) dy associer un compteur (variable
5

Cours dalgorithmique

enti`ere servant `
a compter le nombre diterations).
Exemple: on veut afficher les nombres entiers inferieurs `a 10 en partant de
0.

Debut
n < 0 # l e c o m p t e u r
Pour n <= 10:
Afficher (n)
n < n + 1
Fin
Lalgorigramme de la structure Pour est illustre sur la figure 7.

3.2

La boucle Tant que


x Demander(Saisir une valeur :)

non

Afficher(x)

x < 0 ou x > 100

oui

x Demander(Saisir une nouvelle valeur :)

Quitter
Figure 8: Algorigramme de la boucle Tant que

La boucle Tant que est utilisee pour repeter une operation plusieurs
fois mais sans connatre au depart le nombre de fois (cest `a dire que la boucle
sera stoppee en fonction dun crit`ere qui depend des operations effectuees).
Il est `
a noter aussi que la boucle Tant que peut etre utilisee de la meme
facon que la boucle Pour.
Exemple : un petit programme demande `a lutilisateur de saisir une valeur
6

Cours dalgorithmique

x comprise entre 0 et 100. Le programme recommence tant que la valeur


nest pas correcte.

x = Demander (" Saisir une valeur ")


Tant que x < 0 ou x > 100:
x = Demander (" Saisir une nouvelle valeur ")
Afficher (x)
Et la version algorigramme sur la figure 8.
Il nexiste pas dans le langage python de structure du type Faire tant que
contrairement `
a dautres langages. La structure Faire tant que peut de
toute facon etre obtenue avec un Tant que. La variante ci-dessous correDebut

non

True
oui
x Demander(Saisir une valeur :)

non

x < 0 ou x > 100

Afficher(x)
oui
Quitter

Quitter

Figure 9: Variante de la boucle Tant que dans une approche plus conforme
au langage python

spond davantage `
a ce qui se fait dans le langage python. Remarquez comme
lalgorithme est simple alors que lorganigramme (fig. 9) se complique!

Tant que True:


x = Demander (" Saisir une valeur ")
Si x > 0 ou x < 100:
Quitter Tant que
7

Cours dalgorithmique

Afficher (x)