Chapitre 04
Introduction à
l’algorithmique
Améliorez votre présentation
Formalisme Structure de
algorithmique contrôle
Formalisme algorithmique
C’est quoi un algorithme
Recette de cuisine
(pâtes à crêpe)
Exemples d’algorithmes
• Calculer Delta = 62 – 4 x 5 = 16
• Delta > 0 alors
• x1 = -5 et x2 = -1
Exemples d’algorithmes
• Initialisation
• Traitement
• Sortie
Début
action 1;
action 2;
Le corps de l’algorithme .
. Une marque de terminaison (;)
. est utilisée entre chaque action,
action n;
Fin.
Structure d’un algorithme
Syntaxe :
Const identificateur = valeur;
Var identificateur : type_variable;
Exemple :
Const pi = 3,14;
Var A : entier;
B : réel;
Qu’est ce qu’une variable en algorithmique
A B Delta
• Entier : correspond aux valeurs de l’ensemble des entiers relatifs (…, -2, -
1, 0, 1, 2, …)
• Réel : Correspond aux valeurs de l’ensemble des réels décimaux signés
(nombres avec virgules).
• Caractère : correspond à un seul caractère alphabétique 'a'..'z' et 'A'..'Z',
numérique '0'..'9' ou caractère spécial '+', '/', '*', '-', '<', '=' , ' ?', '$', ?
• Chaîne de caractère : se compose d’une suite de symboles de type
caractère. Une valeur de ce type doit être placée entre ces deux
symboles ‘ ‘
• Logique (Booléen) : type logique qui peut prendre les deux valeurs VRAI
ou FAUX.
L’opérateur d’affectation
• Une affectation est une opération qui consiste à associer une valeur
donnée à une variable.
A 12;
B A + 15;
• Une affectation détruit le contenu précédent de la variable.
Delta 5;
Delta 7; La valeur finale de delta est 7
• La valeur d’une variable caractère ou chaîne de caractère doit être
déterminé par : ‘ ‘
Prenom ‘mohamed‘
Lieu ‘Alger‘
Adresse ‘ENSH, BP 31, 09000 Blida‘
Syntaxe :
Variable valeur;
Les opérateurs
Comparaisons
> Supérieur
< Inférieur
>= Supérieur ou égal
<= Inférieur ou égal
= Egal
<> Différent
Les opérateurs
• Les entrées :
Entrer A : On demande à l’utilisateur d’entrer 2 valeurs qui
Entrer B : seront stockées dans 2 variables A et B.
• L’affectation :
On calcule (A+B)/2 et on range le
M prends la valeur (A+B)/2
résultat dans la variable M.
• Les sorties
On fait afficher à l’écran le contenu de
Afficher M
la variable M
Notre premier algorithme
• Langage naturel
Entrer A
Entrer B
M prends la valeur (A+B)/2
Afficher M
• Question
Comment modifier cet algorithme pour qu’il calcule et affiche la
moyenne de 3 nombres A, B et C entrés par l’utilisateur ?
Notre premier algorithme
• Langage naturel
Entrer A
Entrer B
Entrer C
M prends la valeur (A+B+C)/3
Afficher M
Exemples d’algorithmes
Etape 1 :
• Données nécessaires : Le nom, prénom, Contrôle continue,
travaux pratique et EMD
• Objectif : calculer la moyenne générale,
Exemples d’algorithmes
Pseudo algorithme :
- Lire le Nom et Prénom
- Lire Contrôle continue, Travaux pratique et Examen.
- Calculer la Somme = Contrôle Continue + Travaux pratique +
Examen.
- Calculer la moyenne = Somme / 3.
- Afficher la moyenne.
Notre premier algorithme
Algorithme exemple1;
var CC, TP, EMD, Moyenne : réel
Début
Lire(CC);
Lire(TP);
Lire(EMD);
Moyenne (CC+TP+EMD)/3;
Ecrire(Moyenne);
Fin.
Les commentaires dans les algorithmes
Syntaxe :
//Mettre les commentaires ici en une seule ligne
{
Mettre les commentaires ici
en multi-lignes
}
Exemple :
//Lecture des notes CC, TP et EMD
Lire(CC, TP, EMD);
{Calculer la somme }
Somme CC + TP + EMD;
//Calculer la moyenne
Moyenne Somme / 3;
//Afficher le résultat
Ecrire(Moyenne);
Lecture des données dans les algorithmes
Cette action permet de fournir des données saisies au programme. Cette action de
lecture est exécutée selon les étapes suivantes :
La liste des variables désigne une ou plusieurs variables séparées par des virgules.
Les variables doivent être de type entier, réel, caractère ou chaîne de caractères.
Exemple :
Lire(‘Veuillez donner la note du contrôle continue : ‘, CC);
Affichage des données dans les algorithmes
Cette action permet d'afficher les données résultats du programme sur l'écran.
Syntaxe :
ECRIRE(<liste_des_variables>);
La liste des variables désigne une ou plusieurs variables séparées par des virgules.
Les variables doivent être de type entier, réel, caractère ou chaîne de caractères.
Exemple :
Lire(‘Veuillez donner la note du contrôle continue : ‘, CC);
La liste des expressions désigne une ou plusieurs expressions séparées par des
virgules.
Exemple 1 :
Donner la trace de l'algorithme de résolution de Ax + B = 0 pour A=7
et B=21
Var A, B, X : réel ;
Début
Lire(A); Actions A B X Affichage
Lire(B);
Lire(A) 7
X -B / A;
Ecrire(x); Lire(B) 21
Fin. X -B/A -3 -3
Trace d’un algorithme
Exemple 2 :
Donner la trace de l'algorithme suivant pour A=7 et B=12
Var A, B : Entier ;
Début
Lire(A);
Lire(B);
A A + B;
B A – B; Actions A B Affichage
A A – B; Lire(A) 7
Ecrire(A, B);
Lire(B) 21
Fin.
A A + B 28 -3
B A – B 7
A A – B 21 21 7
Structures de contrôle
Les structures de contrôle
• Actions conditionnelles
• Actions répétitives
Actions conditionnelles
Si conditions alors
actions;
FSi;
Algorithme exemple1;
var CC, TP, EMD, Moyenne : réel
Début
Lire(CC);
Lire(TP);
Lire(EMD);
Moyenne (CC+TP+EMD)/3;
Ecrire(‘La moyenne est : ‘, Moyenne);
si moyenne >= 10 alors
Ecrire(‘Etudiant admis’);
Fin.
Action conditionnelle alternée
Notation :
Si conditions alors
actions1
Sinon
actions2;
FSi;
Algorithme exemple1;
var CC, TP, EMD, Moyenne : réel
Début
Lire(CC);
Lire(TP);
Lire(EMD);
Moyenne (CC+TP+EMD)/3;
Ecrire(‘La moyenne est : ‘, Moyenne);
si moyenne >= 10 alors
Ecrire(‘Etudiant admis’)
sinon
Ecrire(‘Etudiant non admis’);
fsi;
Fin.
Action conditionnelle alternée
Algorithme exemple2;
var nombre1, nombre2 : réel
Début
Ecrire(‘Veuillez donner deux nombres distincts : ’);
Lire(nombre1);
Lire(nombre2);
si nombre1 = nombre2 alors
Ecrire(‘Erreur ! Les deux nombres sont égaux’)
sinon
Si nombre1 < nombre2 alors
Ecrire(‘Le plus petit des deux
nombres est ‘, nombre1)
sinon
Ecrire(‘Le plus petit des deux
nombres est ‘, nombre2);
fsi;
fsi;
Fin.
Action conditionnelle alternée
Trace de l’algorithme
Nombre1 = 10 et nombre2 =15
nombre1 nombre2 Affichage
10
15
Le plus petit des deux nombres est 10
Trace de l’algorithme
Nombre1 = 20 et nombre2 = 20
Algorithme exemple3;
Var x, y : réel;
Début
Lire(x);
si x = 0 alors
Ecrire(‘Pas de solution’)
sinon
y 1 / x;
Ecrire(y);
Fsi;
Fin.
Action conditionnelle imbriquée
Si condition1 Alors
Action1 ;
Fsi;
Si condition2 Alors
Action2;
Si condition3 Alors
action3
Sinon
Si condition4 Alors
action4 ;
Fsi;
Fsi ;
Fsi;
Action conditionnelle imbriquée
Exemple :
Si a >0 Alors
x:=b*2
Sinon x:=0 ;
Fsi;
Si a< -3 Alors
y:=a*5+b;
Si b-a<0 Alors
y:=1
Sinon
Si b= -30 Alors
Ecrire(b)
Fsi;
Fsi
Sinon
Ecrire(a) ;
Fsi;
Action conditionnelle imbriquée
Algorithme equation_second_degre1;
Var A, B, C, X, Delta, X1, X2 : réel;
Début
Lire(A, B, C);
si A = 0 alors
Ecrire(‘Ce n’’est pas une équation de second degré’)
sinon
Delta B*B – 4 * A * C;
si Delta < 0 alors
Ecrire(‘Pas de solution’);
fsi;
si Delta = 0 alors
X1 -B/2*A;
Ecrire(‘Une solution : ‘, X1);
fsi;
si Delta > 0 alors
X1 (-B-√ )/2A;
X2 (-B+√ )/2A;
Ecrire(‘Deux solutions : ’, X1,’ et ‘, X2);
fsi;
fsi;
Fin.
Action conditionnelle imbriquée
Algorithme equation_second_degre2;
Var A, B, C, X, Delta, X1, X2 : réel;
Début
Lire(A, B, C);
si A = 0 alors
Ecrire(‘Ce n’’est pas une équation de second degré’)
sinon
Delta B*B – 4 * A * C;
si Delta < 0 alors
Ecrire(‘Pas de solution’);
sinon
si Delta = 0 alors
X1 -B/2*A;
Ecrire(‘Une solution : ‘, X1);
sinon
X1 (-B-√ )/2A;
X2 (-B+√ )/2A;
Ecrire(X1,’ et ‘, X2);
fsi;
fsi;
fsi;
Fin.
Action conditionnelle imbriquée
Algorithme maximum;
Var A, B, C, MAX : réel;
Début
Lire(A, B, C);
MAX A;
si B > MAX alors
MAX B;
fsi;
si C > MAX alors
MAX C;
fsi;
Ecrire(‘Le maximum des trois nombres est : ‘, MAX);
Fin.
Action conditionnelle imbriquée
Exemple 3 :
Déterminer si un nombre A donné se trouve dans l’intervalle [-20.5,
50.5].
Action conditionnelle imbriquée
Algorithme intervalle1;
Var A : réel;
Début
Lire(A);
si (A>=-20,5) et (A<=50.5) alors
Ecrire(A, ‘ appartient à l’’intervalle’)
sinon
Ecrire(A,’ n’’appartient pas à l’’intervalle’);
fsi;
Fin.
Action conditionnelle imbriquée
Algorithme intervalle2;
Var A : réel;
B : booléen;
Début
Lire(A);
si (A>=-20,5) et (A<=50.5) alors
B vrai
sinon
B faux;
fsi;
si B = vrai alors
Ecrire(A, ‘ appartient à l’’intervalle’)
sinon
Ecrire(A,’ n’’appartient pas à l’’intervalle’);
fsi;
Fin.
Structure de choix
Syntaxe :
Exemple :
devient
Cas p parmi
1:x sqr(A);
2:x ln(A);
5:x exp(A);
9,11: x sqrt(A);
12..20: x A*A+1;
Fin;
Quelques exemples
Exemple :
Ecrire un algorithme qui demande un nombre à un utilisateur et
l’informe ensuite si ce nombre est pair ou impair.
Quelques exemples
Algorithme pair_impair;
Var A : entier;
Début
Lire(A);
si A MOD 2 = 0 alors
Ecrire(A, ‘ est un nombre pair’)
sinon
Ecrire(A, ‘ est un nombre impair’);
fsi;
Fin.
Structures conditionnelles à choix
Exemple 1 :
Ecrire un algorithme qui demande successivement un nombre réel r1, un
opérateur op et un deuxième nombre réel r2 puis affiche le résultat de
l’application de l’opérateur op sur r1 et r2.
Exemple :
R1 = 10
Op = ‘*’
R2 = 20
Affichage 200
Structures conditionnelles à choix
Algorithme exemple1;
Var r1, r2 : réel;
Op : caractère;
Début
Ecrire(‘Veuillez donner un nombre réel ‘);
Lire(r1);
Ecrire(‘Donnez l’’opérateur à appliquer ‘);
Lire(op);
Ecrire(‘Donnez un deuxième nombre réel ‘);
Lire(r2);
Cas op parmi
‘+’:Ecrire(r1,op,r2,’ = ‘, r1+r2);
‘-’:Ecrire(r1,op,r2,’ = ‘, r1-r2);
‘*’:Ecrire(r1,op,r2,’ = ‘, r1*r2);
‘/’:début
si r2 = 0 alors
Ecrire(‘Erreur’)
sinon Ecrire(r1,op,r2,’ = ‘, r1/r2);
Fsi;
fin;
sinon Ecrire(‘Erreur’);
Fin;
Fin.
Structures conditionnelles à choix
Exemple 2 :
Ecrire un algorithme qui demande un mois en chiffre et puis l’affiche en lettre
Exemple :
M = 1 afficher Janvier
M = 5 afficher Mai
Structures conditionnelles à choix
Algorithme exemple2;
Var m : nombre;
Début
Ecrire(‘Veuillez donner un nombre entier ‘);
Lire(m);
Cas m parmi
1:Ecrire(‘Janvier’);
2:Ecrire(‘Février’);
3:Ecrire(‘Mars’);
4:Ecrire(‘Avril’);
5:Ecrire(‘Mai’);
6:Ecrire(‘Juin’);
7:Ecrire(‘Juillet’);
8:Ecrire(‘Août’);
9:Ecrire(‘Septembre’);
10:Ecrire(‘Octobre’);
11:Ecrire(‘Novembre’);
12:Ecrire(‘Décembre’);
sinon Ecrire(‘Erreur’);
Fin;
Fin.
Actions répétitives
On distingue 2 cas :
• Le nombre de répétition est connu
• Le nombre de répétition n’est pas connu ou variable
INTRODUCTION A
Quel message voulez-vous
L’ALGORITHMIQUE
diffuser ?