Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Chapitre 1 :
Introduction aux concepts d’algorithmique
M. André Bernard Simel YOUM
UNIVERSITÉ AMADOU MAHTAR MBOW - DAKAR
Licence 1, ESMGE
Semestre 1
2023-2024
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Plan
1 Étape de résolution d’un problème
2 Notion d’algorithmique
Définition
Étapes d’un algorithme
Représentation d’un algorithme
3 Notion d’Entrées/Sorties
4 Notion de variable
Définition
Nommage des variables
Types des variables
Déclaration
5 Opérateurs
Types d’opérateurs
Priorité des opérateurs
6 Fonctions d’entrée/sortie
7 Structure d’un algorithme
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Étape de résolution d’un problème
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Définition
Notion de variable Étapes d’un algorithme
Opérateurs Représentation d’un algorithme
Fonctions d’entrée/sortie
Structure d’un algorithme
Définition
L’algorithmique désigne la discipline qui étudie les algorithmes et
leurs applications en Informatique.
Un algorithme est une description complète et détaillée des actions à
effectuer et de leur séquencement pour arriver à un résultat donné.
Un algorithme est une suite finie d’instructions, écrites en langage
naturel, qui peuvent être exécutées les unes à la suite des autres
pour résoudre un problème.
Intérêt : séparation analyse/codage (pas de préoccupation de
syntaxe)
Qualités : exact (fournit le résultat souhaité), efficace (temps
d’exécution, mémoire occupée), clair (compréhensible), général
(traite le plus grand nombre de cas possibles), etc.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Définition
Notion de variable Étapes d’un algorithme
Opérateurs Représentation d’un algorithme
Fonctions d’entrée/sortie
Structure d’un algorithme
Étapes d’un algorithme
Un algorithme comprend trois étapes :
1 Une phase d’initialisation : C’est la préparation du traitement. On
repère les données nécessaires à la résolution.
2 Une phase de traitement du problème : On détermine les étapes
du traitement et donc les instructions à donner pour une exécution
automatique.
3 Une phase de sortie des résultats : Les résultats obtenus peuvent
être affichés à l’écran, imprimés ou encore sauvegardés dans un
fichier. Les sorties peuvent éventuellement être des graphiques, des
images...
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Définition
Notion de variable Étapes d’un algorithme
Opérateurs Représentation d’un algorithme
Fonctions d’entrée/sortie
Structure d’un algorithme
Représentation d’un algorithme
Un algorithme peut être représenté de deux manières :
1 Organigramme : représentation graphique avec des symboles
(carrés, losanges, etc.)
offre une vue d’ensemble de l’algorithme
représentation quasiment abandonnée aujourd’hui
2 Pseudo-code : représentation textuelle avec une série de
conventions ressemblant à un langage de programmation (sans les
problèmes de syntaxe)
plus pratique pour écrire un algorithme
représentation largement utilisée
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Définition
Notion de variable Étapes d’un algorithme
Opérateurs Représentation d’un algorithme
Fonctions d’entrée/sortie
Structure d’un algorithme
Exemple d’organigramme
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Notion d’Entrées/Sorties
Les Entrée/Sorties permettent à la machine de communiquer avec
l’utilisateur.
Entrées : elles se matérialisent par une instruction de lecture qui
permet d’entrer des données à partir du clavier.
Sorties : elles se matérialisent par une instruction d’écriture qui
permet d’afficher des résultats à l’écran (ou de les écrire dans un
fichier).
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Définition
En algorithmique, une variable sert à stocker la valeur d’une donnée ;
Une variable désigne en fait un emplacement mémoire dont le
contenu peut changer au cours de l’agorithme ;
Aux yeux de l’algorithmicien, cette variable est définie et accessible
par un nom, alors que pour l’ordinateur, il s’agit en fait d’une
adresse, c’est-à-dire d’une zone particulière de la mémoire.
Elle possède un certain nombre de caractéristiques :
identificateur (nom) ;
type ;
valeur ;
portée.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Nommage
En partie par obligation liée au langage, et en partie par convention pour
l’enseignement, un nom de variable doit :
débuter par une lettre sans accent,
contenir que des lettres sans accents, des chifres et le tiret de
soulignement _ (appelé tiret “underscore” ou encore “tiret du 8”),
être aussi explicite que possible (comme age, longueur, nombre, nbr,
somme....) — ne pas utiliser de noms trop courts et sans signifcation
évidente.
De plus, en programmation, il faut éviter d’utiliser un mot « réservé » du
langage comme nom de variable (Exemple de mot réservé en Python :
print,range, for, from, etc.).
NB : On peut utiliser une seule lettre pour nommer une variable.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Types des variables
Le type d’une variable ou donnée détermine l’ensemble des valeurs
qu’elle peut prendre.
Il est important pour l’ordinateur de savoir de quel type est une
variable, car cela correspond à une certaine place à réserver en
mémoire.
entier (court ou long)
réel (simple ou double précision)
booléen : deux valeurs VRAI ou FAUX
caractère : lettres majuscules, minuscules, chiffres, symboles.
Esemple : ’a’
chaîne de caractère : toute suite de caractères. Exemple : "alpha"
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Déclaration
En algorithmique, pour pouvoir utiliser une variable, il faut procéder en
deux temps :
1 déclarer la variable avec un certain type,
2 lui affecter une valeur (et éventuellement lui réaffecter une ou
plusieurs nouvelles valeurs par la suite).
En algorithmique, on utilise la syntaxe suivante :
Variable liste_identificateur : type
Exemple : Variable x : réel
On peut déclarer, en même temps, plusieurs variables du même type en
les séparant par virgule.
Exemple : Variable i, j : entier
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Instruction d’affectation (1/2)
L’affectation consiste à attribuer une valeur à une variable
En algorithmique, l’opérateur d’affectation est représenté par une
fèche gauche (←). Exemple : x ← 4
L’affectation se fait en deux temps :
1 évaluation (c’est à dire calcul) de l’expression située à droite de
l’opérateur d’affectation(selon des règles de priorité de calcul
correspondant au type des données concernées). Le résultat de cette
évaluation est la donnée (le contenu) qui va être « rangée » dans la
variable.
2 rangement du résultat de cette évaluation dans la variable
(association du nom à la donnée), qui est obligatoirement la partie
située à gauche de l’opérateur d’affectation.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Instruction d’affectation (2/2)
À gauche de l’opérateur d’affectation, nous avons toujours une
variable
À droite de l’opérateur d’affectation, nous avons toujours une
expression. L’expression peut être une :
valeur ;
variable ;
opération constituée de variables et/ou de valeurs reliées par des
opérateurs.
L’affectation ne modifie que ce qui est à gauche de l’opérateur
d’affectation.
L’évaluation de l’expression fournit une valeur unique
Une expression est évaluée de gauche à droite mais en tenant
compte de priorités des opérateurs
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique Définition
Notion d’Entrées/Sorties Nommage des variables
Notion de variable Types des variables
Opérateurs Déclaration
Fonctions d’entrée/sortie
Structure d’un algorithme
Déclaration des constantes
Une constante est une variable dont la valeur ne doit pas changer au
cours de l’exécution de l’algorithme. Par convention, on la nomme en
MAJUSCULES.
La syntaxe est la suivante :
constante Nom_Variable : type ← expression
Exemple :
constante PI : réel ← 3.1415927
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Types d’opérateurs
Notion de variable Priorité des opérateurs
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Types d’opérateurs
Afin de pouvoir effectuer des opérations sur des données, on utilise des
opérateurs. L’action d’un opérateur dépend du type des données utilisées.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Types d’opérateurs
Notion de variable Priorité des opérateurs
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Priorité des opérateurs (1/2)
Lorsqu’il y a plus d’un opérateur dans une expression, l’ordre dans lequel
les opérations doivent être effectuées dépend de règles de priorité.
En Algorithmique, les règles de priorité sont (du plus prioritaire au moins
prioritaire) :
ˆ : élévation à la puissance
* , /, div : multiplication, division réelle, division entière
mod : reste de la division entière
+ , - : addition, soustraction
Si deux opérateurs ont la même priorité, l’évaluation est effectuée de
gauche à droite.
En cas de besoin (ou de doute), on utilise les parenthèses pour
indiquer les opérations à effectuer en priorité.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties Types d’opérateurs
Notion de variable Priorité des opérateurs
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Priorité des opérateurs (2/2)
Les règles de priorité peuvent être mémorisées aisément à l’aide d’un
mnémotechnique, l’acronyme PEMDAS :
P pour parenthèses. Ce sont elles qui ont la plus haute priorité. Elles
vous permettent donc de "forcer" l’évaluation d’une expression dans
l’ordre que vous voulez.
E pour exposants. Les exposants sont évalués ensuite, avant les
autres opérations.
M et D pour multiplication et division, qui ont la même priorité.
Elles sont évaluées avant l’addition A et la soustraction S, lesquelles
sont donc effectuées en dernier lieu.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Fonctions d’entrée/sortie
Afin que l’utilisateur puisse entrer des données dans les variables de
l’algorithme et visualiser les résultats calculés par l’algorithme,
l’algorithmicien utilise des fonctions d’entrée (opération de lecture) et
de sortie (opération d’écriture) pour écrire les instructions de
l’algorithme.
En algorithmique :
Fonction d’entrée : Lire (variable)
Cette instruction de lecture permet d’entrer des données à partir du
clavier, de les récupérer et les affecter à la variable.
Fonction de sortie : Ecrire (variable)
Cette instruction d’écriture permet d’afficher le contenu de la
variable et des résultats à l’écran (ou de les écrire dans un fichier).
NB :La fonction Ecrire () peut afficher un texte et le mélange de texte
et de variable.
M. André Bernard Simel YOUM Algorithmique
Étape de résolution d’un problème
Notion d’algorithmique
Notion d’Entrées/Sorties
Notion de variable
Opérateurs
Fonctions d’entrée/sortie
Structure d’un algorithme
Structure d’un algorithme
Un algorithme est structuré de la manière suivante :
Nom de l’algorithme (facultatif)
Déclaration des variables
Début
Instructions
Fin
M. André Bernard Simel YOUM Algorithmique