Vous êtes sur la page 1sur 23

15/02/2013

1
1
INTRODUCTION ALGORITHME
1
re
PARTIE
Mr KHATORY
(GIM 1 A)

Selon le LAROUSSE, la dfinition dalgorithme est un ensemble de rgles opratoires dont
lenchanement permet de rsoudre un problme au moyen dun nombre fini doprations.

Quelques points importants :

Un algorithme dcrit un traitement sur un ensemble fini de donnes de nature simple (nombres ou
caractres), ou plus complexes (donnes structures)

Un algorithme est constitu dun ensemble fini dactions composes doprations ou actions
lmentaires. Ces actions lmentaires doivent tre effectives (ralisable par la machine), non
ambigus.

Un algorithme doit toujours se terminer aprs un nombre fini doprations.

Lexpression dun algorithme ncessite un langage clair (comprhension) structur (enchanements
doprations) non ambigu, universel (indpendants du langage de programmation choisi)

Problme : un tel langage nexiste pas, on dfinit son propre langage.
INTRODUCTION ALGORITHME
I. Notion dAlgorithme:
Du mathmaticien persan Al-Khawa-Rizm (Bagdad, 780 850)
Pour les notions de Al-Jabr (Algbre) thorie du calcul
2
15/02/2013
2
Analyse descendante : (ou programmation structures) : on dcompose un problme complexe en
sous problmes et ces sous problmes en dautres sous problmes jusqu' obtenir des problmes
faciles a rsoudre.

On rsout les sous problmes simples sous forme dalgorithme puis on recompose les algorithmes pour
obtenir lalgorithme global du problme de dpart.

Garder lesprit :
La modularit : un module rsout un petit problme donn. Un module doit tre rutilisable.

Lisibilit de lalgorithme (mise en page, commentaires, spcification : dire quoi mais pas comment)

Attention la complexit de lalgorithme :

Complexit en temps : mesure du temps dexcution en fonction de la taille des donnes
Complexit en espace : espace mmoire ncessaire pour effectuer les traitements.

Ne pas rinventer la roue (c'est--dire ne pas refaire les programmes standard dont les solutions sont
connues) ce qui implique avoir une certaine culture et un outil technique standard.

II. Mthodologie de conception dun algorithme :
INTRODUCTION ALGORITHME
3
Un algorithme est constitu:
d'un entte compos du MOT Rserv ALGORITHME et d'un nom de l'algorithme
raliser
d'une zone de dclaration des identificateurs (variables) utiliss dans l'algorithme
et d'un corps dlimit par deux mots rservs DEBUT et FIN. C'est ici qu'on crit les
actions de l'algorithme
Structure dun algorithme
ALGORITHME <NOM>
<Dclaration des variables>
DEBUT
<Actions>
FIN
ALGORITHME addition
VAR a,b,c :ENTIER
DEBUT
LIRE(a,b)
ca+b
ECRIRE(c)
FIN
4
15/02/2013
3
Un algorithme ou une action manipule des donnes pour obtenir un rsultat.
Pour cela on manipule des objets simples ou structurs.

Un objet va tre caractris par :

un identificateur (son nom) : pour le dsigner cet identificateur doit tre parlant :
q=quotient,R=Reste,Moy=Moyenne,ADR=Adresse.

Un type (nature de lobjet : entier, caractre) simple ou structur. Un type dtermine en
particulier les valeurs possibles de lobjet et les oprations primitives applicable lobjet.
R: ENTIER
CAR: CARACTERE ; ADR: CHAINE

Une valeur (contenu de lobjet) unique. Cette valeur peut varier au cours de lalgorithme ou
dune excution lautre : ces objets sont des variables.

Dans les cas contraires (valeur fixe) ce sont des constantes. Tous les objets manipuls par un algorithme
doivent tre clairement dfinis :
Mots clefs
CONST : PI=3.14
VAR a, b : ENTIER
x, y : CARACTERE

