Vous êtes sur la page 1sur 50

Algorithmique

Concepts fondamentaux des algorithmes


Présenté par Ghislain AKINOCHO
Introduction
Qu’est ce que l’algorithmique ?
Introduction  « Tout problème nécessite une solution pour le résoudre. »
Définition
 Ensemble de règles ET
Introduction  Suite d’instructions exécutées dans un ordre bien
défini en vue :
Définition  de résoudre un problème donné.
 d’obtenir un résultat souhaité.
Les informations fournies en entrée de
DONNEES l’olgorithme pour lui permettre d’effectuer son
traitement

Introduction ALGORITHME La solution : La définition détaillée du traitement


qui résoud le problème.
Définition

Les résultats produits à la fin du traitement, en


RESULTATS
sortie de l’algorithme
 La maîtrise de l’algorithmique requiert 4 éléments
essentiels :

1. La connaissance des règles fondamentales et leurs


contextes d’utilisation
Introduction
Skills 2. Une bonne méthodologie

3. De la rigueur

4. Une très bonne intuition


Un algorithme doit avoir des instructions
Un algorithme doit avoir 0 ou
détaillées, indépendantes de tout code de
plusieurs entrées bien définies.
programmation.

Entrée Indépendance

Un algorithme doit avoir une


ou plusieurs sorties bien Les algorithmes doivent
Introduction définies correspondant aux
attentes.
se terminer après un
nombre fini d'étapes.
Devrait être réalisable avec
les ressources disponibles.
Caractéristiques
Sortie Finitude Faisabilité

L'algorithme doit être clair et sans ambiguïté. Chacune de ses étapes (ou instructions),
ainsi que leurs entrées/sorties, doivent être claires et précises.

Sans
ambiguité
Phase de
conception

REFLEXION
PROBLEME
ALGORITHMIQUE

Introduction
Conception ALGORITHME

La réflexion algorithmique (Analyse) : Cette étape permet au


concepteur de :
1. de comprendre le problème pour lequel il doit trouver
une solution,
2. d’identifier les données et les résultats attendus et
3. de choisir les outils qu’il utilisera pour écrire son
algorithme
 La réflexion algorithmique (encore appelée phase
d’analyse) consiste à extraire de l’énoncé du problème
les éléments de modélisation.

▪ Quel est le but du programme (traitement à


réaliser)
Introduction ▪ Quelles sont les informations nécessaires à la
Analyse résolution du problème ? sous quelles formes sont-
elles requises ?
▪ Quels sont les résultats attendus ? sous quelles
formes sont-elles restituées ?
▪ Quelle est la démarche à adopter ?
▪ Quels sont les outils à utiliser ?
Les concepts de
base
Les variables – Les instructions d’E/S – Les types de
données – Les opérateurs – La logique
 Les éléments essentiels qui constituent le
fondement des algorithmes sont les suivants :
Concepts de
base  Les DataTypes (type de données)
Datatypes
Variables  Les Variables
Instructions E/S
 Les Instructions d’Entrées/Sorties (E/S)
 Quatre types de données sont principalement
manipulées en algorithmique :

 ENTIER : C’est le type nombre entier correspondant à


l’ensemble des entiers relatifs.
Concepts de
base  REEL : C’est le type réel correspondant à l’ensemble IR.

Datatypes
 CHAR (ou BYTE) : C’est le type caractère. Tout caractère
dispose de son code ASCII (valeur entière permettant
de le coder en mémoire).

 CHAINE : C’est le type chaîne de caractères.


 Les variables sont des conteneurs d’informations.

Concepts de  Les données reçues par l’algorithme sont stockées


base dans ces conteneurs.
 Les résultats produits par l’algorithme sont
Variables également stockées dans ces conteneurs.
 Leur contenu est susceptible d’évoluer, de varier
tout le long de l’algorithme
 En informatique, ces conteneurs représentent des
zones mémoires allouées dans la mémoire vive de
Concepts de l’ordinateur.

