Vous êtes sur la page 1sur 21

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Ecole Normale Supérieure d'Oran

Introduction à l’Algorithmique

K LABED

Année Universitaire
PEM SE 2019-2020
Références bibliographiques

❑Cormen, Leiserson, Rivest « Introduction à


l'algorithmique » Editeur : Dunod, 2002

❑Michel Quercia « cours et exercices » Editeur Vuibert,


2002

❑P.-C. Scholl, M.-C. Fauvet, F. Lagnier, F. Maraninchi,


« Cours d'informatique : langages et programmation »,
Masson, Paris (Fr), 1993.

❑Robert Michel di Scala « L’essentiel de l’informatique et


de la programmation » Editeur : Berti 2004

❑Thomas Cormen, Charles Leiserson, Ronald Rivest


« Introduction à l'algorithmique » 2002
Dans les années 800, le mathématicien perse Abou Jafar
Muhammad Ibn Mūsa al- khuwārizmī introduit le zéro
(indien) dans les chiffres arabes, décrit comment
résoudre les équations du second degré, et propose de
résoudre certains problèmes mathématiques en répétant
une séquence d’opérations jusqu’à ce qu’un “critère
d’arrêt” soit satisfait. Au XIIème siècle, les moines latins
nomment “algorismus” cette méthode d’Al Khuwarizmi,
qui devient “algorithme” en français en 1554.
Exemple genre de procédé inventé par al-Khuwarizmi

On considère l’équation 4x + 3 = 2 x – 7
Suivre les instructions ci-contre :

•Retrancher 3 dans les deux membres


•Retrancher 2x dans les deux membres
•Diviser par 2 les deux membres
•Ecrire la solution de l’équation
Définition de l’algorithme
Le mot algorithme vient du nom d'un mathématicien,
Al Kwarismi dont le traité d’algèbre décrit des
procédés de calcul à suivre étape par étape pour
résoudre des problèmes qui se ramènent souvent à la
résolution d’équations.

Un algorithme est une suite d’actions que devra


effectuer un automate pour arriver en un temps fini,
à un résultat déterminé à partir d’une situation
donnée. La suite d’opérations sera composée
d’actions élémentaires appelées instructions.
Exemples

1. Un feu tricolore placé à un carrefour suit


un même cycle à l'infini :

- feu vert allumé, feu orange éteint, feu rouge


éteint ;
- temporisation de 20s
- feu vert éteint, feu orange allumé, feu rouge
éteint ;
- temporisation de 5s
- feu vert éteint, feu orange éteint, feu rouge
allumé ;
- temporisation de 20s
Exemples

2. Faire un bon café

1. Faire chauffer de l’eau


1.1 prendre une casserole
1.2 mettre de l’eau dans la casserole
1.2.1 mettre la casserole sous le robinet
1.2.2 ouvrir le robinet
1.2.3 remplir la casserole
1.2.4 fermer le robinet
1.3 allumer un feu de la cuisinière
1.4 attendre l’ébullition
1.5 éteindre le feu de la cuisinière
2. Mettre le café
3. Remuer
4. Server
Definition Algorithme
•Un algorithme est une suite d’instructions
élémentaires qui s’appliquent dans un ordre
déterminé à des données et qui fournissent en un
nombre fini d’étapes des résultats.
•Données →instructions→résultats
•Entrée Traitement Sortie

•Toute suite d’étapes si élémentaire et simple à exécuter


s’appelle un ALGORITHME.
•Un programme c’est un algorithme codé dans un langage
compréhensible par ordinateur à l’aide d’un compilateur
(traducteur).
NECESSITE D’UN FORMALISME FORMALISME ALGORITHMIQUE

Exprimer en langage naturel la solution de l’équation


du second degré ax2 + bx + c = 0

Une solution possible serait :


A, B, C <-- les données
Calculer le discriminant
Cas où il est >0 : x1, x2 = -b +/- Rac(Delta) / 4ac
Cas où il est nul : x1=x2 = -b/2a

Seul le rédacteur connaît avec exactitude, l’interprétation


des symboles qu’il utilise et même certaines tournures
NECESSITE D’UN FORMALISME FORMALISME ALGORITHMIQUE

Une solution possible serait :


A, B, C <-- les données
Calculer le discriminant
Cas où il est >0 : x1, x2 = -b +/- Rac(Delta) / 4ac
Cas où il est nul : x1=x2 = -b/2a

Le signe ß veut dire implicitement pour le rédacteur introduire les


données dans A, B et C.

Pour le rédacteur, le calcul du discriminant est évident.

Pour le rédacteur le mot ‘il’ se rapporte au discriminant.

Pour le rédacteur, l’écriture ‘x1, x2 = -b +/- Rac(Delta) / 4ac veut dire


qu’il existe deux solutions x1 et x2 que l’on doit prendre
alternativement le signe + ensuite le signe – par son écriture +/-. le

