COURS ALGORITHME
DSECG2 2024-2025
SOMMAIRE
1. INTRODUCTION
2. LES VARIABLES ET LES CONSTANTES
3. MANIPULATION DES VARIABLES
4. LES STRUCTURES DE CONTROLE
5. LES STRUCTURES REPETITIVES
1. INTRODUCTION
la réalisation d'un programme passe par trois étapes :
• L'analyse du problème qui doit permettre de formuler ce qu'il faut
résoudre. Elle spécifie les données et les résultats à obtenir.
• L'algorithme définit la structure des données, l'enchaînement et
l'organisation des traitements.
• La programmation, finalement, est la concrétisation des étapes
précédentes. Cette dernière partie permet de finaliser le projet.
1.1. DEFINITION DE L’ALGORITHME
L’algorithme est une suite finie d’instructions non
ambiguës dans un langage pseudo-naturel simple
permettant de décrire une méthode pour répondre à un
problème en un temps fini en s’affranchissant des
aspects matériels de mise en œuvre (type de machine,
langage de programmation utilisé, …).
En d’autres termes, c’est une succession d’étapes à
exécuter dans un ordre déterminé pour arriver à
résoudre un problème.
1.1. DEFINITION DE L’ALGORITHME
Le "langage algorithmique" que nous utilisons est appelé
pseudo-code qui est un compromis entre un langage
naturel et un langage de programmation. On parle aussi de
Langage de Description d’Algorithme(ADA)
Ce pseudo-code peut varier d’un ouvrage à l’autre
puisqu’il est conventionnel (nous allons définir nos
propres conventions).
1.1. DEFINITION DE L’ALGORITHME
En étudiant cette définition, on peut ainsi voir trois parties fondamentales
que l'on peut décomposer de la manière suivante : le problème et ses
données, le résultat, la manière d'obtenir le résultat
Données
Problème Algorithme Programme Solutions
EXEMPLE D’ALGORITHME
Algorithme Recettes
Données en
Ingrédients
entrée
Algorithme Recettes
Résultats Plats
(sortie)
1.2. FORMALISE DE L’ALGORITHME
• Un algorithme doit être lisible et compréhensible par plusieurs personnes.
• Il doit donc suivre des règles. Il est composé d'une entête et d'un corps.
L'entête comprend :
Nom : le nom de l'algorithme
variables : la déclaration des variables utilisées dans l’algorithme
• Le corps :
il est délimité par les mots clés début et fin.
Contient les instructions
1.2. FORMALISE DE L’ALGORITHME
• Par convention, tous les identifiants de variables seront notés
en minuscule et auront un nom mnémonique
• Il en va de même pour les fonctions, dont l'identifiant doit être
le plus explicite sur son rôle. Ce dernier peut être une
contraction de plusieurs mots, par conséquent pour rendre la
lecture plus facile, la première lettre de chaque mot est mis en
majuscule
(exemple : CalculerAireRectangle).
2. LES VARIABLES ET LES CONSTANTES
2.1. Définition d’une variable
Au cours de l’exécution d’un programme informatique, on aura besoin de stocker des
informations par exemple :
- Saisie par l’utilisateur au claver
- Résultat d’un programme (définitif ou intermédiaire)
La mémoire de l’ordinateur se compose d’une série de cellules répondant chacune à une
adresse en mémoire. Ces cellules dont la taille dépend du type d’ordinateur, sont destinées à
stocker des données. Ces données sont accessibles par l’intermédiaire de noms symboliques
appelés variables. Une variable est donc un nom donné à une adresse en mémoire permettant
ainsi de stocker, consulter ou de modifier le contenu de cette dernière.
2.1. Définition d’une variable
une variable est caractérisée par trois informations :
• Son nom : composé uniquement de lettres minuscules,
majuscules, de chiffres et du caractère souligné, il permet
d’identifier la variable. On parle d’« identificateur ». Ce
nom doit être significatif (refléter le rôle de la variable).
Un compromis doit bien sûr être trouvé entre
expressivité et longueur. On peut par exemple appeler
prix_unitaire une variable qui représente le prix unitaire
d’un article.
2.1. Définition d’une variable
• Son type : une variable est utilisée pour représenter
des données qui sont manipulées par le programme.
Un type est utilisé pour caractériser l’ensemble des
valeurs qu’une variable peut prendre. Par exemple le
prix unitaire représente le prix d’un article exprimé en
francs CFA.
2.1. Définition d’une variable
• Sa valeur : La variable contient une information qui
peut varier au cours de l’exécution d’un programme.
C’est cette information que l’on appelle valeur de la
variable. La valeur d’une variable doit correspondre au
type de la variable
2.1. Définition d’une variable
le nom et le type sont des informations statiques
qui doivent être précisées lors de la déclaration
de la variable. En revanche, la valeur est une
information dynamique qui changera au cours de
l’exécution du programme. Le tout est stocké dans
la mémoire de l’ordinateur.
2.2. Les différents types de variables
Un type caractérise les valeurs que peut prendre une variable. Il définit
également les opérations, généralement appelées opérateurs, qui pourront
être appliquées sur les données de ce type.
• Un opérateur est un symbole d’opération qui permet d’agir sur des variables
ou de faire des “calculs”
• Une opérande est une entité (variable, constante ou expression) utilisée par
un opérateur
• Une expression est une combinaison d’opérateur(s) et d’opérande(s), elle est
évaluée durant l’exécution de l’algorithme, et possède une valeur (son
interprétation) et un type
2.2. Les différents types de variables
Opérateur, opérande et expression
Exemple dans a + b :
a est l’opérande gauche
+ est l’opérateur
b est l’opérande droite
a + b est appelé une expression
2.2. Les différents types de variables
• Les opérateurs
Un opérateur peut être unaire ou binaire :
• Unaire s’il n’admet qu’une seule opérande, par exemple l’opérateur non
• Binaire s’il admet deux opérandes, par exemple l’opérateur +
• Un opérateur est associé à un type de donnée et ne peut être utilisé
qu’avec des variables, des constantes, ou des expressions de ce type
Par exemple l’opérateur + ne peut être utilisé qu’avec les types
arithmétiques (naturel, entier et réel) ou (exclusif) le type chaîne de
caractères
2.2. Les différents types de variables
• Les opérateurs
• On ne peut pas additionner un entier et un caractère
Toutefois exceptionnellement dans certains cas on accepte d’utiliser un
opérateur avec deux opérandes de types différents, c’est par exemple le
cas avec les types arithmétiques (2 + 3.5)
• La signification d’un opérateur peut changer en fonction du type
des opérandes
• l’opérateur + avec des entiers aura pour sens l’addition, 2+3 vaut 5
• avec des chaînes de caractères il aura pour sens la concaténation "bonjour" +
" tout le monde" vaut "bonjour tout le monde"
2.2. Les différents types de variables
2.2.1 les numériques
2.2.1.1 Les entiers
On les utilise pour représenter les entiers relatifs. Les opérations
utilisables sur les entiers sont :
• Les opérateurs arithmétiques classiques : + (addition), - (soustraction), *
(produit)
• La division entière, notée ÷ ou DIV : n DIV p donne la partie entière du
quotient de la division entière de n par p
• Le modulo, (MOD) : n MOD p donne le reste de la division entière de n par p
• Les opérateurs de comparaison classiques : <, >, =, ...
2.2. Les différents types de variables
Exemples : Déclaration d’une variable entière
Variable nombre : ENTIER
Quelques exemples d’entiers :
10, 0, -10
Quelques exemples d’utilisation d’opérateurs :
10 Mod 3 ---------= 1 (le reste de la division entière de 10 par 3)
10 Div 3 ----------- = 3 (le quotient de la division entière de 10 par 3)
1 Div 2 ------------ = 0 (le quotient de la division entière de 1 par 2)
Abs(-5) ----------- = 5 (la valeur absolue de -5)
2.2. Les différents types de variables
• les opérateurs ont des priorités.
Par exemple * et / sont prioritaires sur + et -
Pour les booléens, la priorité des opérateurs est non, et,
ouExclusif et ou
• Pour clarifier les choses (ou pour dans certains cas supprimer
toutes ambiguïtés) on peut utiliser des parenthèses
2.2. Les différents types de variables
2.2.1.2. les réels
Les opérations utilisables sur les réels sont :
• Les opérations arithmétiques classiques : + (addition), -
(soustraction), * (produit), / (division)
• Les opérateurs de comparaison classiques : <, >, =, ...
Exemple : Déclaration d’une variable réelle
Variable Moyenne : REEL
Exemple de représentants des réels
• 10.0, 0.0
LES TYPES DE VARIABLES NUMÉRIQUES
2.2. Les différents types de variables
2.2.2. Le type logique
Une variable de type logique (booléen) peut prendre deux valeurs
VRAIE ou FAUSSE. Les opérations sont Et, Ou et Non qui sont définies
par la table de vérité suivante
Exemple : Déclaration d’une variable booléenne
Variable reponse : BOOLEEN
Les opérations principales les plus utilisées sont :
• Les opérateurs logiques : NON, ET, OU
• Opérateurs de comparaison : = , ≤ , ≥ , ≠
Les différents types de variables
2.2.2. Table de vérité
A B A ET B A OU B NON A
VRAI VRAI VRAI VRAI FAUX
VRAI FAUX FAUX VRAI FAUX
FAUX VRAI FAUX VRAI VRAI
FAUX FAUX FAUX FAUX VRAI
2.2. Les différents types de variables
2.2.3. Le type caractère
Il s'agit du domaine constitué des caractères alphabétiques et
numériques. Une variable de ce type ne peut contenir qu'un seul et
unique caractère. Les opérations élémentaires réalisables sont les
comparaisons : <, >, =, ...
Exemple : Déclaration d’une variable de type caractère
Variable C : CARACTERE
Exemple de représentants des caractères
• ’a’ -------- le caractère a
• ’\t’ ----------- Caractère tabulation
2.2. Les différents types de variables
2.2.4. Le type chaine de caractères
Une chaine de caractère est un objet qui peut contenir plusieurs
caractères de manière ordonnée(permet de manipuler des chaînes de
caractères pour représenter des mots ou des phrases).
Exemple : Déclaration d’une variable de type chaine de caractère
Variable NOM : CHAINE[30] → Chaine de 30 caractères
maximum
• "Une chaîne de caractères" -- un exemple de Chaîne
2.2. Les différents types de variables
2.2.5. Les constantes
Une constante est un objet dont l'état reste inchangé durant toute
l'exécution d'un programme. On ne peut jamais modifier sa valeur et
celle-ci doit donc être précisée lors de la définition de l'objet.
Exemple : Déclaration d’une variable constante
CONST PI=3.14
3. MANIPULATION DES VARIABLES
On peut faire deux choses avec une variable
3.1. Affectation et obtention de la valeur d’une variable
3.1.1. L'affectation permet de donner une valeur à une variable.
Syntaxe : <id_variable> <expression>
A « l'exécution » : l'expression est évaluée (calculée) et sa valeur est
rangée dans la variable.
Donc les types <id_variable> et <expression> doivent être compatibles.
Exemple : A 28 , A « reçoit » 28 ; si A avait une valeur auparavant,
cette valeur disparaît : elle est écrasée par 28
3. MANIPULATION DES VARIABLES
3.1.2. obtenir son contenu
Cela s’effectue simplement en nommant la variable
Exemple :
Par exemple l’expression c ← a + b se comprend de la façon suivante :
On prend la valeur contenue dans la variable a
On prend la valeur contenue dans la variable b
On additionne ces deux valeurs
On met ce résultat dans la variable c
Si c avait auparavant une valeur, cette dernière est perdue !
3. MANIPULATION DES VARIABLES
Exercice 1 : Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?
Algorithme affection1
Variables A, B : Entier
Début
A←1
B←A+3
A←3
Fin
3. MANIPULATION DES VARIABLES
Exercice 2 : Quelles seront les valeurs des variables A, B et C après exécution
des instructions suivantes ?
Algorithme affection2
Variables A, B, C : Entier
Début
A←5
B←3
C←A+B
A←2
C←B–A
Fin
3. MANIPULATION DES VARIABLES
Exercice 1.6 :
Ecrire un algorithme permettant d’échanger les valeurs
de deux variables A et B, et ce quel que soit leur
contenu préalable.
3. MANIPULATION DES VARIABLES
3.2. Les opérations entrées / sorties
Un algorithme peut avoir des interactions avec l’utilisateur; Si on veut
afficher un message à l’écran, on utilise l’instruction ECRIRE
Par exemple si on veut afficher à l’écran le message ci-apres:
« Entrer la valeur de la TVA », on saisi l’instruction ci-après :
Ecrire « Entrer la valeur de la TVA». Le message apparait à l’écran :
EXEMPLE
Exemple :somme de deux entiers
Algorithme somme_entiers
Variable A, B, C : ENTIER
DEBUT
Ecrire « voulez-vous saisir le premier nombre »
lire (A)
Ecrire « voulez-vous saisir le deuxième nombre »
lire (B)
C ← A+B
ECRIRE(C)
FIN
EXERCICES
Exercice 1 :
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule
et affiche le carré de ce nombre.
Exercice 2.
Ecrire un programme qui demande son prénom à l'utilisateur, et qui lui
réponde par un charmant « Bonjour » suivi du prénom.
On aura ainsi le dialogue suivant : machine : Quel est votre prénom ?
utilisateur : Omar
machine : Bonjour, Omar ! »
Exercice 2.4 Ecrire un programme qui lit le prix HT d’un article, le nombre
d’articles et le taux de TVA, et qui fournit le prix total TTC correspondant.
Faire en sorte que des libellés apparaissent clairement
4. LES STRUCTURES DE CONTROLE
On entend par structure de contrôle, la possibilité
d'orienter un algorithme en fonction de choix
particuliers. Il en existe deux :
• instructions conditionnelles
• Instructions de choix
4 LES STRUCTURES DE CONTROLE
4.1 instructions conditionnelles
4.1.1 Conditionnelle SI-ALORS-FINSI
Elle permet d'exprimer une condition simple (binaire). L'évaluation de
la condition va déterminer la suite du déroulement de l'algorithme.
Syntaxe :
SI (condition) ALORS
Action_1
SINON
Action_2
FIN SI
Action_3
4 LES STRUCTURES DE CONTROLE
4.1.1 Conditionnelle SI-ALORS-FINSI
Une seule des deux actions peut être exécutée (action_1 ou
action_2), l'algorithme continue ensuite son déroulement
normal (action_3). Si la condition évaluée est vraie, c'est
l'action 1 qui est effectuée, sinon (si l'évaluation est fausse),
l'action 2 est exécutée. On indique en général la fin de
l'instruction conditionnelle pour bien délimiter son champ
d'action.
4 LES STRUCTURES DE CONTROLE
4.1. Conditionnelle SI-ALORS-SINONSI-FINSI
Ici, nous avons des instructions conditionnelles imbriquées.
Syntaxe :
SI instructions ALORS
action 1
action 2….
SINON
SI instructions ALORS
action 1
action 2….
SINON
action 1
action 2….
FIN SI
FIN SI
Exemple1 : Ecrire un algorithme qui calcule le maximum entre 2 nombres
Algorithme maximum_deux_nombres
Variable Nombre_1 : numérique
Variable Nombre_2 : numérique
Début
Ecrire « voulez-vous saisir le premier nombre »
LIRE nombre_1
Ecrire « voulez-vous saisir le deuxième nombre »
LIRE nombre_2
SI (nombre_1 > nombre_2) ALORS
ECRIRE nombre_1
SINON
SI (nombre_1 < nombre_2) ALORS
ECRIRE nombre_2
SINON
ECRIRE "Les nombres sont identiques"
FIN SI
FIN SI
Fin
On suppose que si le premier nombre n'est pas supérieur au second et inversement, c'est qu'ils doivent être
identiques.
Exemple 3 : Saisir une note comprise entre 1 et 6 et selon la note saisie, afficher le message suivant :
Note Commentaire
vide Pas de résultat
1 Résultat exécrable
2 Mauvais résultat
3 Résultat médiocre
4 Résultat satisfaisant
5 Bon résultat
6 Excellent résultat
ALGORITHME
Variable nombre : entier
Début
Ecrire « saisissez un nombre »
Lire nombre
Si nombre =1 alors
Ecrire « "Résultat exécrable" »
Sinon
Si nombre =2 alors
Ecrire « " Mauvais Résultat »
Sinon
Si nombre =3 alors
Ecrire « " "Résultat insatisfaisant »
Sinon
Si nombre =4 alors
Ecrire « Résultat satisfaisant »
Sinon
Si nombre =5 alors
Ecrire « Bon résultat »
Sinon
Si nombre = 6 alors
Ecrire « Excellent résultat »
Sinon
Ecrire « Aucun résultat »
Fin si
Fin si
Fin si
Fin si
Fin si
Fin si
Fin
Exemple 2 : Réduction selon l’âge
Si la personne est âgée de moins de 25 ans, elle a droit à une réduction pour « jeune »
Si la personne est âgée de 65 ans et plus, elle a droit à une réduction pour « troisième age »
Sinon la personne paie le « tarif plein »
Algorithme : Reduction
Variable Age : numérique
DEBUT
Ecrire "Entrer votre âge"
Lire Age
Si Age < 25 alors
écrire "Vous avez droit à une réduction pour jeunes"
sinon
Si Age >= 65 alors
écrire "Vous avez droit à une réduction troisième âge"
sinon
écrire "Vous payez le prix plein"
finsi
finsi
écrire "Votre âge est de ", age, " ans "
FIN
4 LES STRUCTURES DE CONTROLE
4.2 INSTRUCTIONS DE CHOIX : SELON QUE
Cette forme conditionnelle permet de mettre en place des choix multiples.
SELON QUE
(Condition_1):
Action_1
(Condition_2):
Action_2
...
(Condition_n):
Action_n
SINON
Action
FIN SELON
CHAPITRE 4 :LES STRUCTURES DE CONTROLE
Les conditions sont évaluées dans l'ordre, les unes après les
autres, et dès qu'une de celles-ci est vérifiée, l'action associée
est exécutée. Après quoi on passe au FIN SELON pour
continuer avec la suite de l'algorithme. On peut utiliser une
instruction SINON (facultative), dont l'action sera exécutée si
aucune des conditions évaluées n'a été remplie.
Algorithme Mois
Variables N : Entier
Début
Ecrire ("Donner le numéro du mois: ")
Lire (N)
Selon N faire
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 ("Le numéro saisi est incorrecte: ")
FinSelon
Fin
5. LES STRUCTURES REPETITIVES
5.1. La boucle TantQue ... Faire
La boucle TantQue permet de répéter un traitement tant que la condition est vraie.
Syntaxe :
TantQue condition faire
Instruction(s)
FinTantQue
L’exécution de la boucle dépend de la valeur de la condition. Si elle est vraie, le
programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne
FinTantQue. Il retourne ensuite sur la ligne duTantQue, procède au même examen,
et ainsi de suite.
La boucle ne s’arrête que lorsque la condition prend la valeur fausse, et dans ce cas
le programme poursuit son exécution après FinTantQue.
5. LES STRUCTURES REPETITIVES
5.2. La boucle Pour ... Faire
La boucle Pour … Faire permet de répéter une liste d’instructions un nombre connu de fois.
Syntaxe :
Pour compteur valeur_initiale jusqu’à valeur_finale Faire
Instruction(s)
FinPour
La variable compteur est de type entier. Elle est initialisée à la valeur initiale. Le compteur
augmente sa valeur de un (1) automatiquement à chaque tour de boucle jusqu’à la valeur
finale.
Pour chaque valeur prise par la variable compteur, la liste des instructions est exécutée.
Lorsque la variable compteur vaut la valeur finale, le traitement est exécuté une dernière fois
puis le programme sort de la boucle.
5. LES STRUCTURES REPETITIVES
5.3. La boucle Répéter … Jusqu’à
Cette boucle sert à répéter une instruction jusqu'à ce qu'une condition soit vraie.
Remarque :
Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse car il n’y a pas de
vérification de la condition avant d’y entrer !
Syntaxe :
Répéter
Instruction(s)
Jusqu'à condition
La liste d’instructions est exécutée, puis la condition est évaluée. Si elle est fausse, le corps de la
boucle est exécuté à nouveau puis la condition est réévaluée et si elle a la valeur vrai, le
programme sort de la boucle et exécute l'instruction qui suit Jusqu'à.