base  Au lancement du programme, elles servent à


Variables recevoir des informations d’un type bien défini.
 Durant l’exécution du programme, elles permettent
de les manipuler (lire ou modifier leur valeur)
 La déclaration de la variable est le point d’entrée de
son cycle de vie.

 En effet, la variable doit toujours être déclarée avant


sa première utilisation.
Concepts de
base  Cette déclaration permet :
 de lui attribuer un nom par lequel elle sera invoquée
Variables tout le long de l’algorithme.
 de définir le TYPE d’informations qu’elle devra contenir
durant toute son existence
 de définir implicitement la taille de la zone mémoire qui
lui sera allouée dans la mémoire vive.
 Formalisme de déclaration d’une variable

Concepts de VARIABLE nomDeLaVariable : TYPE


base
Variables  où TYPE peut être soit ENTIER, REEL, CHAR ou CHAINE
selon le type d’information qu’elle est appelée à
recevoir.
 Quelques exemples de déclaration d’une variable :

VARIABLE age : ENTIER


Concepts de  Ceci est une déclaration d’une variable age de type ENTIER
base  Elle ne devra contenir que des données de type ENTIER

Variables
VARIABLE uneVariable, uneAutre, encoreUne : ENTIER
VARIABLE nom, prenom : CHAINE
 Une des principales utilisations d’une variable est
l’opération d’affectation.

Concepts de  L’affectation d’une valeur à une variable consiste à


écrire dans la zone mémoire référencée par le nom de
base la variable.
Variables
 Important : « On ne doit affecter à une variable
qu’une valeur correspondant au type défini pour la
variable lors de sa déclaration. »
 Syntaxe de l’affectation
nomDeLaVariable = valeur

Concepts de où valeur peut être une constante, une autre variable ou


base encore le résultat d’une opération arithmétique.

Variables
 Exemple
age = 13 affectation d’une constante

13
Conteneur Valeur à stocker dans la variable age
d’informations
age
 Syntaxe de l’affectation
nomDeLaVariable = valeur

Concepts de où valeur peut être une constante, une autre variable ou


base encore le résultat d’une opération arithmétique.

Variables
 Exemple
age = 13 affectation d’une constante

13
Conteneur Valeur à stocker dans la variable age
d’informations
age
 Exemple
x=y
affectation d’une autre variable de même type

Conteneur Conteneur
d’informations d’informations

Concepts de x y

base
Variables
 Exemple
x=y
affectation d’une autre variable de même type

Conteneur Conteneur
d’informations d’informations

Concepts de x y

base
Variables
 Exemple
x=y
affectation d’une autre variable de même type

Conteneur Conteneur
d’informations d’informations

Concepts de x y

base x=y+2
Variables
affectation du résultat d’une opération arithmétique

Conteneur Conteneur
d’informations d’informations

x y
 Les constantes sont également des conteneurs
d’informations ayant comme particularité de
conserver leur contenu inchangé tout le long de
Concepts de l’algorithme.
base
Constantes  Le contenu doit être défini obligatoirement lors de la
déclaration de la constante, contrairement à la
variable dont le contenu peut être précisé plus tard.
 Formalisme de déclaration d’une constante

Concepts de
CONSTANTE nomDeLaConstante : TYPE = valeur
base
Constantes
 où TYPE peut être soit ENTIER, REEL, CHAR ou CHAINE
selon le type de valeur
 Exemple de déclaration d’une constante :
Concepts de
base CONSTANTE TAILLE_MAX : ENTIER = 10
 Cette instruction permettant de réserver de l’espace
Constantes mémoire pour stocker une constante TAILLE_MAX dont la
valeur ne changera pas durant l’algorithme.
 Un algorithme a souvent besoin qu’on (qui ?) lui
fournisse les informations qui lui seront utiles pour
son traitement.

Concepts de  A la fin du traitement, l’algorithme doit restituer un


base résultat (à qui ?)