rédacteur utilise la fonction Rac pour désigne la racine carrée.

Enfin pour le rédacteur le signe ‘.’ Désigne multiplication.


NECESSITE D’UN FORMALISME FORMALISME ALGORITHMIQUE

pour une solution donnée, il peut exister un ensemble presque


illimité d’expressions différentes. Si n élèves, on a n solutions
distinctes.

Pour chaque expression, on trouve des notations propres au


rédacteur, ce qui entraîne des ambiguïtés et donc des
interprétations différentes.

Quelque soit l'algorithme, solution d'un problème donné, il


doit être communiquer à l'ensemble. Ceci ne peut se faire
en langage naturel pour les principales raisons suivantes :
- difficulté d'exprimer certaines idées telles que la
répétitive.
- ambiguïté
- plusieurs façons d'exprimer la même solution avec risque
d'interprétations différentes.

Solution: Utilisation d’un formalisme


NECESSITE D’UN FORMALISME FORMALISME ALGORITHMIQUE

Un formalisme algorithmique est un ensemble de


conventions (ou de règles) dans lequel on exprime toute
solution d’un problème donné.
langage commun
Communication
Précision - Non ambigüité
PRESENTATION DU FORMALISE ADOPTE
structure d’un algorithme

Entête Algorithme Nom_de_l’algorithme

Environnement Déclarations des objets et Modules utilisés dans


l’algorithme

DEBUT

manipulation des objets et


modules déclarés

Corps

FIN
PRESENTATION DU FORMALISE ADOPTE
structure d’un algorithme

La résolution d’un problème est décrite par :


Un en-tête qui sert à identifier la tache à résoudre.
L’environnement de résolution du problème.
L’algorithme qui décrit la méthode de résolution du problème.
L’entête est introduit par le mot clé algorithme suivi par un identificateur de la
tache considérée.
Pour définir les objets de l’environnement, les langages de programmation
utilisent des instructions déclaratives. Dans le langage que nous utilisons,
l’environnement est représenté par un tableau structuré.
L’algorithme est décrit par une suite d’instruction du langage dont l’exécution
fournit le résultat recherché.
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

Définition de l’environnement

❑L’environnement d’une tache, se compose de tous les objets


nécessaires à son exécution.
❑Définir un environnement consiste à déclarer tous les objets
qui le constituent.
❑On déclare un objet en définissant ses caractéristiques.
Exemple : une déclaration de naissance à l’état civil
comporte les éléments qui caractérisent le nouveau né, à
savoir : son nom, son prénom, son sexe, la date et
l’heure et le lieu de naissance.
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

Tout algorithme utilise des objets qui seront déclarés


dans son environnement.

A chaque objet il faudra faire correspondre :

-Un NOM qui permettra de le désigner et de le


distinguer des autres éléments,

-Un TYPE qui indique la nature de l'ensemble


dans lequel l'objet prend ses valeurs,

- Une VALEUR affectée à cet objet à un moment


donné.
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

La déclaration d’une variable


VARIABLE nom_de_la_variable : type

❑Sa valeur, appelée à varier, ne la caractérise pas.

❑Une cellule de mémoire n’est jamais vide, c’est une suite de bits.

❑On dit qu’une variable a une valeur significative si on lui a affecté une
valeur.

❑Lors de sa déclaration, une variable contient toujours une valeur mais


on dit de cette valeur qu’elle est indéterminée car elle n’est pas
significative.
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

La déclaration d’une constante


CONSTANTE identificateur_constante: valeur

❑Une constante nommée est caractérisée par un nom et sa


valeur qui ne peut en aucun cas être modifiée.

❑Une constante est un objet élémentaire particulier dont la


valeur est invariable durant l’exécution de l’algorithme.
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

Exemple : le calcul du périmètre et de la surface d’un cercle dans


le langage algorithmique est définit comme suit
L’entête

Algorithme périmètre_surface_cercle
L’environnement
Identificateur Nature Type Valeur
rayon, perimetre, surface Variable Réel
pi Constante Réel 3.14

L’algorithme
Début
Ecrire (‘donner la valeur du rayon du cercle’)
Lire (rayon)
perimetre2*pi*rayon
surfacepi*rayon*rayon
Ecrire(‘le périmètre du cercle est :’, perimetre)
Ecrire(‘la surface du cercle est :’, surface)
Fin
L'ENVIRONNEMENT - OBJETS ELEMENTAIRES

Les types élémentaires

❑Définit un ensemble de valeurs simple.

❑ Les types prédéfinis disponibles dans les langages de


programmation sont les types : numériques (entiers et réels), les
caractères, les chaines de caractères et le type logique (booléen).

Les types standards

Numérique Caractère Logique (Booléen)

Entier Réel Caractère Chaine de caractères

Vous aimerez peut-être aussi