CHAPITRE I : INTRODUCTION A L’ALGORITHMIQUE OBJET : Ce chapitre explique ce que
CHAPITRE I : INTRODUCTION A L’ALGORITHMIQUE OBJET : Ce chapitre explique ce que c’est que l’algorithmique et l’algorithme. OBJECTIFS : A la fin de ce chapitre, vous devez être à mesure de connaître : Ce qu’est l’algorithmique ; Ce que c’est l’algorithme, son rôle, son intérêt et ses caractéristiques. I. DEFINITION DE L’ALGORITHMIQUE « Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils. Ca, ce sont les caractéristiques de la magie. » - Dave Small L’algorithmique est un terme d’origine arabe, comme algèbre, amiral ou zénith. C’est la discipline qui traite des méthodes permettant d’écrire les règles, les méthodes à observer pour concevoir un algorithme. Le problème de l’algorithmique est de faire réaliser par l’ordinateur une tâche complexe (problème) alors que ce dernier n’est capable que d’exécuter des actions élémentaires. Il convient donc pour cela de décomposer cette tâche complexe en une suite de tâches élémentaires qu’on appelle algorithme que l’ordinateur sera capable d’interpréter et d’exécuter directement. Cette méthode de décomposition de problème permet de passer avec un maximum de chances de réussite de la description du problème initial complexe à sa résolution. II. NOTION D’ALGORITHME 1. Définition Avez-vous déjà fait la cuisine? Avez-vous déjà déchiffré une notice en anglais pour faire fonctionner un appareil électronique ? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes. Plus fort : avez-vous déjà indiqué son chemin à une personne égarée ? Avez-vous fait chercher un objet à quelqu’un par téléphone ? Si oui, vous avez déjà créé et fait exécuter des algorithmes. Comme quoi, l’algorithmique n’est pas un savoir ésotérique réservé à quelques rares initiés touchés par la grâce divine, mais une aptitude partagée par la totalité de l’humanité. Donc, pas d’excuses. Un algorithme, c’est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné. Il est écrit dans un langage naturel (français, anglais, arabe, allemand…) et est inintelligible à l’ordinateur. Si l’algorithme est juste, le résultat est le résultat voulu. Le terme algorithme vient du mathématicien Arabe MUHAMMAD IBN MUSA AL KHAREZMI (fin VIIIe siècle, début IXe siècle) qui rédigea un traité exhaustif sur le système de chiffres et de numération hindou d’où est tiré le nôtre. À partir de ce moment, l’utilisation des chiffres et des modes de calcul hindou fût connu sous le nom d’ALGORISMI. Complétons toutefois cette définition. Après tout, en effet, si l’algorithme, comme on vient de le dire, n’est qu’une suite d’instructions menant celui qui l’exécute à résoudre un problème, pourquoi ne pas donner comme instruction unique : « résous le problème », et laisser l’interlocuteur se débrouiller avec ça ? A ce prix, n’importe qui serait champion d’algorithmique sans faire aucun effort. Ce serait trop facile. Pour fonctionner, un algorithme doit donc contenir uniquement des instructions compréhensibles par celui qui devra l’exécuter. 2. Algorithmique et programmation Pourquoi apprendre l’algorithmique pour apprendre à programmer ? En quoi a-t- on besoin d’un langage spécial, distinct des langages de programmation compréhensibles par les ordinateurs ? Parce que l’algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. Pour prendre une image, si un programme était une dissertation, l’algorithmique serait le plan, une fois mis de côté la rédaction et l’orthographe. Or, vous savez qu’il vaut mieux faire d’abord le plan et rédiger ensuite que l’inverse… Apprendre l’algorithmique, c’est apprendre à manier la structure logique d’un programme informatique. Cette dimension est présente quelle que soit le langage de programmation ; mais lorsqu’on programme dans un langage (en C, en Visual Basic, etc.) on doit en plus faire attention aux problèmes de syntaxe, ou de types d’instructions, propres à ce langage. Apprendre l’algorithmique de manière séparée, c’est donc sérier les difficultés pour mieux les vaincre. A cela, il faut ajouter que des générations de programmeurs, souvent autodidactes, ayant directement appris à programmer dans tel ou tel langage, ne font pas mentalement clairement la différence entre ce qui relève de la structure logique générale de toute programmation (les règles fondamentales de l’algorithmique) et ce qui relève du langage particulier qu’ils ont appris. Ces programmeurs, non seulement ont beaucoup plus de mal à passer ensuite à un langage différent, mais encore écrivent bien souvent des programmes qui même s’ils sont justes, restent laborieux. Car on n’ignore pas impunément les règles fondamentales de l’algorithmique… Alors, autant l’apprendre en tant que telle ! Savoir programmer, c’est plus savoir trouver l’algorithme à un problème que de connaître toutes les instructions d’un langage de programmation. La base de la programmation est l’algorithme. 3. Convention d’écriture d’un algorithme Historiquement, plusieurs types de notations ont représenté des algorithmes. Il y a eu notamment une représentation graphique, avec des carrés, des losanges, etc. qu’on appelait des organigrammes. Aujourd’hui, cette représentation est quasiment abandonnée, pour deux raisons. D’abord, parce que dès que l’algorithme commence à grossir un peu, ce n’est plus pratique du tout du tout. Ensuite parce que cette représentation favorise le glissement vers un certain type de programmation, dite non structurée que l’on tente au contraire d’éviter. C’est pourquoi on utilise généralement une série de conventions appelée « pseudo-code », qui ressemble à un langage de programmation authentique dont on aurait évacué la plupart des problèmes de syntaxe. Ce pseudo-code est susceptible de varier légèrement d’un livre (ou d’un enseignant) à un autre. C’est bien normal : le pseudo-code, encore une fois, est purement conventionnel ; aucune machine n’est censée le reconnaître. Donc, chaque cuisinier peut faire sa sauce à sa guise, avec ses petites épices bien à lui, sans que cela prête à conséquence. III. ANALYSE DU PROBLEME En amont de toute programmation se trouve nécessairement un problème. En fait c’est la résolution du problème en utilisant l’ordinateur qui amène à la programmation. Donc pour mieux cerner le problème à résoudre, il ya des étapes à suivre. Ainsi l’analyse d’un problème consiste à : *Enoncer le problème ; *Poser le problème ; *Décrire le cheminement pour la résolution du problème. 1. Enoncer le problème Il consiste à répertorier toutes les données, les situations initiales et aussi les résultats. En plus de cela il s’agit majoritairement de comprendre à fond la nature et le contenu du problème. Vous devrez vous poser ces quelques questions : De quoi est-il question dans le problème ? Qu’est ce qu’on me demande ? Quels sont les éléments contenus dans le problème et que je dois utiliser pour sa résolution ? il ya-t-il un calcul à effectuer (si oui poser la formule du calcul et déduire les éventuelles variables) ? Quelle est la finalité du problème ? 2. Poser le problème C’est décrire les grandes lignes de la résolution du problème posé, c’est-à-dire pour passer des données aux résultats tout en respectant les hypothèses de travail. Il s’agit simplement de dégager les grandes lignes de la résolution du problème. Ceci est l’étape qui précède la résolution proprement dite du problème. 3. Le cheminement Il s’agit de décrire de façon non ambiguë et détaillée les différentes étapes pour passer des données aux résultats tout en respectant les hypothèses de travail. En fait, c’est ici que l’on résout le problème posé. Ce cheminement devra être formulé dans un langage naturel mais non intelligible à l’ordinateur appelé ALGORITHME. Bref, c’est ici que l’on écrit l’algorithme. 4. Les éléments de l’Algorithme Un algorithme se caractérise par deux sous ensembles qui sont : *L’ensemble des objets (données et résultats) *L’ensemble des opérations ou actions L’objet désigne une entité du problème. Il est caractérisé par son identificateur (son nom) et par son titre (l’ensemble des opérations applicables à cet objet).Les actions sont appliquées sur les données pour produire les résultats. 5. Les caractéristiques de l’Algorithme *Formel : langage qui utilise un ensemble de termes et de règles syntaxiques pour permettre de communiquer sans ambiguïté. *Inintelligible à l’ordinateur : L’ordinateur ne comprend pas l’algorithme (écrit dans un langage naturel (espagnol, baoulé, bété, dioula…) donc il va falloir le traduire dans un langage que l’ordinateur comprend (langage de programmation) pour que l’ordinateur puisse l’exécuter. * Indépendant à la fois de l’ordinateur qui l’exécute (à travers les programmes) et des langages de programmation. EXERCICES D’APPLICATION 1. Quel est l’intérêt d’un algorithme ? 2. Quelles sont les qualités attendues d’un programmeur ? 3. « Savoir programmer c’est plus savoir trouver l’algorithme à un problème que de connaître toutes les instructions d’un langage de programmation ». Commentez ce passage. 4. De quoi est constitué un programme informatique ? 5. Quelles sont les grandes lignes de la résolution d’un problème ? 6. Pourquoi pour la résolution d’un problème par l’ordinateur, nous devons le décomposer en éléments très simples et détaillés ? 7. Quelles sont les étapes lors de l’analyse d’un problème ? CHAPITRE II : INTRODUCTION AUX ELEMENTS DE L’ALGORITHME OBJET : Ce chapitre présente la structure de l’algorithme et les objets servant à l’élaboration de celui-ci, c’est-à-dire les différents éléments sur lesquels les actions vont porter. OBJECTIFS : A la uploads/Ingenierie_Lourd/ partie1-algo-23-014506.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 02, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.1258MB