Introduction à l'Algorithmique 2025-2026
Introduction à l'Algorithmique 2025-2026
TC et PREPA Techno 1
INFORMATIQUE
Algorithmique
2
PREREQUIS
o Raisonnement logique ;
3
OBJECTIFS GÉNÉRAUX DU COURS
4
PROGRESSION
1. Introduction à l’Algorithmique
CM
2. Les Tests ou Structures Conditionnelles (Alternatives)
TD ch1 + CM
3. Les Boucles ou Structures Itératives (Répétitives)
TD ch2 + CM
Yezaba
Chapitre 1 :
©
Introduction à Algorithmique 5
1. Concepts de Base de l’Algorithmique
1.1. Algorithme et Algorithmique
1.2. Programme et Programmation
1.3. Langage de Programmation
Algorithmique Introduction 6
Yezaba
Introduction à ©
Algorithmique Introduction 7
L’Homme sait résoudre un certain nombre de problèmes complexes en suivant
des procédés logiques.
Cependant l’arrivée des ordinateurs et de l’informatique a révolutionné la façon
de travailler de l’Homme.
En effet les ordinateurs, une fois guidés dans la résolution d’un problème, aussi
complexe soit-il, arrivent à le résoudre désormais en des temps records, là où
l’Homme prendrait plus de temps.
Un Algorithme est une suite finie d’instructions élémentaires, constituant un schéma de calcul ou
de résolution d’un problème.
Il s’exprime dans un pseudo langage appelé Langage de Description Algorithmique (LDA), à la
fois proche du langage courant, et des langages de programmation.
Par conséquent l'Algorithmique est le domaine d'étude des algorithmes, qui prend en compte
leur conception, leur compréhension et leur optimisation.
[Link]
[Link]
Yezaba
Introduction à 1. Concepts de Base de l’Algorithmique ©
❑ Puis dans un second temps, d’avoir par la suite des programmes bien écrits. Un
programme bien écrit, est un programme facile à lire, à comprendre, à modifier
et à corriger, surtout pour une personne étrangère à sa conception.
Yezaba
Introduction à 1. Concepts de Base de l’Algorithmique ©
Cette description est effectuée par une suite d’instructions d’un langage de
programmation, à la différence d'un algorithme qui est écrit dans un pseudo-
langage(LDA), compris uniquement par l'homme.
Un programme n’est pas une solution en soi mais une méthode à suivre pour trouver
les solutions.
❑ La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.
Algorithmique 17
L’étape préalable qui permettra d’aboutir à l’écriture d’un programme est l’écriture d’un algorithme,
qui lui-même est précédé d’une analyse.
L’analyse est la phase de réflexion, qui permet d’identifier les caractéristiques du problème
à traiter puis de découper ce problème en successions de taches simples et distinctes.
Elle consiste à :
REMARQUE :
ALGORITHME Exemple
/* la partie des déclarations */
CONSTANTE // Les constantes nécessitent une valeur des leur
// déclaration
CSTE1=20:ENTIER;
CSTE2=“Bonjour”:CHAINE;
VARIABLE
var1, var2:REEL;
var3:CHAINE;
DEBUT // Corps de l’algorithme
/* les instructions ici */
FIN
Yezaba
Introduction à 2. Les Etapes vers la Programmation ©
Remarques :
❑ Les doubles slash (//) précèdent les commentaires sur une seule ligne, tandis que les textes
encadrés par /* et */ sont pour les commentaires sur plusieurs lignes.
Il s’agira d’une réécriture de l’algorithme défini dans le LDA, dans un langage cible de
programmation (C, JAVA, PHP, etc.).
C’est la phase la plus facile, dans la mesure où il s’agit de remplacer simplement les
mots clés et les structures du LDA, par leurs équivalents, dans le langage cible.
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Pour cela, il utilise des variables ou dans d’autres cas des structures de données.
Une Variable est un moyen de stocker et d’organiser des données pour faciliter leur
utilisation et leur modification.
Elle est matérialisée dans l’ordinateur par la réservation d’un espace mémoire.
Dans un algorithme, elle est représentée par un objet qui est parfaitement défini par la
connaissance de trois caractéristiques essentielles :
❑ Son type
❑ Sa valeur
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les
données manipulées exemples : noteEtudiant, prixTTC, prixHT
Yezaba
Introduction à 3. Variables et Instructions de Base ©
ENTIER
Scalaire CARACTERE
(simple) BOOLEEN Remarque :
REEL
Dans cette partie du cours,
Types nous nous limitons aux types
TABLEAU simples.
ENREGISTREMENT
Structurés
FICHIER
LISTE CHAINEE
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Exemple:
VARIABLE i, j, k: ENTIER;
x, y: REEL;
ok: BOOLEEN;
ch1, ch2: CHAINE;
Remarque :
Une variable est l'association d'un nom avec un type, permettant de mémoriser
une valeur de ce type.
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Exemple : pour calculer la surface d’un cercle, la valeur de pi est une constante mais
le rayon est une variable.
Cette action peut être l’affectation d’une valeur à une variable, l’exécution d’une fonction(sous
programme/algorithme), l’écriture d’une condition, l’entrée dans une itération ou encore bien autre chose.
Une séquence a pour rôle de séparer deux actions. Dans le LDA, on l’exprime par le « ; »
Un bloc d’actions est une suite d’instructions élémentaires formant un tout cohérant et traité comme une
instruction unique. Dans le LDA, un bloc est délimité par DEBUT et FIN (voir l’encadré suivant).
DEBUT Remarque :
instruction 1;
… En utilisant le séparateur d’instruction (action), plusieurs actions peuvent
instruction n; être écrites sur la même ligne, mais pour une question de lisibilité, il est
FIN préférable d’avoir une action par ligne.
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Remarques
❑ Les langages de programmation C, C++, Java, … utilisent le signe égal (=) pour l’affectation ←
❑ Lors d’une affectation, l’expression de droite est évaluée et la valeur trouvée est affectée à la
variable de gauche. Ainsi, A←B est différente de B←A
❑ Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter tout
problème il est préférable d'initialiser les variables déclarées.
Yezaba
Introduction à 3. Variables et Instructions de Base ©
L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération.
Les opérateurs dépendent du type de l'opération, ils peuvent être :
❑ Des opérateurs arithmétiques : +, -, *, /, % (modulo), ^(puissance)
❑ Des opérateurs logiques : NON(!), OU (| |), ET (&&)
❑ Des opérateurs relationnels : =, <=, >=
❑ Des opérateurs sur les chaînes : & (concaténation).
Une expression est évaluée de gauche à droite mais en tenant compte des priorités des
opérateurs.
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Remarque : Le programme s'arrête lorsqu'il rencontre une instruction LIRE() et ne se poursuit qu'après la
saisie de l’entrée attendue par le clavier et de la touche Entrée (cette touche signale la fin de l’entrée).
Conseil : Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit saisir.
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier).
En LDA, on note : ECRIRE (liste d’expressions);
la machine affiche les valeurs des expressions décrite dans la liste.
Ces instructions peuvent être des variables ayant des valeurs, des nombres ou des commentaires sous forme
de chaines de caractères.
Exemple : ECRIRE (a, b+2, "Message");
Yezaba
Introduction à 3. Variables et Instructions de Base ©
Chapitre 2 :
©
Les Structures Conditionnelles / Alternatives 37
1. Le principe
1.1. Conditions
1.2. Instructions Conditionnelles
Une condition est une expression écrite entre parenthèse à valeur booléenne.
Exemples :
/ Alternatives 40
La syntaxe en LDA est la suivante :
SI(condition)ALORS
instruction;//une seule instruction
SI(condition)ALORS
SI(condition)ALORS DEBUT
instruction1;//une seule instruction instructionSi 1;
SINON …
instruction2;//une seule instruction instructionSi n;
FIN
SINON
SI(condition)ALORS DEBUT
//syntaxe pour plus d’une instruction instructionSinon 1;
DEBUT …
instructionSi 1; instructionSinon n;
… FIN
instructionSi n;
FIN
Yezaba
Les Structures Conditionnelles 2. Structure Conditionnelle Minimale
©
/ Alternatives 41
SI(condition)ALORS
instructionSi 1;
SI(condition)ALORS …
//syntaxe avec finsi instructionSi n;
instructionSi 1; Ou dans le cas SINON
… avec un sinon instructionSinon 1;
instructionSi n; …
FINSI instructionSinon m;
FINSI
Yezaba
Les Structures Conditionnelles 2. Structure Conditionnelle Minimale
©
/ Alternatives 42
Remarques :
Exercice 2 : Écrire un algorithme qui demande un nombre réel puis affiche sa valeur
absolue.
1- Utilisez SI… ALORS… SINON,
2- puis SI… ALORS
Yezaba
Les Structures Conditionnelles 3. Structure Conditionnelle à plus de 2 options
©
/ Alternatives 43
La syntaxe en LDA est la suivante :
SI(condition1)ALORS
instruction1; //ou suite d’instructions
SINON SI(condition2)ALORS
instruction2; //ou suite d’instructions
...
SINON
instruction3; //ou suite d’instructions
Remarque: Dans certains langages de programmation, une variante SELONQUE var VAUT
de la structure alternative est le choix multiple ou SELONQUE. DEBUT
Il permet une représentation plus claire et plus concise d’un valeur1:Action 1;
ensembles d’alternatives portant sur différentes valeurs d’une même valeur2:Action 2;
variable ou expression. …………
Elle utilise donc une variable/expression de référence dont la valeur valeurN:Action N;
est comparée à une liste de valeurs. defaut:Action d;
FIN
Sa syntaxe en LDA se trouve ci-contre :
Yezaba
Les Structures Conditionnelles 3. Structure Conditionnelle à plus de 2 options
©
/ Alternatives 44
Exercice 3 : Écrire un algorithme qui demande un nombre réel puis affiche s’il est négatif,
positif ou nul.
Exercice 4 : Le prix de disques compacts (CD) dans un espace de vente varie selon le nombre
à acheter :
• 300 FCFA l’unité, si le nombre de CD à acheter est inférieur à 10,
• 250 FCFA l’unité, si le nombre de CD à acheter est compris entre 10 et 20,
• 200 FCFA l’unité, si le nombre de CD à acheter est au-delà de 20.
Écrivez un algorithme qui demande à l’utilisateur le nombre de CD à acheter, puis qui calcule
et affiche le prix à payer.
Remarques :
❑ Un SINON se rapporte toujours au dernier SI qui n’a pas encore de SINON associé
❑ Il est recommandé de structurer le bloc associé à SI et celui associé à SINON
Yezaba
Les Structures Conditionnelles 4. Les tests imbriqués
©
/ Alternatives 45
Les tests peuvent avoir un degré quelconque d'imbrications.
La syntaxe en LDA est la suivante :
SI(condition1)ALORS
SI(condition2)ALORS
instruction1; //ou suite d’instructions
SINON
instruction2; //ou suite d’instructions
SINON
SI(condition3)ALORS
Instruction3; //ou suite d’instructions
Yezaba
Les Structures Conditionnelles 4. Les tests imbriqués
©
/ Alternatives 46
Exercice 5 : Écrire un algorithme qui permet de Lire deux variables réelles a et b et un opérateur
simple : +, -, *, / et Ecrire le résultat.
Exercice 6 : Ecrire un algorithme qui demande 2 nombres à l’utilisateur, puis l’informe si leur
produit est négatif, positif ou nul.
Chapitre 3 :
©
Les Boucles ou Structures Itératives 47
1. Introduction
2. La boucle POUR
3. La boucle TANTQUE
Structures Itératives 48
Structures Itératives 49
Sa syntaxe en LDA POUR compteur ← valInit A valFin, PAS DE valPas
est la suivante : instruction 1;// ou bloc d’instructions
Remarques :
❑ Le nombre d'itérations dans une boucle Pour est connu avant le début de la boucle
❑ Le compteur est une variable de type entier (ou caractère). Elle doit être déclarée.
❑ Le pas est un entier qui peut être positif ou négatif. Le pas peut ne pas être mentionné, car par
défaut sa valeur est égal à 1. Dans ce cas, le nombre d'itérations est égal à ( valFin – valInit + 1)
❑ valInit et valFin peuvent être des valeurs, des variables définies avant le début de la boucle ou
des expressions de même type que compteur
Yezaba
Les Boucles ou 2. La boucle POUR
©
Structures Itératives 50
Déroulement d’une boucle POUR :
Structures Itératives 51
Remarques:
❑ Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas,
on aboutit à des boucles imbriquées.
Structures Itératives 52
Sa syntaxe en LDA est : TANTQUE(condition)FAIRE
instruction 1;// ou bloc d’instructions
Structures Itératives 53
Remarques :
❑ Le nombre d'itérations dans une boucle TANTQUE n'est pas connu au moment d'entrée dans
la boucle. Il dépend de l'évolution de la valeur de la condition
❑ Une des instructions du corps de la boucle doit absolument changer la valeur de la condition
de vrai à faux (après un certain nombre d'itérations), sinon le programme va tourner
indéfiniment (boucle infinie).
i←1;
Exemple de boucle infinie : TANTQUE(i>0)FAIRE
i←i+1;// incrémenter i
Structures Itératives 54
Saisir :
1 : pour un ajout
2 : pour une modification
3 : pour une suppression
Structures Itératives 55
Sa syntaxe en LDA est : REPETER
instruction 1;// ou bloc d’instructions
JUSQUA(condition)
Structures Itératives 56
Exercice 7 : Ecrire un algorithme qui permet d’afficher un menu à l’utilisateur,
ayant la forme suivante :
Saisir :
1 : pour un ajout
2 : pour une modification
3 : pour une suppression
Structures Itératives 57
❑ La séquence (le bloc) d'instructions est exécutée au moins une fois dans la boucle
REPETER… JUSQUA, alors qu'elle peut ne pas être exécutée dans le cas du
TANTQUE.
❑ Dans les deux cas, la séquence d'instructions doit nécessairement faire évoluer la
condition, faute de quoi on obtient une boucle infinie.
Yezaba
Les Boucles ou 5. Choix d’une boucle
©
Structures Itératives 58
❑ S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de la boucle,
on fera appel à l'une des boucles TANTQUE ou REPETER… JUSQUA. Pour le choix entre
TANTQUE et REPETER… JUSQUA :
Structures Itératives 59
Quelle boucle Voulez vous?
Non
Non
TANTQUE
Yezaba
Les Boucles ou 6. Exercices
©
Structures Itératives 60
Exercice 10 : Écrire un algorithme permettant de Lire un nombre entier n et de calculer sa
factorielle.
∑
Écrire un algorithme qui calcul le terme un et la somme Sn. = .
=
Exercice 13 : Écrire un algorithme qui affiche la somme des n premiers entiers naturels,
n’étant un entier saisi au clavier. L’algorithme devra proposer la possibilité à l’utilisateur de
recommencer le calcul pour un autre entier.
Exercice 14 : Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à
ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un
message : « Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.
𝒌
𝟎
𝒏
𝒌
𝑺
𝒖
𝒒
𝒏
𝒏
𝒏
𝟏
𝒏
𝟐
𝟎
𝟎
𝒏
𝟏
𝟏
𝒖
𝒖
𝒖
𝟓
𝒖
𝒖
𝒖
𝟗
𝑠
𝑖
𝑎
𝑛
𝑣
𝑒
𝑐
𝒖
𝑒
𝑡
𝒖
𝒖
𝒒
𝟒
𝑐
𝑜
𝑛
𝑛
𝑢
𝑠
𝒏