Vous êtes sur la page 1sur 74

ALGORITHMIQUE

ALGORITHMIQUE
EXEMPLES D’ALGORITHME
I.INTRODUCTION :
1) Généralités :
a) Algorithme et programme :
b) Langage de programmation :
2) Les étapes de création des programmes :

Demande 1
du client

Analyse Ecriture de
l’algorithme
2

Création du
programme 3
Conception

Génération
de 4
l’exécutable
3) Démarche algorithmique :
a) Phase analyse :

b) Phase conception :

 Phase analyse .

 Phase conception.
4) Exemple d’analyse d’un problème :

 Problème :

Etant donnés la largeur et la longueur d’un


rectangle.
Calculez sa surface.
 Analyse :
 Les données connues sont :
la Largeur et la Longueur.

 Le résultat cherché est :


la surface du rectangle.

 Le traitement:
Surface = Longueur X Largeur
 Conception :

1. Entrer: la largeur et la longueur du rectangle.

2. Calculer : Surface du rectangle = largeur X


longueur.

3. Sortir : la surface du rectangle.


5) Exercice :
 On veut qu’un ordinateur s’occupe de nous calculer:
 Le rayon d’un disque
 Les solutions d’une équation de deuxième degré avec un seul inconnu
ax2+bx+c
 Si un élève est admis ou non selon sa moyenne.
 Remplir le tableau suivant :

Grandeurs Données qu’il faut Résultats attendu de Traitement


calculés entrer à l’ordinateur l’ordinateur
Rayon d’un    
disque
Solutions de    
l’équation
L’admission de    
l’élève
6) Notion de variable :

Application qui cherche le max entre deux


nombres saisies au clavier et affiche le
maximum.
1. Saisir deux nombres qui sont inconnues et
peuvent changer d’un utilisateur à un autre.
2. Stocker ces deux nombres dans la mémoire.
les nombres inconnues qui change : les variables

La déclaration des variables : nom + type

Le type peut être : nombre, texte, date…


II. LES INSTRUCTIONS DE BASE :
1) Notion de données :

Type
Nom
Natured’une
Utilisation donnée :
d’une
d’une donnée :
donnée:
donnée :

(Exp :(Exp :
(Exp : entier,
(Exp : Prix_Unitaire,
réel,
Données, caractère, PU, dePrix1,
chaine
Résultats,
Constante, caractère,
Données
P1…..).
bouléen,……..).
intervenantes…..).
Variable…..).
2) Instructions simples  :
a) L’affectation :

Syntaxe : Nom_Variable  Expression;


Exemples :
A3 ;
B  4*A+0.5 ;
Test  A<B ;
Nom   ’’Ahmed’’;
b) Instruction de lecture

Syntaxe : LIRE (variable);

Exp : LIRE(Nom);
LIRE (A,B,C);
c) Instruction d’écriture

Syntaxe : ECRIRE (’’Message’’ , Variable);

Exp : ECRIRE (’’Donnez le rayon du cercle’’) ;


ECRIRE (’’La surface du cercle est :’’,S) ;

msg  ’’Bonjour’’
ECRIRE (msg);
3) Les opérateurs :

a) Opérateurs numériques :
b) Opérateurs alphanumériques :
c) Opérateurs logiques :

ET ; OU ; NON; OU EXCLUSIF
A
+B ; - ; * &
; AND
/; ;+%; *; ^; OR XOR
0 0 0 0 0
0 "bon"+ >,<,=,<>,>=,<=
"jour" 
 "stop"  *1 3 0 « stopstopstop"
1 1
"Bonjour"
1 "bon"& "jour" 
0 0 1 1
1 1 1 1 0
 EXEMPLE D’OPERATEURS LOGIQUES :

7>5 ET 2<4 VRAI

3=5 ET 2<4 FAUX

2>5 OU 2<4 VRAI

3=5 OU 2>4 FAUX


III.STRUCTURE D’UN ALGORITHME
1) Composition :
Un en tête « ALGORITHME »

Un bloc de déclaration des données

Un bloc d’instructions « DEBUT » « FIN »


2) Structure :
ALGORITHME ……………………….; En tête de l’algorithme

Variable
Bloc de déclaration des données
………………………. ;

DEBUT
……………………….;
Bloc d’instructions
……………………….;
……………………….;
FIN
3) Organigramme :

Forme Interprétation

Début / Fin

Lecture / écriture

Traitement

Test
4) Exemple d’application :
 On se propose d’écrire un algorithme qui
calcule la somme et le produit de deux
données numériques.
solution :

ALGORITHME Somme_Produit ;
VARIABLE
a, b : Réel ;
S, P : Réel ;
DEBUT
ECRIRE (’’Donnez deux nombres svp :’’) ;
LIRE (a,b);
Sa + b ;
Pa x b ;
ECRIRE (’’la somme des deux nombres est :’’,S) ;
ECRIRE (’’le produit des deux nombres est :’’,P) ;
FIN
L’organigramme : Début

