Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Algorithmique
  3. Introduction à l’algorithmique
Extrait - Algorithmique Des bases à la programmation orientée objet en Java (avec exercices et corrigés) (2e édition)
Extraits du livre
Algorithmique Des bases à la programmation orientée objet en Java (avec exercices et corrigés) (2e édition) Revenir à la page d'achat du livre

Introduction à l’algorithmique

Introduction

Les ordinateurs sont de nos jours des machines hypersophistiquées, capables de réaliser des calculs très complexes en un temps infime. Ce sont de véritables « Formule 1 du monde technologique », mais que serait une voiture de course sans tout le talent de son pilote ? Il en est de même pour nos ordinateurs : sans développeur pour la programmer, la machine est comparable à une calculatrice !

Vous avez sûrement été bluffé par "l’intelligence" de certaines machines capables de jouer aux échecs et de battre les meilleurs joueurs humains ou par ChatGPT capable de comprendre votre demande et d’y répondre correctement. Seulement, il ne faut pas oublier que ce sont des personnes qui ont développé ces programmes permettant à la machine de donner l’illusion d’être intelligente. L’intelligence est humaine ! Celle-ci couplée à la vitesse de calcul des machines crée un duo redoutable qui est alors capable de battre des champions du monde d’échecs ou de répondre à vos questions.

Votre part de travail consistera à expliquer à la machine les opérations qu’elle devra réaliser pour atteindre l’objectif fixé (gagner une partie d’échecs ou répondre à une question...

Les algorithmes hors du domaine de l’informatique

Les algorithmes existaient bien avant que l’ordinateur ne soit inventé. L’un des premiers algorithmes a été proposé par Euclide vers 300 avant notre ère. Il permet de calculer le plus grand commun diviseur (PGCD) de deux entiers. Cet algorithme est toujours utilisé de nos jours.

Avant l’ère informatique, un algorithme n’était qu’une méthode permettant de résoudre un problème. De nos jours, il est maintenant possible de programmer ces algorithmes afin qu’ils puissent être exécutés par un ordinateur.

Il existe des algorithmes dans bien d’autres domaines que l’informatique. Par exemple, lorsque vous suivez une recette de cuisine, vous suivez sans le savoir un algorithme. Il en est de même lorsque vous suivez une notice de montage ou un patron de couture.

Voici la définition d’un algorithme d’après le dictionnaire Larousse : "Ensemble de règles opératoires dont l’application permet de résoudre un problème énoncé au moyen d’un nombre fini d’opérations. Un algorithme peut être traduit, grâce à un langage de programmation, en un programme exécutable par un ordinateur". Pour simplifier cette définition, voici une version épurée :...

Les objectifs de l’algorithmique

L’algorithmique est pratiquée à différentes fins. Les quatre principales sont présentées ci-dessous.

1. La conception

Dans ce cas, la problématique est : quelle est la suite d’instructions permettant la résolution du problème posé ? En d’autres termes, l’objectif est de trouver un algorithme permettant de réaliser le travail souhaité.

2. La complexité

Il n’y a pas qu’un seul algorithme permettant de résoudre un problème donné. Tout comme pour reprendre l’exemple de la notice de montage, il n’y a pas forcément qu’une seule façon d’assembler les pièces. Par contre, certaines manières de faire sont peut-être plus aisées ou plus rapides… La complexité a pour objectif de noter l’efficacité d’un algorithme en comptant le nombre d’opérations réalisées. La problématique est donc : quel est l’algorithme le plus économe ? La complexité cherche généralement à minimiser le temps nécessaire pour exécuter l’algorithme, mais il est également possible de chercher à optimiser l’utilisation de la mémoire.

3. La calculabilité

Pour certains problèmes, il n’existe...

Les représentations possibles pour un algorithme informatique

Précédemment, vous avez vu qu’il y avait plusieurs manières de représenter des algorithmes hors du domaine informatique (schéma de montage, suite d’instructions…). Pour des algorithmes de programmes informatiques, il existe deux grandes familles pour les représenter : les logigrammes et le pseudo-code.

1. Les logigrammes

Les logigrammes représentent l’algorithme sous forme d’un schéma.

Les logigrammes ont l’avantage d’être faciles à comprendre. Il suffit de suivre le fil et lorsqu’il y a des losanges, de prendre le chemin correspondant à la réponse à la question posée. Néanmoins, ils ont deux inconvénients majeurs.

  • Le premier est qu’ils sont très gourmands en espace. Lorsque l’algorithme est court, cela ne pose pas de problème, mais lorsque l’algorithme est plus important, cela devient vite problématique.

  • Le second est qu’ils sont éloignés de la plupart des langages de programmation. Il n’existe que très peu de langages de programmation qui utilisent ce type de représentation graphique.

Syntaxe

Les logigrammes sont normalisés et doivent respecter la norme ISO 5807. Voici les principaux symboles qui sont utilisés :

Symbole

Signification

images/01RI02.png

Indique le début ou la fin d’un programme.

images/01RI03.png

Effectue une action.

images/01RI04.png

Effectue une interaction avec l’utilisateur (affiche...