a, b, x, y sont des identificateurs
I. Notion dobjet :
ELEMENT DE BASE DALGORITHME
5
CONST PI=3.14
NOM="PASCAL"
Une variable est un objet dont le contenu peut tre modifi par une action
Une constante est un objet dont ltat reste inchang durant toute
lexcution dun programme
REEL : Pour reprsenter les nombres rels.
ENTIER: Pour reprsenter les nombres entiers
Exemples:
VAR Classement : ENTIER
Moyenne : REEL
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Notion dobjet
6
15/02/2013
4
1. Constantes et variables
2. Type logique
Une variable de type logique (boolen) peut prendre deux
valeurs VRAIE ou FAUSSE.
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
VAR EXISTE :BOOLEEN
EXISTE VRAIE
Les oprations principales les plus utilises sont :
Les oprateurs logiques: NON, ET , OU
Oprateurs de comparaison : = , , ,

VAR A , B , TROUVE :BOOLEEN
TROUVE (A ET B)
VAR X,Y: REEL
SUP :BOOLEEN
SUP ( X > Y)
Notion dobjet
7
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Il s'agit du domaine constitu des caractres alphabtiques
et numriques
VAR C : CARACTERE
C A
Notion dobjet
8
15/02/2013
5
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Une chaine de caractre est un objet qui peut contenir
plusieurs caractres de manire ordonne
VAR NOM : CHAINE[30] Chaine de 30 caractres (maximum)
ADRESSE : CHAINE Chaine de 128 caractres maximum
Notion dobjet
9
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Un type numr est un type permettant de reprsenter des objets
pouvant prendre leur valeur dans une liste finie et ordonne de
noms.
TYPE SEMAINE=(lundi, mardi, mercredi, jeudi, vendredi, samedi,
dimanche)
TYPE COULEUR=(rouge, vert, bleu)

Notion dobjet
10
15/02/2013
6
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Un type intervalle est un type dont les objets prennent leur valeur dans
une portion de lintervalle des valeurs dun autre type (entier, numr
ou caractre).
Exemple : NBRE=0..99
OUVRABLE=lundi..vendredi

Notion dobjet
11
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
Une structure est un objet contenant un ensemble dobjets de
types diffrents, appels champs. Un type doit donc dcrire
lensemble des champs contenus dans ses objets.
Notion dobjet
Exemple :
STRUCTURE ETUDIANT
{ NOM : CHAINE
NOTE : REEL
Classement :ENTIER
}
12
15/02/2013
7
1. Constantes et variables
2. Type logique
3. Type CARACTERE
4. Type CHAINE DE CARACTERE
5. Type numrs
6. Type intervalles
7.Type structurs
8. Type pointeur
PLUSTARD !!
Notion dobjet
13
Actions lmentaires : oprations simple, directement utilisable.

A. Affectation

Permet de donner une valeur une variable :

A 28 reoit Si A avait une valeur auparavant, cette valeur disparat : elle est crase par 28

Format gnral :
<id_variable> <expression> A28+13
Les types <id_variable> et <expression> doivent tre compatibles.

Attention : AB+2
B doit avoir une valeur. Or au dbut dune action, les variables ont une valeur indtermine; B doit
avoir t initialis.

II. Actions lmentaires :
ELEMENT DE BASE DALGORITHME
A = 28
It's FALSE !!
14
15/02/2013
8
Actions lmentaires : oprations simple, directement utilisable.

A. Affectation

Permet de donner une valeur une variable :

A 28 reoit Si A avait une valeur auparavant, cette valeur disparat : elle est crase par 28

Format gnral :
<id_variable> <expression> A28+13
Les types <id_variable> et <expression> doivent tre compatibles.

Attention : AB+2
B doit avoir une valeur. Or au dbut dune action, les variables ont une valeur indtermine; B doit
avoir t initialis.
B. Les oprations en entre/ sortie

Elles permettent de rcuprer une valeur venant de lextrieur (lecture) ou de transmettre une
valeur lextrieur (criture) .
II. Actions lmentaires :
ELEMENT DE BASE DALGORITHME
VAR A, B : ENTIER
LIRE (A, B)
ECRIRE (A+B)
VAR A, B, C : ENTIER
LIRE (A, B)
CA+B
ECRIRE (C )
plus rapide
15

Une action dcrit un enchanement dactions lmentaires. Lenchanement
est dcrit par les structures de contrle.
III.Les structures de contrle conditionnelles :
Une structure de contrle dj vue : lenchanement squentiel LIRE (A, B)
C 2*A + B
La plupart des autres structures de contrle utilisent la notion de condition (expression
boolenne) :

Une condition a une valeur qui est, soit vraie, soit fausse.

Pour dterminer la ralit de cette valeur on utilise :