LIRE (a,b);

Sa + b ;
Pa x b ;

ECRIRE (S) ;
ECRIRE (P) ;

Fin
Exercices d’application:
EXERCICE 1:
Ecrire un algorithme qui permet de saisir et
d’afficher les informations suivantes:
 Nom:
 Prénom:
 Age :
 Note physique:
 Note mathématique:
EXERCICE 2:
 Ecrire un algorithme et qui permet de calculer
et d’afficher la moyenne de trois notes saisies
par le clavier.
III. LES STRUCTURES SELECTIVES:

1) Généralités  :

a) Structure séquentielle :

b) Structure conditionnelle :
2) Alternative simple (choix unitaire) :

Syntaxe :

Si condition Alors instructions FINSI

Explication :
3) Organigramme :

N
Test

Traitement
Exemple :

 Ecrire un algorithme qui permet de dire si la


division entre deux nombre A et B (A/B) est
possible.
Solution:

SI (B=0) Alors
Ecrire("la division est impossible");
FINSI
Organigramme  :

N
B=0

O
Ecrire(‘la division
est impossible’);
Algorithme :
ALGORITHME Division ;
VARIABLE
A, B : Réel ;
DEBUT
ECRIRE (‘Donnez la valeur de A :’) ;
LIRE (A);
ECRIRE (‘Donnez la valeur de B :’) ;
LIRE (B);
SI (B=0) Alors
Ecrire(‘la division est impossible’);
FINSI
FIN
2) Alternative complète (choix binaire):
Syntaxe :

Si condition Alors
Instruction1 ;
………
SINON
Instruction2;
………
FINSI
3) Organigramme :

N
Test

Traitement 1 Traitement 2
Exemple :

 Ecrire un algorithme qui demande un nombre


à l’utilisateur, et l’informe ensuite si ce
nombre est positif ou négatif.
Solution:

Si (A>0) Alors
Ecrire("A est un nombre positif");
SINON
Ecrire("A est un nombre négatif");
FINSI
Organigramme  :

N
A>0

O
Ecrire(‘A est un Ecrire(‘A est un
Traitement 1
nombre positif’); nombre négatif’);
Solution:
ALGORITHME Positif_négatif;
VARIABLE
A  : Réel ;
DEBUT
ECRIRE (‘Donnez la valeur de A :’) ;
LIRE (A);
Si (A>0) Alors
Ecrire(‘A est un nombre positif’);
SINON
Ecrire(‘A est un nombre négatif’);
FINSI
FIN
4) Alternative imbriquées :
Syntaxe :

Si condition 1 Alors
Instruction1 ;
SINON
Si condition 2 Alors
Instruction2;
SINON
……..
Instruction3;
FINSI
FINSI
3) Organigramme :

O
Test 1

O
Test 2

Traitement 3 Traitement 2 Traitement 1


Exemple :

 Ecrire un algorithme qui, étant donné la


température de l’eau il permet de donner son
état (solide, liquide ou gazeuse).
solide liquide gaz

0° 100°

OUI
Solide

T<0 OUI
Liquide

T<100
NON

Gazeuse
NON
SI (T<0) ALORS
ECRIRE("l’état de l’eau est solide");
SINON
SI (T<100) ALORS
ECRIRE("l’état de l’eau est liquide");
SINON
ECRIRE("l’état de l’eau est gazeuse");
FINSI
FINSI
Organigramme  :

O
T<0

O
T<100

N
ECRIRE(‘l’état de ECRIRE(‘l’état
Traitement 1de ECRIRE(‘l’état de
l’eau est gazeuse’); l’eau est liquide’); l’eau est solide’);
5) Choix multiple :
Syntaxe :
CAS Expression VAUT
VAL1  : instruction 1 ;
VAL2  : instruction 2 ;
……..
VALN  : instruction n ;
AUTRE : instructions a;
FINCAS
3) Organigramme :

O
Test 1 Traitement 1

O
Test 2 Traitement 2

O
Test 3 Traitement 3

Traitement 4
Exemple:

On se propose d’écrire un algorithme qui affiche


un message selon la couleur du feu.

 Si la couleur est rouge : "Je m’arrête"


 Si la couleur est orange : "Je ralentis"
 Si la couleur est verte : "Je passe"
Solution:

CAS couleur VAUT


"VERT" : ECRIRE ("Je passe ") ;

"ORANGE" : ECRIRE ("Je ralentis ") ;


"ROUGE" : ECRIRE ("Je m’arrête ") ;

FINCAS
Algorithme gestion_Feu ;
Variables
Couleur : Caractère ;
DEBUT
ECRIRE(" De quelle valeur est le feu ? ") ;
LIRE(Couleur);
CAS Couleur VAUT
"VERT "  : ECRIRE (" Je passe ") ;
" ORANGE "  : ECRIRE (" Je ralentis ") ;
" ROUGE "  : ECRIRE (" Je m’arrête ") ;
FINCAS
Fin
Exercices d’application:
EXERCICE 1:

