Académique Documents
Professionnel Documents
Culture Documents
Cours:
ALGORITHMIQUE ET PROGRAMMATION
ALGORITHMIQUE
2
PRÉREQUIS :
q Raisonnement logique ;
OBJECTIFS GÉNÉRAUX 3
DU COURS :
OBJECTIFS SPÉCIFIQUES 4
DU COURS :
q Expliquer les principes de base de l'Algorithmique et de la Programmation ;
5
MOTS-CLÉS :
Chapitre 1: 6
Introduction Et Concepts De Base
1- Introduction
2- Algorithme et Algorithmique
3- Programme et Programmation
4- Langage de Programmation
Yezaba©
Introduction Et Concepts De Base
1- Introduction
7
Yezaba©
Introduction Et Concepts De Base
1- Introduction
8
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.
Par conséquent l'Algorithmique est le domaine d'étude des algorithmes, qui prend
en compte leur conception, leur compréhension et leur optimisation.
Un algorithme peut se comparer à une recette de cuisine.
https://www.rubiks-cube.fr/
https://lerubikscube.com/resolution-facile-3x3x3/
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
13
Un exemple détaillé: valeur approximative de la racine carrée de X
Pour trouver une valeur approximative de √x
o Prendre une approximation initiale arbitraire G
o Améliorer cette approximation en calculant la moyenne arithmétique entre G et x/G
o Continuer jusqu'à atteindre la précision souhaitée.
Pour x=2
G = 1, X/G = 2, G = ½ (1+ 2) = 3/2 = 1.5
X/G = 4/3 G = ½ (3/2 + 4/3) = 17/12 = 1.416666
X/G = 24/17 G = ½ (17/12 + 24/17) = 577/408 = 1.4142156
…
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
14
L’objectif principal de l’algorithmique est de:
q 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 Et Concepts De Base
3- Programme et Programmation
15
Un Programme correspond à la description d’une méthode de résolution pour un
problème donné.
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.
Ces instructions permettent de traiter et de transformer les données (entrées) du
problème à résoudre pour aboutir à des résultats (sorties).
Un programme n’est pas une solution en soi mais une méthode à suivre pour trouver les
solutions.
q La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.
Chapitre 2 : 19
Les Étapes vers la Programmation
1- Introduction
2- L'Analyse
2- Ecriture de l'algorithme
3- Ecriture du programme
Yezaba©
Les Étapes vers la Programmation
1- Introduction
20
Données de
• Objectif final
Sortie(DS)
Yezaba©
Les Étapes vers la Programmation
2- L’Analyse
23
Exemple : 𝑎𝑥 ! + 𝑏𝑥 + 𝑐 = 0 Remarque :
q 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.
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©
Chapitre 3 : 28
Notion de Structure de Données et Variables
1- Introduction
Pour cela, il utilise des variables ou dans d’autres cas des structures de
données.
Yezaba©
Notion de Structure de Données et Variables
1- Introduction
30
Une structure de données est un moyen de stocker et d’organiser des
données pour faciliter leur utilisation et leur modification.
Dans un algorithme, elle est représentée par un objet qui est parfaitement
défini par la connaissance de trois caractéristiques essentielles :
q Son type
q Sa valeur
Yezaba©
Notion de Structure de Données et Variables
2- Identification d'un objet
31
Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les
données manipulées exemples : noteEtudiant, prixTTC, prixHT
Yezaba©
Notion de Structure de Données et Variables
3- Type d'un objet
32
Le type d’un objet est l’ensemble des valeurs possibles qu’il peut prendre : c’est
l’ensemble de définition. Un objet peut être une constante (sa valeur est fixe) ou une
variable.
ENTIER
Scalaire CARACTERE
(simple) BOOLEEN
REEL
Remarque:
Types Dans ce cours, nous nous
TABLEAU limitons aux types simples.
ENREGISTREMENT
Structurés
FICHIER
LISTE CHAINEE
Yezaba©
Notion de Structure de Données et Variables
4- Déclaration d'une variable / constante
33
<VARIABLE> liste identificateurs: <TYPE>;
//identificateurs separés par des virgules, lorsqu’il y en a plusieurs
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©
Notion de Structure de Données et Variables
4- Déclaration d'une variable / constante
34
Une constante est une variable dont la valeur ne change pas au cours de l'exécution du
programme, elle peut être un nombre, un caractère, ou une chaine de caractères. En
pseudocode, on notera comme suit :
<CONSTANTE> IDENTIFICATEUR = valeur: <TYPE>;
q Par convention, les noms de constantes sont en majuscules.
q Une constante doit toujours recevoir une valeur dès sa déclaration.
Exemple : pour calculer la surface d’un cercle, la valeur de pi est une constante mais le
rayon est une variable.
Chapitre 4 : 35
Instructions de Base d’un algorithme
1- Instruction/Bloc d’instructions
2- La séquence
3- L’affectation de variables
4- Expressions et Opérateurs
5- La lecture et l’écriture
Yezaba©
Instructions de Base d’un algorithme
1- Instruction / Bloc d’instructions
36
Une instruction est un ensemble de caractères permettant au programmeur de
déterminer une action à mener par son algorithme.
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.
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
instruction 1;
…
instruction n;
FIN
Yezaba©
Instructions de Base d’un algorithme
2- La séquence
37
Elle a pour rôle de séparer deux actions. Dans le LDA, on l’exprime par le « ; »
Remarque :
q Les langages de programmation C, C++, Java, … utilisent le signe égal (=) pour
l’affectation ←
q 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
q L’affectation est différente d'une équation mathématique :
v Les opérations x ← x+1 et x ← x-1 ont un sens en programmation et se nomment
respectivement incrémentation et décrémentation, ce sont des affectation particulières.
vA+1 ← 3 n'est pas possible en langages de programmation et n'est pas équivalente à
A←2
q 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©
Instructions de Base d’un algorithme
4- Expressions et Opérateurs
40
Une expression peut être une valeur, une variable ou une opération constituée de
variables reliées par des opérateurs.
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 :
q Des opérateurs arithmétiques : +, -, *, /, % (modulo), ^(puissance)
q Des opérateurs logiques : NON(!), OU (| |), ET (&&)
q Des opérateurs relationnels : =, <=, >=
q 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©
Instructions de Base d’un algorithme
4- Expressions et Opérateurs
41
Remarques : Opérateurs Booléens :
q On ne peut pas additionner un entier et un
caractère. Toutefois dans certains langages on Associativité des opérateurs ET et OU
peut utiliser un opérateur avec deux a ET (b ET c) = (a ET b) ET c,
a OU (b OU c) = (a OU b) OU c
opérandes de types différents, c’est par
Commutativité des opérateurs ET et OU
exemple le cas avec les types arithmétiques (4 a ET b = b ET a,
+ 5.5) a OU b = b OU a
q La signification d’un opérateur peut changer Distributivité des opérateurs ET et OU
en fonction du type des opérandes. a OU (b ET c) = (a OU b) ET (a OU c),
a ET (b OU c) = (a ET b) OU (a ET c)
L’opérateur + avec des entiers effectue
Involution (homographie réciproque) :
l’addition, 3+6 vaut 9, avec des chaînes de NON NON a = a
caractères il effectue la concaténation Loi de Morgan :
"bonjour" + " tout le monde" vaut "bonjour NON (a OU b) = (NON a) ET (NON b),
tout le monde"* NON (a ET b) = (NON a) OU (NON b)
Yezaba©
Instructions de Base d’un algorithme
5- La lecture et l’écriture
42
Les instructions de lecture et d'écriture permettent à la machine de communiquer avec
l'utilisateur.
Lecture
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.
Yezaba©
Instructions de Base d’un algorithme
5- La lecture et l’écriture
43
Ecriture
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");
Chapitre 5 : 44
La Structure Conditionnelle (Alternative)
1- Le principe
Exemples :
DEBUT
Un bloc d’instructions en LDA est un ensemble instruction 1;
d’instructions délimitées par DEBUT et FIN, …
comme présenté sur l’encadré ci-contre. instruction n;
FIN
Yezaba©
La Structure Conditionnelle (Alternative)
2- La structure conditionnelle minimale
48
Remarques :
Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et
affiche s'il est divisible par 7 ou non
Écrire un algorithme qui demande un nombre réel puis affiche sa valeur absolue.
1- Utilisez SI… ALORS… SINON,
2- puis SI… ALORS
Yezaba©
La Structure Conditionnelle (Alternative)
3- La structure conditionnelle à plus de 2 options
49
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
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 :
q Un SINON se rapporte toujours au dernier SI qui n’a pas encore de SINON associé
q Il est recommandé de structurer le bloc associé à SI et celui associé à SINON
Yezaba©
La Structure Conditionnelle (Alternative)
4- Les tests imbriqués
52
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©
Chapitre 6 : 53
Les Structures Répétitives (Boucles)
1- Introduction
2- La boucle POUR
3- La boucle TANTQUE
Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre
de fois. On distingue trois sortes de boucles :
q Le compteur est une variable de type entier (ou caractère). Elle doit être déclarée.
q 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)
q 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 Structures Répétitives (Boucles)
2- La boucle POUR
56
Remarques:
q Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas, on
aboutit à des boucles imbriquées.
Si elle est encore vraie, on répète l'exécution, … Si la condition est fausse, on sort de la
boucle et on exécute l'instruction qui est après le TANTQUE.
Les instructions entre Répéter et jusqu’à sont exécutées au moins une fois et leur
exécution est répétée jusqu’à ce que la condition soit vraie (tant qu'elle est fausse).
Yezaba©
Les Structures Répétitives (Boucles)
4- La boucle REPETER ... JUSQUA
62
q 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.
q 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 Structures Répétitives (Boucles)
5- Choix d'une boucle
64
Non
Non
TANTQUE