les oprateurs de comparaisons : =, , ,
les oprateurs boolens (logique) : ET, OU, NON
ELEMENT DE BASE DALGORITHME
Exemple:
SUP (A > B) SUP prend la valeur vraie si A est suprieur B
16
15/02/2013
9
Elle permet deffectuer tel ou tel traitement en fonction de la valeur dune condition.

Syntaxe :
SI <condition> SI <condition>
ALORS < action _alors> ALORS < action _alors>
FINSI SINON < action _sinon>
FINSI

Remarque, la ligne SINON <action_sinon> est facultative.

Principe de fonctionnement :
1 : la condition est value
2 : Si la condition a la valeur vrai on excute <action_alors>
Si la condition a la valeur fausse on excute <action_sinon>

A. Lalternative SI-ALORS-SINON

ELEMENT DE BASE DALGORITHME
Remarque :
Les <action_alors> ou <action_sinon> peuvent tre soit :
- des actions lmentaires
- des composes (bloc)
III.Les structures de contrle conditionnelles :
Exemple :
LIRE (note)
SI note 10
ALORS ECRIRE(Admis)
SINON ECRIRE( Ajourn)
FINSI
17
CONDITIO
N
?
Action_alors
ELEMENT DE BASE DALGORITHME
Alternative Simple
CONDITIO
N
?
Action_alors
Vraie
SI :
ALORS:
FINSI:
ORGANIGRAMME
18
15/02/2013
10
CONDITIO
N
?
Action_alors
ELEMENT DE BASE DALGORITHME
Alternative Simple
CONDITIO
N
?
Vraie
Fausse
SI :
ALORS:
FINSI:
ORGANIGRAMME
19
ELEMENT DE BASE DALGORITHME
SINON:
SI:
ALORS:
FINSI:
Saut
Alternative Complte
ORGANIGRAMME
Action_sinon
CONDITION
?
Action_alors
Vraie
Fausse
20
15/02/2013
11
Action_sinon
CONDITION
?
Action_alors
Vraie
Fausse
ELEMENT DE BASE DALGORITHME
SINON:
CONDITION
?
Action_alors
Vraie
Fausse
SI:
ALORS:
FINSI:
Saut
Alternative Complte
ORGANIGRAMME
Action_sinon
21
SINON:
FINSI:
Action_sinon
CONDITION
?
Action_alors
Vraie
Fausse
ELEMENT DE BASE DALGORITHME
SINON:
CONDITION
?
Fausse
SI:
ALORS:
FINSI:
Alternative Complte
ORGANIGRAMME
Action_sinon
22
15/02/2013
12
ELEMENT DE BASE DALGORITHME
Alternative Simple
Condition ?
Action_alors
Vraie
Fausse
SI :
ALORS:
FINSI:
SINON:
Action_sinon
Condition ?
Action_alors
Vraie
Fausse
SI:
ALORS:
FINSI:
Saut
Sinon
Alternative Complte
ORGANIGRAMME
23
B. Structure choix multiples SELON-QUE
ELEMENT DE BASE DALGORITHME
Syntaxe :
SELONQUE
<condition 1> : <action 1>
<condition 2> : <action 2>

<condition n> : <action n>
SINON : <action_sinon>
FINSELONQUE
Exemple :
SELONQUE
Note 16 : ECRIRE(TB)
Note 14 : ECRIRE(B)
Note 12 : ECRIRE(AB)
Note 10 : ECRIRE(Passable)
SINON : ECRIRE(ajourn)
FINSELONQUE
Fonctionnement :

la condition 1 est value :
- Si la condition 1 est vraie, alors on excute laction correspondante et on quitte la structure
selon-que
- Si la condition 1 est fausse , on value la condition 2et ainsi de suite.
- Si aucune nest vraie on effectue laction sinon.
Remarque : en programmation, cette structure peut exister mais avec une forme ou un
fonctionnement ventuellement diffrent. Si elle nexiste pas, il faut se souvenir que, en fait,
SELON QUE est un raccourci dcriture pour des SI imbriqus
24
15/02/2013
13
ELEMENT DE BASE DALGORITHME
IV. Structures rptitives :
Ide : rpter un ensemble doprations, arrter la rptition en
fonction dune condition
A. La structure TANT QUE :

Syntaxe :
TANTQUE <condition>
FAIRE <actions>
FINTANTQUE

Laction peut tre simple ou compose

