Académique Documents
Professionnel Documents
Culture Documents
Introduction
• Algorithme: Procédure décrivant, étape par
étape, une méthode permettant de résoudre
un problème.
• Mot provenant du nom d’un mathématicien
arabe du IXeme siècle El-Khawarizmi
• C’est la base de tout programme informatique
• Instances du problème:
– Suite de nombres: 475, 787, 34, 245, 56, 350
– Suite de noms: Pierre, Christine, Sylvie,
Samuel, Fabien
Exemple d’un algorithme
1. x := a;
2. Si b>x, alors x := b;
3. Si c>x, alors x := c;
:= Opérateur d’assignation
y := z signifie ``copie la valeur de z dans y’’.
Valeur de z inchangée
Paramètres d’entrée: a, b, c
Valeur de sortie: x = max (a,b,c)
Pseudo-Code
Algorithme maximum: Retourne le
maximum de 3 entiers
• Entrée: Trois entiers a, b, c; Trace de l’algorithme pour:
• Sortie: x contenant la valeur maximale
parmi a, b, c a=1; b=5; c=3
x=1
1. Procédure max(a,b,c) x=5
2. x := a;
3. Si b>x alors // Si b plus grand que x, mettre x à jour
4. x := b;
5. Si c>x alors // Si c plus grand que x, mettre x à jour
6. x := c;
7. Retourner (x)
8. Fin max
Pseudo-Code: Notation proche du code des langages de
programmation (C, Pascal). Notation standard mais pas
rigoureuse
Si p alors
Si condition p vérifiée, exécuter action 1. Sinon,
action 1;
exécuter action 2.
Sinon
action 2;
= 120 = 24 =6 =2 =1
factoriel( 3 ): factoriel( 1 ):
factoriel( 2 ):
Retourne: 3. factoriel(2) Retourne: 1. factoriel(0)
Retourne: 2. factoriel(1)
1.1=1
3.2=6
2.1=2
Procédure itérative pour le calcul de n!
Entrée: Entier n≥0 Trace pour n =3 :
Sortie: n!
res = 1 courant = 3
Procédure factoriel-iteratif (n)
res = 1; courant = n; res = 3 courant = 2
Tant que courant>0 Faire
res = 6 courant = 1
res := res * courant;
courant := courant-1; res = 6 courant = 0
Fin Tant que
Retourne (res)
Fin factoriel-iteratif
Procédure récursive pour le calcul du pgcd
Entrée: a, b deux entiers >0
Sortie: pgcd(a,b) pgcd-rec(108, 72)
Procédure pgcd-rec (a,b) 108 = 72 . 1 + 36
Si b = 0 alors pgcd-rec(72,36)
Retourner (a);
36 pgcd-rec(72,36)
diviser a par b: a = b.q+r, 0 ≤ r < b;
pgcd-rec(36, 0)
Retourner (pgcd-rec (b,r))
Fin pgcd-rec 36
Trace pour a=504 et b=396: pgcd-rec(396, 108)
pgcd-rec(36, 0)
pgcd-rec(504, 396) 396 = 108 . 3 + 72
pgcd-rec(108,72) 36
504 = 396. 1 + 108
pgcd-rec(396, 108) 36
36
Nombres de Fibonacci
Exemple: Un robot peu avancer par des pas de 1 ou 2
mètres.
1 1 1
2 1,1 ou 2 2
3 1, 1, 1 ou 1, 2 ou 2, 1 3
4 1,1,1,1 ou 1,1,2 ou 1,2,1 ou 2,1,1 ou 2,2 5
• Pas(n): Nombre de Entrée: n
Donc, Pas(n) =
Séquence de Fibonacci:
Pas(n-1)+Pas(n-2)
f1 = 1
f2 = 2
fn = fn-1 + fn-2 pour n>2