Faculté des Sciences Dhar El Mahraz –FSDM
BCG:SVI/STU-S2
Algorithmique
Réalisé par: Pr . HASNAE EL KHOUKHI
[Link]@[Link]
Année universitaire:2023/2024
Introduction
Dans la vie courante, un algorithme peut prendre
la forme d’une recette de cuisine ou bien une
résolution d’exercice.
Une recette de cuisine par exemple, est un
algorithme, à partir des ingrédients, elle explique
comment parvenir au plat,
Une résolution d’exercice explique comment à partir
des données, on obtient d’une solution finale en un
certain nombre d’étapes,
……..
Introduction
Exemple1 :
Préparer la pâte à tarte
Les ingrédients ( 250 g de farine ,
50 g de beurre , 1 verre de lait )
Les actions élémentaires à réaliser :
Incorporer le beurre dans la farine
Ajouter du lait
Mélanger
la reposer une demi-heure
Passez au four pendant 25min
Introduction
Exemple2:
Résolution d’une équation de 2éme degré :
a*x² + b*x + c = 0 ,
Donner les actions élémentaires pour résoudre cette
équation.
Introduction
Exemple2:
Résolution d’une équation de 2éme degré :
ax² + bx + c = 0 .
Les actions élémentaires à réaliser
Étape 1 : Calcul du discriminant
Δ = b² - 4ac.
Étape 2 : Analyse du discriminant
Si Δ < 0 : Pas de solution à l'équation ;
Si Δ = 0 : Une seule solution S = -b/2a ;
Si Δ > 0 : Deux solutions à l'équation ;
S = {(-b-racine(Δ))/2a, (-b+racine(Δ))/2a}
Introduction
Vous avez déjà fait de l'algorithmique,
parce qu'on utilise des algorithmes dans notre
vie quotidienne,
Indiquer le chemin à quelqu’un
Comment construire une maison
Comment résoudre un problème mathématique ou
physique
Etc…
Un algorithme
Le mot « algorithme » provient de la forme du nom, du
mathématicien arabe du 9ème siècle AL-KHAWARIZMI.
Un algorithme, c’est une suite d’instructions, qui une fois
exécutée correctement, conduit à un résultat donné.
Objectif
Un algorithme sert à décrire les étapes à suivre pour réaliser un
travail.
Expliciter clairement les idées de solution d'un problème en
utilisant des procédures logiques.
Un algorithme
Un algorithme : est une procédure de calcul bien définie qui
prend en entrée une valeur, ou un ensemble de valeurs, et qui
donne en sortie une valeur, ou un ensemble de valeurs.
Un algorithme: est une séquence d’étapes de calcul qui transforment
l’entrée en sortie.
Algorithme et Programmation
Tout problème à programmer doit être résolu
d’abord sous forme d’algorithme, puis converti en
programme dans le langage de votre choix.
Un programme est une suite d’instructions, écrit
dans un langage de programmation, exécutées par
ordinateur, permettant de traiter un problème et de
renvoyer des résultats.
Phases d’un algorithme
Exemple:
Résoudre l’équation :
a*x+b=0,
Phases d’un algorithme
Exemple: Résoudre l’équation :
a*x+b=0,
Solution
l’entrée des données
Les données d’entrées : les valeurs de a et b
le traitement des données ou le résultat à chercher
Le résultat que l’on désire obtenir : les valeurs de x
Si a # 0 alors x= -b/a
Si a=0 et b=0 alors l’équation admet une infinité de solution
Si a=0 et b#0 alors l’équation n’admet pas de solution
la sortie des résultats
Afficher (x)
Structure générale d’un algorithme
Algorithme Titre du Problème
Déclaration des Constantes
Déclaration Déclaration des Variables
Déclaration des Tableaux
…………..
Début
Manipulation actions
FIN
12
Structure générale d’un algorithme
Un algorithme est composé de trois phase principale:
L’en tête : cette partie sert à donner un nom à l’algorithme.
Elle est précédée par le mot Algorithme.
La partie déclarative : dans cette partie, on déclare les
différents objets que l’algorithme utilise (Variables,
constantes, etc).
Le corps de l’algorithme : cette partie contient les
instructions de l’algorithme. Elle est délimitée par les
mots Début et Fin.
13
Les variables et les constantes
Déclaration des variables :
La partie déclaration consiste à énumérer toutes les variables
dont on aura besoin au cours de l’algorithme.
Chaque déclaration doit comporter le nom de variable
(identificateur) et son type.
Syntaxe :
Variable Nom_Variable : Type ;
Exemple
Variable nb_élèves : entier ;
Variable note : réel;
Variable Prénom : Chaine-caractère;
Variable Desition : booléen ;
Variable P: caractère ;
Les variables et les constantes
Déclaration des constantes
Une constante est une donnée fixe qui ne varie pas durant l’exécution d’un
algorithme. Une constante est caractérisée par son nom et sa valeur (fixe).
Syntaxe :
Constante Nom _Constante = valeur ;
Exemple
Constante Pi =3,14 ;
Constante B = 10 ;
Constante Mois = "Janvier";
15
Données d’un algorithme
Types de donnée
Type entier: sert à manipuler les nombres entiers positifs ou négatifs.
Par exemple : 5, 20, -12
Type réel: sert à manipuler les nombres à virgule.
Par exemple : 5, 2.1, -1.2 …
Type caractère sert à manipuler des caractères alphabétiques et numériques.
Par exemple : "a", "B " , "6" …
Type chaîne: sert à manipuler des chaines de caractères permettant de
représenter des mot ou des phrases comme : "bonjour", "Cours_5" …
Type booléen utilise les expressions logiques. Il n’y a que deux valeurs
booléennes : Vrai et faux
Données d’un algorithme
Type Entier:
C’est l’ensemble des nombres entiers positifs ou négatifs.
Syntaxe de la déclaration:
Variable variable1,variable2,… : Entier
Exemple :
a et b sont, par exemple, les coefficients de l’équation :
ax + b = 0
Variable a, b : Entier
Données d’un algorithme
Type Réel
C’est l’ensemble des nombres réels, c’est à dire les nombres
décimaux sans limitation. Un nombre décimal est un nombre qui
peut s'écrire exactement avec un nombre fini de chiffres après la
virgule
Syntaxe de la déclaration:
Variable variable1, variable2,… : Réel
Exemple :
Variable x, y : Réel
Données d’un algorithme
Type Chaîne de caractères
C’est une suite de caractères, c’est à dire des combinaisons de
caractères (lettres, chiffres, symboles..).
Syntaxe de la déclaration:
Variable A1,A2, A3… : Chaine_Caractère
Exemple :
Variable Nom, Catégorie : Chaine_Caractère
Données d’un algorithme
Type Booléen
Il s’agit des objets qui ne peuvent prendre que deux valeurs
vrai ou faux.
Syntaxe de la déclaration:
Variable V1,V2, V3… : Booléen
Exemple :
Variable Décision : Booléen
Opérateurs
Un opérateur est un signe qui relie deux valeurs, pour
produire un résultat.
&
Les opérateurs numériques
25 / 4 = 6.25
25 div 4 = 6
25 mod 4 = 1
75 / 6 = 12.5
75 div 6 = 12
75 mod 6 = 3
Opérateur alphanumérique
Opérateur alphanumérique : &
Cet opérateur permet de concaténer, deux chaînes de
caractères.
Exemple :
Variables A, B, C: Chaine_caractère
Début
← "mohamed"
A•
← "amine"
B•
←A&B
C•
Fin
Resultat :
La valeur de C à la fin de l’algorithme est " mohamed amine "
Structure de la partie manipulation
La partie manipulation doit commencer par le mot
DEBUT et se termine par le mot FIN.
Instruction: Une instruction est une action élémentaire commandant à
la machine un calcul, ou une communication avec l’un de ses
périphériques d’entrées ou de sorties..
Les instructions d’un Algorithme
La partie manipulation utilise les différents objets déclarés dans
la partie déclaration et leur applique des opérations afin de retourner
le(s) résultat(s) attendu(s) par le programmeur.
Pour ce fait, il y a différentes actions, dites instructions, à savoir :
Instructions de dialogue Homme-Machine;
Ecrire ( ), Lire ( ) Les instructions de
Instructions d’affectation; base
((TVA : réel)←20.6(Titre : chaîne) ←"Résultat " )
********************************************
Instructions à structure alternative;
(SI…ALORS… SINON … )
Instructions à structure répétitive (Boucles).
Etc…
Les instructions de base
Instruction de dialogue
Homme-Machine
L’affichage des informations (Ecrire) Afficher = Ecrire
Pour faire comprendre qu’il faut afficher des informations à
l’écran, on utilise l’instruction écrire .
Syntaxe Ecrire (variable);
Ecrire ("message");
Ecrire ("message", variable);
Exemples
Soit A est une variable.
Ecrire (A) : signifie affiché sur l’écran le contenu de la variable A.
Ecrire("Bonjour!") : signifie affiché sur l’écran le message
suivant: Bonjour!
Instruction de dialogue
Homme-Machine
La saisie des informations (lecture) Saisir = Lire
Pour indiquer dans un algorithme que telle donnée doit
être lue par le système, on utilise l’instruction lire.
Syntaxe
Lire (variable)
Exemples :
Écrire (" Saisissez la valeur de a ")
Lire (a)
Instructions d’affectation
L’instruction d’affectation :
L’affectation permet d’affecter une valeur à une
variable. Elle est symbolisée en algorithmique
par « ← »
Syntaxe : Variable ← Expression
Exemple :
Var1 ← 8 ;
Var2 ← Var1 ;
Var1 ← Var2+1
Instructions d’affectation
• Quelles seront les valeurs des variables Var1 , Var2 et Var3 après
exécution des instructions suivantes ?
• Exemple
Début
Var1 •← " Var2"
Var3•← "Var1 "
Fin
• Exemple
Début
Var1 •← " Var2 "
Var3 ← Var1
Fin
Les instructions de base
Quelles seront les valeurs des variables a , b et c après exécution des
instructions suivantes ?
Les instructions de base
Quelles seront les valeurs des variables a , b et c après exécution des
instructions suivantes ?
Les instructions de base
Exercice 1
Quelles seront les valeurs des variables A , B et C après exécution
des instructions suivantes ?
Variables A, B, C : Entiers
A ← 423
B ← 12
C ←A+B
Fin
33
Les instructions de base
Exercice 1:
Quelles seront les valeurs des variables A , B et C après exécution des instructions suivantes ?
Variables A, B, C :Entiers
Début
A ← 423
B ← 12
C←A+B
Fin
Correction 1:
Les valeurs des variables après l’exécution sont :
A ← 423 A = 423 B=? C=?
B ← 12 A = 423 B = 12 C=?
C ←A+ B A = 423 B = 12 C =435
34
Les instructions de base
Exercice 2
Quelles seront les valeurs des variables A , B et C après exécution
des instructions suivantes ?
Variables A, B, C : Chaine-caractère
Début
A ← "423"
B ← "12"
C←A&B
Fin
35
Les instructions de base
Exercice 2:
Quelles seront les valeurs des variables A , B et C après
exécution des instructions suivantes ?
Variables A, B, C : Chaine_caractères
Correction 2:
Correction 2:
Les valeurs
Les valeursdes
des variables
variablesaprès l’exécution sont
après l’exécution sont ::
A ← 423
Début A = 423 B=? C=?
AB ←←"423"
12 A = 423 B = 12 C=?
B C←←"12"
A+ B A = 423 B = 12 C =42312
C ←A&B
Fin
Exercices
Exercice 3:
Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?
Variables A, B : Entier
Début
A←1
B←A+3
A←3
Fin
Corrigés
Corrigé 3:
Après La valeur des variables est :
A1 A=1 B=?
B←A+3 A=1 B=4
A3 A=3 B=4
Exercice
Exercice 4:
Quelles seront les valeurs des variables A, B et C après
exécution des instructions suivantes ?
Variables A, B, C :Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin
Corrigés
Corrigé 4:
Après La valeur des variables est :
A5 A=5 B=? C=?
B3 A=5 B=3 C=?
CA+B A=5 B=3 C=8
A 2 A=2 B=3 C=8
C B – A A=2 B=3 C=1
Exercice
Exercice 5:
Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?
Variables A, B :Entier
Début
A•
←5
B•
←A+4
A•
←A+1
B•
←A–4
Fin
Corrigés
Corrigé 5:
Après La valeur des variables est :
A←5 A=5 B=?
B •← A + 4 A=5 B=9
A •← A + 1 A=6 B=9
B •← A – 4 A=6 B=2
Exercice
Exercice 6:
Quelles seront les valeurs des variables A, B et C après
exécution des instructions suivantes ?
Variables A, B, C : Entier
Début
A←3
B •← 10
C •← A + B
B •← A + B
A •← C
Fin
Corrigé
Corrigé 6:
• Après La valeur des variables est :
A •← 3 A=3 B=? C=?
B •← 10 A = 3 B = 10 C = ?
C •← A + B A = 3 B = 10 C = 13
B •← A + B A = 3 B = 13 C = 13
A •← C A = 13 B = 13 C = 13
Ecrire un Algorithme
Exemple 1
Ecrire un Algorithme qui demande le nom et
le prénom d’une personne et qui affiche le
message Bonjour Prénom Nom au revoir
Ecrire un Algorithme
Exemple 1
Ecrire un Algorithme qui demande le nom et le prénom d’une personne et qui affiche le
message Bonjour Prénom Nom au revoir
Algorithme Bonjour
//Déclaration
Variables Prénom, Nom : Chaine-caractère
Début
Ecrire ("Donner le Prénom" )
Lire (Prénom)
Ecrire ("Donner le Nom" )
Lire (Nom)
Ecrire (" Bonjour" , Prénom, Nom, "Au revoir" )
Fin
Ecrire un Algorithme
Exemple 2
Ecrire un algorithme qui demande à
l’utilisateur d’entrer deux nombres pour a et
b, de calculer c = b2 – 4*a*b
et d’afficher le résultat.
Ecrire un Algorithme
Exemple 2
Ecrire un algorithme qui demande à l’utilisateur d’entrer deux nombres pour a et b, de calculer
c = b2 – 4*a*b et d’afficher le résultat.
Solution
Algorithme: Equation
Variable a, b, c: Entier
Début
Ecrire ("donner les valeurs de a et b")
Lire (a, b)
c ← b*b - 4*a*b
Ecrire ("La solution est: ", c)
Fin
Exercice
Exercice
Écrire un programme qui permet d'échanger le
contenu de deux entiers A et B saisis par
l'utilisateur et afficher ces entiers après
l’échange.
Corrigé
******** En Algorithme ********
Algorithme Echange
Variables A,B,C :Entiers
Début
Ecrire("Entrer un entier A:")
Lire (A)
Ecrire("Entrer un entier B:")
Lire (B)
c←A
A←B
B←C
Ecrire("le contenu de A est:",A)
Ecrire("le contenu de B est:",B)
Fin
****************************************
Résultat
==> Entrer un entier A : 8
Entrer un entier B : 3
le contenu de A est: 3
le contenu de B est: 8
Exercices
Exercice
• Écrire un programme permettant de saisir
deux nombres et d'afficher leur produit.
Corrigé
******** En Algorithme ********
Algorithme produit_deux_nombres
Variables m,n,p :réels
Debut
Ecrire(" Entrer un nombre:")
Lire(m)
Ecrire(" Entrer un nombre:")
Lire(n)
p←m*n
Ecrire("Le produit de ",m,"et",n,"=",p)
Fin
****************************************
Résultat
==>
Entrer un nombre: 7
Entrer un nombre: 3
Le produit de 7 et 3 = 21
Les commentaires
Les commentaires :
Lorsqu'un algorithme devint long, il est conseillé d’ajouter des lignes de commentaires
dans l’algorithme, c’est-à-dire des lignes qui ont pour but de donner des indications sur
les instructions effectuées et d’expliquer le fonctionnement d’algorithme (programme) sans que
le compilateur ne les prenne en compte.
On va voir deux types de commentaires:
// Commentaire sur une ligne
/* Commentaire sur plusieurs lignes */
Remarque :
Parfois on utilise les commentaires pour annuler l’action de quelques instructions dans
un algorithme ou un programme au lieu de les effacer comme dans cet exemple :
Variable i: entier
// Variable j: réel