Fonctionnement :

1 : la condition est value
2 : si la condition est fausse : cest fini, on quitte le tant que
3 : si la condition est vraie, on excute le contenu du tant que
puis on remonte ltape 1 tester de nouveau la condition
Exemple :
i1
TANTQUE i10
FAIRE
ECRIRE (i*i)
ii+1
FINTANTQUE

Afficher les dix premiers carrs
25
B. Structure REPETER JUSQUA :
ELEMENT DE BASE DALGORITHME
IV. Structures rptitives :
Syntaxe :
REPETER
<actions>
JUSQUA <condition>
Fonctionnement :

1 : on excute le corps(actions)
2 : on value la condition
3 : si Vraie : on quitte le rpter
4 : si Fausse on recommence
Remarques :

Il y a toujours au moins une excution du corps. La structure rpter permet de
rpter un traitement 1 ou plusieurs fois.
26
15/02/2013
14
Actions Actions
CONDITIO
N
?
ELEMENT DE BASE DALGORITHME
BOUCLE TANTQUE
CONDITION
?
Vraie
TANTQUE :
FAIRE
ORGANIGRAMME
FINTANTQUE :
27
Actions Actions
CONDITIO
N
?
ELEMENT DE BASE DALGORITHME
BOUCLE TANTQUE
CONDITION
?
Vraie
TANTQUE :
FAIRE
ORGANIGRAMME
FINTANTQUE :
28
15/02/2013
15
Actions Actions
CONDITIO
N
?
ELEMENT DE BASE DALGORITHME
BOUCLE TANTQUE
CONDITION
?
Vraie
TANTQUE :
FAIRE
ORGANIGRAMME
FINTANTQUE :
29
Actions
CONDITION
?
ELEMENT DE BASE DALGORITHME
BOUCLE TANTQUE
CONDITION
?
Vraie
TANTQUE :
FAIRE
ORGANIGRAMME
FINTANTQUE :
FAUSSE
30
15/02/2013
16
Actions
CONDITION
?
Vraie
REPETER :
JUSQUA :
FAUSSE
Actions
ELEMENT DE BASE DALGORITHME
BOUCLE REPETER
Vraie
REPETER :
ORGANIGRAMME
JUSQUA :
FAUSSE
CONDITION
?
La condition
est fausse
Excution
d'abord d'actions
31
Actions
CONDITION
?
Vraie
REPETER :
JUSQUA :
FAUSSE
Actions
ELEMENT DE BASE DALGORITHME
BOUCLE REPETER
Vraie
REPETER :
ORGANIGRAMME
JUSQUA :
FAUSSE
CONDITION
?
La condition
est fausse
32
15/02/2013
17
Actions
CONDITION
?
Vraie
REPETER :
JUSQUA :
FAUSSE
Actions
ELEMENT DE BASE DALGORITHME
BOUCLE REPETER
Vraie
REPETER :
ORGANIGRAMME
JUSQUA :
FAUSSE
CONDITION
?
La condition
est vraie !!
33
Vraie
Condition ?
Actions
Fausse
TANTQUE
FAIRE
FINTANTQUE
ELEMENT DE BASE DALGORITHME
Boucle TANTQUE Boucle REPETER
ORGANIGRAMME
Actions
Vraie
Fausse
REPETER
JUSQUA
Condition ?
34
15/02/2013
18
C. Structure POUR
ELEMENT DE BASE DALGORITHME
IV.Structures rptitives :
Elle permet de parcourir un intervalle en rptant un traitement pour chacune des
valeurs de cet intervalle.
Syntaxe :

POUR <id_variable> DE <val_infrieure> A <val_suprieure>
[ par pas de <val_pas>] facultatif
FAIRE <actions>
FINPOUR
Fonctionnement :

1 : Automatiquement Au dpart , on a id_variable val_infrieure
Donc, on na pas besoin dinitialiser, la structure se charge de la faire
2 : id_variable > val_suprieure ?
Si oui, alors STOP, on quitte la structure
Sinon :
on excute le programme
automatiquement, lincrmentation se fait (+1 ou +pas si lon a dfinit un
pas particulier, par dfaut, le pas est 1)
on remonte au dbut du 2 tester la condition id_variable > val_suprieure ?