On se propose d’écrire un algorithme qui réalise


au choix la somme, la différence, le produit ou la
division de deux données numériques.
Solution:
CAS choix VAUT
′1 ′  : R A+B ;
ECRIRE (‘la somme des deux nombres est : ‘, R) ;
′ 2 ′  : R  A-B ;
ECRIRE (‘la différence des deux nombres est : ‘, R) ;
′ 3 ′  : R  A*B ;
ECRIRE (‘le produit des deux nombres est : ‘, R) ;
′ 4 ′  : Si B <> 0 alors
R A/B ;
ECRIRE (‘le division des deux nombres est : ‘, R) ;
SINON
ECRIRE(‘la division par zéro est impossible’) ;
FINSI
FINCAS
Organigramme  :

O
Choix =1 R A+B

O
Choix =2 R  A-B

O
Choix =3 R  A*B

Choix =4 R A/B
Solution:
Algorithme choix_opérations ; ‘1’ : R  a+b ;
Variables ECRIRE (‘la somme des deux
a,b :réel ; nombres est : ‘, R) ;
Choix : caractère ; ‘2’ : R  a-b ;
R :réel ; ECRIRE (‘la différence des deux
DEBUT nombres est : ‘, R) ;
ECRIRE(‘1-addition’) ; ‘3’ : R  a*b ;
ECRIRE(‘2-soustraction) ; ECRIRE (‘le produit des deux
ECRIRE(‘3-multiplication’) ; nombres est : ‘, R) ;
ECRIRE(‘4- division’) ; ‘4’ : si b<> 0 alors
ECRIRE(‘donner votre choix R a/b ;
(1/2/3/4) :’) ; ECRIRE (‘le division des deux
LIRE(choix); nombres est : ‘, R) ;
ECRIRE(‘Entrer les deux nombres’) ; SINON
LIRE(a,b) ; ECRIRE(‘la division par zéro est
Cas choix Vaut impossible’) ;
FINSI
FINCAS
Fin
IV. LES STRUCTURES ITERATIVES:

1) Définition:
2) La boucle TANT QUE .. FAIRE :

a) Syntaxe :

TANT QUE condition FAIRE

Traitement

FIN TANTQUE
b) Organigramme :

N
Test

Traitement 1

Traitement 2
c) Exemple:

Un algorithme qui affiche un message d’erreur


tant que l’utilisateur n’a pas entrer le bon
montant (>500DH).

Tant que (M<500) faire

Ecrire("Entrez un montant suppérieur à 500 DH ");


Lire(M);

FinTANTQUE
3) La boucle RÉPÉTER .. JUSQU’A :

a) Syntaxe :

REPETER

Traitement

JUSQU’A condition;
b) Organigramme :

Traitement 1

Traitement 2

O
Test

N
c) Exemple:

 Un algorithme qui vérifie si le nombre saisie


par l’utilisateur est un nombre positif.

REPETER
Ecrire(‘’ Entrez un nombre positif SVP’’);
Lire(A);
JUSQU’À (A>0) ;
4) La boucle POUR :

a) Syntaxe :

POUR Compteur  initiale A finale (PAS DE incrément) FAIRE

Traitement

FINPOUR
b) Organigramme :

CM

Traitement

C  C+P

N
C<N

O
c) Exemple:

 Un algorithme permettant d’afficher les


nombre de 0 à 9.

POUR i  0 A 9 FAIRE
Ecrire(i);
FINPOUR
Résumé :

L’itération Utilisation
POUR Le nombre d’itération est connue
REPETER Le nombre d’itération n’est pas connue, le
traitement est exécuté puis la condition est
vérifié,
TANTQUE Le nombre d’itération n’est pas connue, la
condition est vérifié puis le traitement est
exécuté,
Exercices d’application:
EXERCICE 1:
 Ecrire un algorithme qui permet de calculer
avec les trois boucles (POUR; REPETER;
TANTQUE) :

 S= 1+2+….+9
SOLUTION 1:

S  0; S  0; S  0;
POUR i  1 A 9 FAIRE i  1; i  1;
S  S+i; TANTQUE (i<=9) FAIRE REPETER
FINPOUR S  S+i; S  S+i;
ECRIRE(S); i  i+1; i  i+1;
FINTANTQUE JUSQU’A (i>9);
ECRIRE(S); ECRIRE(S);
EXERCICE 2:
 Ecrire un algorithme qui permet de calculer :

 XN= X*X*…..*X
N fois
SOLUTION 2:

P  1;
POUR i  1 A N FAIRE
P  P * X;
FINPOUR
EXERCICE 3:
 Ecrire un algorithme qui permet de calculer:

 X!= 1*2*…..*X
N fois
SOLUTION 3:

F  1;
POUR i  2 A N FAIRE
F  F * i;
FINPOUR
IV. LES TABLEAUX:

Vous aimerez peut-être aussi