Entrées / Sorties
 3 acteurs interviennent donc dans ce tableau …

 qui sont-ils ?
L’ordinateur exécute
les instructions qu’il
reçoit de l’acteur 3.

L’utilisateur fournit les données

L’ordinateur restitue les résultats

1- l’utilisateur 2- l’ordinateur

Concepts de
base Les instructions d’E/S contenues dans l’algorithme
permettent l’interaction entre l’utilisateur et l’ordinateur
Entrées / Sorties
Le concepteur donne des instructions (des ordres) à
l’ordinateur que ce dernier doit exécuter

3- le concepteur
 L’instruction LIRE permet de récupérer les
Concepts de informations venant de l’extérieur (clavier par
exemple) et de les stocker dans une variable.
base
Entrées / Sorties
 Elle correspond à l’instruction d’Entrée
 Analysons l’instruction suivante : LIRE (age)
 age est une variable déclarée de type ENTIER

Concepts de  Cette instruction algorithmique instruit l’ordinateur


de réaliser les actions suivantes :
base 1. attendre que l’utilisateur saisisse une information
Entrées / Sorties (ici un entier) au clavier et la valide (en appuyant
sur la touche entrée du clavier)
2. récupérer l’entier qui vient d’être saisi par
l’utilisateur et enfin
3. l’enrégistrer dans la variable age
 L’instruction ECRIRE permet d’afficher aussi bien le
contenu d’une variable qu’une simple information ou
Concepts de les deux à la fois sur une sortie standard (l’écran par
base exemple).
Entrées / Sorties
 Elle correspond à l’instruction de Sortie

c:\Users>Hello world !
 Analysons l’instruction suivante : ECRIRE (age)
 age est une variable déclarée de type ENTIER
contenant une valeur entière
Concepts de
base  Cette instruction algorithmique instruit l’ordinateur
Entrées / Sorties de réaliser les actions suivantes :
1. Aller dans la mémoire et lire le contenu de la
variable age
2. Afficher la valeur lue à l’écran
 L’affichage d’une chaine de caractère tout court
ECRIRE ("Hello World ! ")
c:\>Hello world !

Concepts de
base  L’affichage combinée est également possible :
Entrées / Sorties
age = 13
c:\>Vous avez 13 ans.

ECRIRE ("Vous avez ", age, " ans.")

Important : Notez la présence des " " pour signaler qu’il s’agit
d’écrire sur l’écran une chaîne de caractères constante.
 La conception de la solution se fait selon une certaine
méthodologie qu’il faut toujours respecter.

Concepts de  Elle comprend 4 étapes essentielles :


base
Conception 1. La phase d’analyse
2. Pré-traitement
3. Traitement
4. Restitution des résultats
1
 La phase d’analyse correspond à la réflexion
algorithmique vue dans les slides précédents.
Concepts de
base
 Les réponses à toutes les questions posées durant
Conception cette étape permettront de mettre en place
l’algorithme proprement dit.
2
Concepts de
 Le pré-traitement consiste à récupérer les données en
base entrée de l’algorithme.
Conception
3
 Le traitement consiste à décrire la résolution pas à
Concepts de pas, instruction par instruction, de manière
base séquentielle

Conception  la décomposition en sous-problèmes est également


possible.
4
Concepts de  La restitution des résultats marque la fin du processus
base et consiste à imprimer à l’écran de l’ordinateur les
résultats du traitement.
Conception
Concepts de  Considérons le problème suivant : « Proposer un
base algorithme qui calcule puis affiche la somme de deux
nombres réels fournis par l’utilisateur »
Exemple complet
Exemple d’algorithme complet

ALGORITHME CalculSomme
{Cette algorithme calcule et affiche la somme de deux
nombres réels que lui fournit l’utilisateur}

DEBUT

{ Déclarations : réservation
VARIABLE x, y, somme : REEL d’espace mémoire }
Concepts de
base ECRIRE ( "Entrez les nombres svp : " ) Pré-traitement :
Lecture des
Solution LIRE (x, y) données

