Vous êtes sur la page 1sur 35

ALGORITHMIQUE

Dr. Btissam ABOURIDA


I- INTRODUCTION :

Le mot algorithme provient de la


latinisation du nom du mathématicien
arabe Alkhaouarizmi (VIIIème – IXème
siècle), personnage à qui l'on doit
également le terme algèbre.
II- DEFINITIONS :

1/ Objet :

 Un objet peut être considéré comme une boite,


portant une étiquette (son nom), d'une certaine
forme (son type) et qui contient une information
(sa valeur).

 L'objet peut être :


- soit une constante (valeur inchangée),
- soit une variable (valeur susceptible de changer).
 Le type d'un objet peut être :
- entier (valeur appartenant à Z)
- réel (valeur appartenant à IR)
- booléen (VRAI = 1 ou FAUX = 0)
- caractère ou chaîne (suite de caractères)

 Les objets de type entier ou réel sont dits


numériques. Ceux de type chaîne sont dit
alphanumériques.
2/ Environnement :

 De manière formelle: un environnement est un


ensemble fini d'objets.

 Physiquement: un environnement est la totalité


ou une partie de la mémoire d'un ordinateur qui
contient un ensemble fini d'objets.
3/ Action :
Une action sur un environnement est un
événement de durée finie, qui fait passer
l’environnement d'un état initial particulier vers
un nouvel état bien défini.

4/ Processeur :
C'est une entité capable d'effectuer un certain
nombre d'actions élémentaires (ou primitives).
5/ Algorithme :
 Un algorithme est une séquence d'opérations
(effectuées par le processeur) qui permet de faire
passer l'environnement de l'état initial à l'état final
désiré.
 La séquence peut être :
- une action primitive,
- un autre algorithme déjà connu et décrit
(procédure).
Structure d'un algorithme :
Algorithme « Nom » En tête

Const Déclaration des constantes


Var et variables
Début
………..
……….. Corps de l’algorithme
………..
Fin
6/ Pseudo-langage :

 Lecture des données: Lire <liste de données>

 Ecriture des valeurs: Ecrire <liste de résultats>

 Le calcul et l'affectation s'écrivent :


<variable> := <expression>
<variable>  <expression>
 L'opération de sélection simple s'écrit :

- Traitement unique :
Si <condition> alors <traitement> finSi

- Traitement alternatif :
Si <condition> alors <traitement 1>
sinon <traitement 2>
FinSi
 L'instruction de transfert (ou branchement)
s'écrit :
Aller à <étiquette>

 Une étiquette étant définie par :


· <nom étiquette>
 Les commentaires documentant l'algorithme
sont écrits entre accolades { }.
III- EXEMPLES :
1/ Ecrire l’algorithme qui calcule la somme et
le produit de deux nombres x et y.

2/ Ecrire l’algorithme qui calcule la somme de


n nombres entiers (s=1+2+ … +n).

3/ Calcul de la moyenne arithmétique d'une


suite de nombres positifs (s=x1+x2+ …
+xn).
Solution 1:

