Professional Documents
Culture Documents
Chap 3 Structure Algorithmique
Chap 3 Structure Algorithmique
Introduction
Nous allons étudier dans le cadre de ce cours quatre structures algorithmiques
I. Structure linéaire
I.2- Algorithme linéaire ou séquentielle
Elle est caractérisée par une suite d’instructions à exécuter successivement dans l’ordre énoncé.
Les actions successives sont mentionnées les unes après les autres.
Algorithme Somme_Nombre
Variables
a, b : réel ;
s : réel ;
Début
Afficher (‘Saisir le nombre a ‘) ;
Saisir (a) ;
Afficher (‘Saisir le nombre b ‘) ;
Saisir (b);
s←a+b;
afficher (s) ;
Fin
Il va de soi que l’ordre dans lequel les instructions sont écrites va jouer un rôle essentiel dans le
résultat final. Considérons les deux algorithmes suivants :
Exemple 1
Variable A en Numérique
Début
A ← 34
A ← 12
Fin
Exemple 2
Variable A en Numérique
Début
A ← 12
A ← 34
Fin
Il est clair que dans le premier cas la valeur finale de A est 12, dans l’autre elle est 34. Ceci ne doit
pas nous étonner. Lorsqu’on indique le chemin à quelqu’un, dire « prenez tout droit sur 1km, puis à
droite » n’envoie pas les gens au même endroit que si l’on dit « prenez à droite puis tout droit pendant
1 km ».
Enfin, il est également clair que si l’on met de côté leur vertu pédagogique, les deux algorithmes ci-
dessus sont parfaitement impertinents ; à tout le moins ils contiennent une incohérence. Il n’y a aucun
intérêt à affecter une variable pour l’affecter différemment juste après. En l’occurrence, on aurait
tout aussi bien atteint le même résultat en écrivant simplement :
1
--- Algo 18-19
Exemple 1
Variable A en Numérique
Début
A ← 12
Fin
Exemple 2
Variable A en Numérique
Début
A ← 34
Fin
Dans cette structure, l’exécution d’un des deux traitements distincts ne dépend que du résultat d’un
test effectué sur la condition qui peut être une variable ou un événement.
2
--- Algo 18-19
1. Structure POUR…FAIRE
On connaît le nombre d’itérations.
3
--- Algo 18-19
Algorithme bizarre
Var i : Entier;
Début
Pour i allant de 1 à 10
Faire
Ecrire (‘’ Bonjour’‘) ;
Fin Pour
Fin
Algorithme
contrôle_saisie
Var n : Réel;
Début
Répéter
Ecrire (‘’ nombre :’’);
Lire (n) ;
Jusqu’à n < 0;
Fin
Remarque : la vérification de la condition s’effectue après les actions. Celles-ci sont donc exécutées au moins
une fois.
4
--- Algo 18-19
IV. La structure parallèle
La structure de parallélisme permet d’effectuer simultanément un ensemble fini d’action. Elle
s’effectue sous la forme suivante.
En parallèle faire
Action 1
Action 2
…
Action n
Fin Parallèle
Pour mieux comprendre cette instruction, sa sémantique consiste à exécuter en même temps les
actions action 1, action 2,…., action n. Puis sortir de la structure.
Important :
Pour éviter les conflits lors de l’exécution de cette structure, on impose que les actions
à exécuter en parallèle soient totalement indépendantes. En d’autres termes, deux
actions de la structure ne doivent ni lire, ni accéder aux mêmes variables. Compte tenu
de la complexité de cette structure et de son apport important dans l’optimisation du
temps d’exécution des programmes, l’algorithmique du parallélisme est devenu un
domaine spécifique et très fécond de l’informatique.
6
--- Algo 18-19
Considérons l’exemple-1 suivant :
{Début}
S:= 0 ; I : =1 ; N:=10 {"1"}
while I <= N do {"2"}
S = S +K[I] {"3"}
I = I+1 {"4"}
end do; {End}
Le temps d’exécution nécessaire pour cet algorithme t(n), composé de plusieurs
temps de chaque instruction. Nous supposons que :
• t1 est le temps d’exécution entre le début et la lecture des différentes
variables d'initiation {"1"}
• t2 représente le temps d’exécution de la comparaison {"2"}
• t3 est le temps d’exécution de l’action {"3"}
• t4 est le temps d’exécution de l’action {"4"}
Sachant que le temps t2, t3, t4 sont bien définis et inchangés durant l'exécution
de cette ligne. Par ailleurs ces temps représentent une boucle qui se répète n fois. Donc
le temps nécessaire pour l'exécution de la boucle est donné par :
n*tb avec tb= t2 + t 3 + t 4
De ce fait, le temps d’exécution t(n) de cet algorithme s’écrit :
t(n) = t1+ t 2+n * tb
Ce qui signifie que le temps d’exécution dépend linéairement de la taille n.
2 Évaluation temporelle
L'évaluation temporelle d'un algorithme peut avoir plusieurs possibilités parmi
elles lorsqu'il s'agit d'une :
• Somme des temps : l'exécution de trois actions l'une après l'autre ou chaque action demande
un temps de traitement relatif,
Action 1 : Traitement 1 (t1)
Action 2 : Traitement 2 (t2 ) temps d'exécution : tn = t1+ t2+ t3
Action 3 : Traitement 3 (t3)
• Maximum de temps exp : c'est dans le cas d'une boucle avec la condition si
Note : d'une manière générale, les performances asymptotiques des algorithmes dépendent
principalement du nombre de variables, n, et la taille du problème, en négligeant les termes de degré
inferieur par exemple :
y(n) = n3 + 3n2 + 4 n + 10 est une complexité d'ordre O(n3)
y(n) = n log n + 12 n + 17 est une complexité d'ordre O(n log n)