somme = x + y Traitement : Somme des deux réels

ECRIRE ( "Leur somme donne : ", somme ) Restitution des


résultats
FIN
1. Il faut avoir une écriture rigoureuse :
 respecter la casse des mots clés
 utiliser une nomenclature appropriée pour les
identificateurs (nom de fonction, variables, etc …)

2. Il faut avoir une écriture soignée :


Concepts de  respecter l’indentation
base  privilégier l’écriture d’une instruction par ligne
Règles d’écriture
3. Il est important de commenter son algorithme

4. Il existe plusieurs solutions algorithmiques à un


problème posé. Il faut donc rechercher l’efficacité
(performant et optimal).
Problème 1 :
1. Une boutique de vente de produits vous demande
de lui implémenter un programme informatique
permettant d’afficher les informations suivantes
sur un produit :
o La TVA (Taxe sur la Valeur Ajoutée) et
Concepts de o Le prix TTC (Toute Taxe Comprise)
base 2. Le prix hors taxe du produit est fourni par
Applications l’utilisateur.
3. Le taux de la TVA est fixé à 18%

Proposer un algorithme.
Problème 2 :
1. Proposer un algorithme qui demande deux entiers
quelconques à l’utilisateur puis calcule et affiche la
somme des deux nombres sous la forme suivante :
Concepts de
entier1 + entier2 = resultat
base
Applications  Par exemple, si l’utilisateur les entiers 2 et 8,
l’algorithme devra afficher à l’écran :

2 + 8 = 10
Problème 3:

1. Proposer un algorithme qui demande à


l’utilisateur son nom, son prenom, son age, sa
date et son lieu de naissance puis affiche une
phrase à l’écran qui le présente.

Concepts de  Par exemple l’ordinateur devra afficher le texte


suivant :
base
Applications « Bonjour Mr/Mme Joseph NDIAYE, vous êtes né(e) le
10-Octobre-1981 à Thies. »

 si l’utilisateur a saisi les informations suivantes :


nom = NDIAYE, prenom = Joseph, lieu de
naissance = Thies et date de naissance = 10-
Octobre-1981
 Les opérateurs arithmétiques et logiques sont très
souvent utilisés en algorithme pour manipuler et
évaluer les variables.

Concepts de  Les opérateurs arithmétiques


base + : Addition
- : Soustraction
Les opérateurs
* : Multiplication
/ : Division Euclidienne
% : Modulo
 Les opérateurs logiques
ET : Et logique
OU : Ou logique
>= : Supérieur ou égal à
Concepts de <= : Inférieur ou égal à
base == : Egal
!= : Différent de
Les opérateurs
> : Supérieur à
< : Inférieur à
! : Non
 Une proposition est un énoncé qui peut être vrai ou
faux. on dit alors que les deux valeurs de vérité
Concepts de d’une proposition sont « vrai » et « faux ».
base
La logique  A partir d’une ou plusieurs propositions, on peut en
construire d’autres.
 Négation d’une proposition
Concepts de  Si P est une proposition on définit sa négation,
notée !P en algorithmique, à partir de la table
base de vérité suivante :
La logique
P !P
V F
F V
▪ Les connecteurs logiques communément appelés :
opérateurs logiques
▪ Si P et Q sont deux propositions,
▪ On peut définir les propositions suivantes : « P OU Q »
et « P ET Q » par les tables de vérités ci-dessous :

P Q P OU Q P Q P ET Q
Concepts de V V V V V V
base V F V V F F
La logique F V V F V F

F F F F F F

▪ On peut noter que la proposition « P OU Q » est fausse


si et seulement si P est fausse et Q fausse alors que la
proposition « P ET Q » est vraie si et seulement P est
vraie et Q vraie.
A suivre …

Les structures de
contrôles
Les branchements - Les itérations

Vous aimerez peut-être aussi