Algorithme SOMPRO; {Nom de l'algorithme}


Var réel x,y,s,p; {Déclaration des variables}
Début
Lire x , y; {Entrée des données x et y}
s := x + y; {Affecte la somme de x et y à s}
p := x * y; {Affecte la valeur du produit à p}
Ecrire s , p; {Ecriture des valeurs de s et p}
Fin
Solution 2:

Algorithme SOM1;
Var entier n,k,s;
Début
Lire n;
k := 0 ; s := 0;
. Boucle :
Si k < n alors k := k + 1; s := s + k ;
aller à Boucle
sinon Ecrire s;
FinSi;
Fin
Solution 3:

Algorithme MOY1;
Var entier n;
réel x,s,m;
Début
s := 0 ; n := 0; {Initialisation de s et de n avec le séparateur ;}
· Calcul : {Etiquette portant le nom Calcul}
Lire x;
Si x < 0 alors aller à CalculMoy;
sinon n := n + 1 ; s := s + x ; aller à Calcul
FinSi;
· CalculMoy :
m := s / n;
Ecrire m;
Fin
IV- REPRESENTATION GRAPHIQUE DES ALGORITHMES
(Organigrammes) :

Pour visualiser facilement les algorithmes, il est plus


commode de les représenter graphiquement (appelés
organigrammes) en utilisant les conventions suivantes:

 Marquage du début et de la fin d'un algorithme

F
 Séquence de traitement :
Traitement ou Calcul

• Lecture - Ecriture :
Entrées et Sorties
 Test :
V
Sortie si Cd. vraie
Condition

 Branchement ou transfert:
 Exemple 1:
Tracer l’organigramme permettant de calculer
la somme et le produit de deux nombres x et y.

 Exemple 2:
Tracer l’organigramme permettant de calculer la
moyenne arithmétique d'une suite de nombres
positifs : (s=x1+x2+ … +xn).
V- LA STRUCTURE DE SELECTION MULTIPLE :

1/ Structure longue :
Si p1
Alors <actions 1> Sinon
Si p2 Alors <actions 2> Sinon
...
FinSi
FinSi
2/ Structure courte :
Décider entre
p1 : <action 1>
p2 : <action 2>
...
pn : <action n>
[Autrement : <action n+1>]
FinDécider
3/ Exemple : Ecrire un algorithme qui permet
de résoudre une équation du second degré.

Algorithme RESOL;
Var entier a,b,c;
réel x,delta,racd,x1,x2;
Début
Lire a , b , c;
delta := b2 - 4*a*c;
Décider entre
delta < 0 : Ecrire 'racines complexes';
delta = 0 : x := -b/(2*a) ;
Ecrire x
delta > 0 : racd := racine(delta) ;
x1 := (-b-racd)/(2*a) ;
x2 := (-b+racd)/(2*a) ;
Ecrire x1 , x2;
FinDécider
Fin
VI- LES STRUCTURES ITERATIVES :
1/ Schéma général :

Si un même traitement s'effectue plusieurs fois, on


dit que l'on a itéré ce traitement.

Exemple: pour calculer n:=n+1, S:=S+x

L’utilisation d’une structure itératives permet de


réduire l’algorithme et de minimiser l'utilisation
des instructions de transfert.
Il existe 3 cas de traitement itératif :

 1° cas : Le test de sortie de la boucle se fait au début de cette


boucle. Dans ce cas on exécute la boucle tant qu'une condition
est vérifiée.

 2° cas : Le test de sortie de la boucle se fait à la fin de cette


boucle. On exécute alors la boucle jusqu'à ce qu'une certaine
condition soit vérifiée.

 3° cas : Le test de sortie de la boucle se fait sur un compteur


dénombrant le nombre d'itérations. On exécute alors la boucle un
nombre de fois défini à l'avance.
2/ La boucle Tant Que :

 Schéma général :

Tant que p Faire


s
FinFaire

 La séquence s s'exécute tant que la condition p est


vrai et arrêt d'exécution si p est faux.
• Organigramme de la boucle:

F
Condition

Corps de la boucle
3/ La boucle Jusqu'à :

 Schéma général :

Répéter
s
Jusqu'à p

 Dans ce cas l'itération se répète jusqu'à ce que la


condition p soit vraie.
• Organigramme de la boucle:

Corps de la boucle

V
Condition

F
4/ La boucle Pour ... Allant de :

 Schéma général:

Pour i Allant de Vd à Vf [par pas de (Inc|Déc)]


Faire <traitement>
FinPour

Avec : Vd : valeur initiale du compteur i


Vf : valeur finale du compteur i
Inc : incrément (valeur positive)
Déc : décrément (valeur négative)
 Remarques :

- L'expression par pas de est facultative si pas =1.

- Dans ce cas particulier, le nombre d'itération est


fixé par les valeurs Vd, Vf et (Inc|Déc).

- Le test de sortie de boucle se fait en début de


boucle, il se peut qu'elle ne soit jamais
exécutée.
5/ Exemples :
n
1) Ecrire un algorithme qui calcule la suite S n   k .( k  1)
k 1

2) Ecrire un algorithme qui calcule la somme des carrés des n


premiers entiers (avec n0).

3) Ecrire un algorithme qui calcule de n! (=1x2x3x ... xn)


 Solution 1:

Algorithme SUITE;
Var entier s,k;
Début
s := 0;
Lire k;
Tant que k>0 Faire
s := s + (1+k)*k;
k := k-1;
FinFaire;
Ecrire s;
Fin
 Solution 2:

Algorithme SOMCAR;
Var entier n,s,i;
Début
s := 0 ; i := 0;
Lire n;
Répéter
i := i + 1;
s := s + i*i;
Jusqu'à i>=n;
Ecrire s;
Fin
 Solution 3:

Algorithme FAC;
Var entier f,n,k;
Début
f := 1; {Initialisation de la variable fac}
Lire n;
Pour k Allant de 1 à n Faire {par défaut l'incrément = 1}
f := f * k;
FinPour;
Ecrire f;
Fin

Vous aimerez peut-être aussi