BCPST 1B2014/2015
Algorithmique.
1) Introduction.
Ce cours peut ˆetre d´econnect´e du cours de programmation en Python. Python sera un outil d’illustration,
mais ici nous pr´esentons des algorithmes classiques et d’usage universel.
Nous nous int´eresserons essentiellement `a des probl`emes simples pos´es sur des donn´ees num´eriques struc-
tur´ees dans une liste.
Nous verrons aussi des exemples d’algorithmes r´esolvant des probl`emes sur les chaˆınes de caract`eres, des
images ou permettant de simuler des variables al´eatoires `a l’aide d’un g´en´erateur de nombres pseudo-
al´eatoires.
Commen¸cons par donner les op´erations constituant un algorithme (ce sont les r`egles du jeu) :
a) Lecture d’une valeur dans une variable ou dans un ´el´ement d’une liste.
b) Evaluation d’une expression num´erique avec +, −,∗et /.
c) Affectation d’une valeur `a une variable ou `a un ´el´ement d’une liste. (on utilisera la notation : ←)
d) Comparaison de deux valeurs num´eriques <, = ,6= et >
e) Branchement conditionnel (Si ...)
f) Boucle it´erative (Pour ...)
g) Boucle conditionnelle (Tant que ...)
Dans les algorithmes ´etudi´es nous n’utiliserons (”presque”) que cela,
Les valeurs num´eriques seront enti`eres ou r´eelles.
Remarque : Pour s’entrainer avec la num´erotation Python nous utiliserons la num´erotation de 0 `a n−1.
L(0 : n−1) = (L(0), L(1), ...., L(n−1)) pour une liste de longueur n,
T(0 : n−1) =0T(0)T(1) · · · T(n−1)0pour une chaˆıne de caract`eres de longueur n.
Exemple :
Entr´ees :n: un entier.
Variables :i: un entier, x: un r´eel, L(0 : n−1) : une liste de nombre r´eels.
D´ebut
i←0
Tant que i<nfaire
L(i)←i∗i
i←i+ 1
x←x+L(0)
Pour iallant de 1`a n−1faire
x←L(i)
Sorties : La valeur de x
Remarque importante : L’ensemble des algorithmes de ce cours sont explicitement au programme.
Vous devez ˆetre capable de tous les r´e´ecrire et de les expliquer.
1