35
ELEMENT DE BASE DALGORITHME
IV.Structures rptitives :
POUR <id_variable>
DE <val_infrieure>
A <val_suprieure>
[ par pas de <val_pas>
FAIRE <actions>
FINPOUR
STRUCTURE POUR

Fact 1
POUR i DE 1 A n
FAIRE fact fact*i
FINPOUR

Exemple :Factorielle de n : n!=1*2*3..*(n-1)*n
36
15/02/2013
19
id_variable = val_infrieure
Id_variable
>
val_suprieure ?

actions
id_variable id_variable +val_pas
FAUSSE
VRAIE
id_variable id_variable +val_pas
id_variable val_infrieure
Id_variable
>
val_suprieure ?

actions
FAUSSE
VRAIE
val_infrieure val_suprieure !!

BOUCLE POUR
37
id_variable = val_infrieure
Id_variable
>
val_suprieure ?

actions
id_variable = id_variable +val_pas
FAUSSE
VRAIE
id_variable val_infrieure
Id_variable
>
val_suprieure ?

actions
id_variable id_variable +val_pas
FAUSSE
VRAIE
val_infrieure val_suprieure !!

BOUCLE POUR
38
15/02/2013
20
id_variable = val_infrieure
Id_variable
>
val_suprieure ?

actions
id_variable id_variable +val_pas
FAUSSE
VRAIE
id_variable id_variable +val_pas
id_variable val_infrieure
Id_variable
>
val_suprieure ?

actions
FAUSSE
VRAIE
val_infrieure val_suprieure !!

BOUCLE POUR
39
V.Procedures et Fonctions :
ELEMENT DE BASE DALGORITHME
Un algorithme est compos dun ensemble fini dactions. En fait, on distingue :
les Procedures (ou ACTIONS) qui ralisent un traitement ( tri du fichier tudiant)
les fonctions qui effectuent un calcul et retournent un rsultat
Syntaxe

PROCEDURE <nom_procedure> <( Liste des paramtres)>
< dclaration des objets locaux de la procedure>
DEBUT
{corps de la procedure}
FIN
A. PROCEDURE
Il existe deux types de paramtres transmis:
par valeur
par rfrence
40
15/02/2013
21
ELEMENT DE BASE DALGORITHME
V.Procedures et Fonctions :
Exemple dune Procedure
Ecrire un algorithme dune procdure qui change deux variables A et B
PROCEDURE Echange( var A, B: REEL)
VAR C : REEL
DEBUT
C A
A B
B C
FIN
Nom procedure
A et B: Variables par rfrence
C: Variable locale
41
Syntaxe

FONCTION <nom_fonction> ( <liste des paramtres> ) : <type de rsultat>
< dclaration des objets locaux la fonction>
DEBUT
{ corps de la fonction}
RETOURNER(resultat )
FIN
ELEMENT DE BASE DALGORITHME
V.Procedures et Fonctions :
B. FONCTIONS
Exemple dune Fonction
Ecrire une fonction maximum qui donne (Retourne ) le maximum de deux entiers :
Ne Pas oublier !!
42
15/02/2013
22
FONCTION maximum (x, y: ENTIER) : ENTIER
VAR max :ENTIER
DEBUT
SI x < y
ALORS max y
SINON max x
FINSI
RETOURNER (max)
FIN
ELEMENT DE BASE DALGORITHME
Procedure qui affiche le minimum et le
maximum de deux entiers, en faisant
appel la fonction maximum
Fonction qui dtermine le maximum de
deux entiers
PROCEDURE minETmax( a,b: ENTIER)
VAR Min,Max:ENTIER
DEBUT
Min -maximum (-a, -b)
Max maximum (a, b)
ECRIRE (min, max)
FIN
V.Procedures et Fonctions :
Exemple:
43
La rcursivit consiste remplacer une boucle par un appel la
fonction elle-mme.

Exemple :

Considrons la suite factorielle, elle est dfinie par :

0!=1
n! = (n-1)! * n


La fonction peut s'crire simplement

FONCTION factorielle (n: ENTIER):ENTIER
DEBUT
SI (n=0)
ALORS retourner(1)
SINON retourner( factorielle(n-1) *n)
FINSI
FIN
ELEMENT DE BASE DALGORITHME
V.Procedures et Fonctions :
Fonction rcursive:
factorielle(0)=1
factorielle(n)= factorielle(n-1) *n
44
15/02/2013
23
FIN
ET
MERCI
TABLEAUX
45