Qu'est-ce qu'un algorithme ?Un algorithme est la description précise, sous forme de concepts simples, de la manière dont on peut résoudre un problème. |
Un programme AlgoBox qui implémente l’algorithme d’Euclide :
|
Algorithmique et programmation Étapes de conception d'un programme informatique 1 – identifier le problème : quelle(s) donnée(s), quel(s) résultat(s) ? 2 – organiser les actions : écrire l'algorithme (pseudo-code, organigramme) - réfléchir aux informations à manipuler - analyser le problème et le décomposer éventuellement en sous-problèmes - rendre l'algorithme compréhensible et efficace - penser à l'utilisateur 3 – Traduire cet algorithme en langage de programmation 4 – Compiler le programme pour qu'il puisse être exécutable Un langage de programmation permet à un humain d'écrire un code pouvant être analysé par une machine puis transformé en un programme informatique. Un programme informatique est une suite d'opérations prédéterminées pouvant être exécutées par une machine. |
Définition d'un algorithme Remarque On désigne par algorithmique ou algorithmie l'ensemble des activités logiques qui relèvent des algorithmes.
Exemples d'algorithmes :
Important Pour fonctionner, un algorithme doit contenir uniquement des instructions compréhensibles par celui qui devra l'exécuter |
Pour être bon en algorithmique ...
Faut-il être matheux pour être bon en algorithmique? Non, pas du tout ! La maîtrise de l'algorithmique requiert trois qualités : 1. 2. 3. |
Les instructions fondamentales Les ordinateurs ne comprennent que quatre catégories d'instructions : 1.l'affectation de variables ; 2.la lecture/écriture ; 3.les tests (les structures conditionnelles) ; 4.les boucles (les structures itératives). Important Un algorithme informatique se ramène toujours à la combinaison de ces quatre types d'instruction. Il peut y en avoir quelques unes, quelques dizaines, et jusqu‘à plusieurs centaines de milliers. |
L'algorithmique et la programmation ... Quelle est la différence entre l'algorithmique et la programmation ? Réponse L’écriture d'un programme dans un langage de programmation n'est que l‘étape finale d'un développement qui se déroule en trois phases : l'analyse, l'algorithmique et la programmation. En d'autre terme : Un algorithme est un maillon de la chaîne de développement d'un programme. Il est le lien indispensable entre l'analyse et la programmation. En utilisant des images : Si un programme était une construction, l'algorithme serait le plan Si un programme était une toile de peinture, l'algorithme serait l'esquisse |
Niveau logique du développement
* Apprendre l'algorithmique, c'est apprendre à manier la structure logique d'un programme informatique. * L'algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. * Lorsqu'on programme dans un langage (en C, en Visual Basic, etc.) on doit, en plus de la structure logique, prendre en considération les problèmes de syntaxe et les types d'instructions propres a ce langage.
Niveaux de développement : 1. Analyse : niveau conceptuel ; 2. Algorithmique : niveau logique ; 3. Programmation : niveau physique. |
Représentation d'un algorithme
Historiquement, plusieurs types de notations ont été utilises pour représenter des algorithmes :
Définition informelle Un pseudo-code est une série de conventions qui ressemble à un langage de programmation authentique dont on aurait évacue la plupart des problèmes de syntaxe. Important Un pseudo-code est susceptible de varier d'une référence à une autre. En effet, un pseudo-code est purement conventionnel. Aucune machine n'est censée le reconnaître. |
Environnement
algorithmique Convention à adopter : squelette d'un algorithme
|
Les Structures de Données : Notions de base
I. Présentation
Sommaire de la Structure d’un Algorithme Dans un
algorithme, on trouve deux parties essentielles : Une partie
déclarative contenant tous les objets qui seront impliqués par les différentes
actions de l’algorithme (constantes, types, variables, etc.). Une partie
réservée aux actions (en programmation, on dit les instructions) ; elle est
délimitée par les deux mots-clés Début et Fin. En outre, un
algorithme est caractérisé par son nom qui devrait être significatif.
Remarque : Le nom d’un
algorithme et d’une manière générale le nom d’un objet impliqué dans les
actions de l’algorithme doivent respecter lors de leur définition les règles
d’un identificateur qui disent : Un
identificateur doit être significatif. Un
identificateur doit être écrit sur 8 positions (Taille <= 8 caractères). Un
identificateur doit commencer obligatoirement par une lettre. Un
identificateur ne doit pas comporter le caractère « espace ». Un
identificateur ne doit pas comporter de caractères spéciaux autre que le tiret
de soulignement (_). Un
identificateur doit être unique dans un algorithme |
II.Notion de Variable On rappelle que l’exécution d’un programme doit impliquer les données qui sont liées à ce programme. Ces données se trouvent à ce moment au niveau de la mémoire centrale et chacune occupe une case mémoire. Une variable est donc un espace mémoire qui va contenir des données au fur et à mesure que le programme avance dans son exécution. Cependant, à un instant donné, une variable ne peut contenir qu’une seule donnée (valeur). Remarques : une variable est caractérisée par son nom qui doit être significatif et respecter les règles d’un identificateur. une variable est également identifiée par son adresse en mémoire centrale ; cette adresse sera intéressante à un stade avancé de l’algorithmique (les pointeurs). une variable est caractérisée par son contenu : les valeurs qu’elle peut prendre lors de l’exécution d’un programme. une variable possède un type c’est à dire un ensemble contenant toutes les valeurs possibles qu’elle peut prendre. |
III. Notion
de Type Une variable
utilisé dans un algorithme ne peut prendre qu’un ensemble de valeurs connues à l’avance
; toute variable possède un domaine de définition. En terme informatique, ce
domaine est appelé le Type de la variable. Un type est
alors caractérisé par : ses valeurs les opérations qui peuvent s’effectuer sur
des variables ayant ce type. On distingue
deux familles de types : les types simples : ce sont des types qui sont supportés
et reconnus par la majorité des langages de programmation. Lors de l’écriture
de l’algorithme ou du programme, ce n’est pas la peine de les déclarer dans la
partie déclarative réservée aux types. Les types composés ou complexes : ce sont des types qui sont construits à partir des types simples mais qu’il faut les déclarer dans la partie réservée aux types : tableaux, chaînes, enregistrements, etc. |
IV. Notion
de Constante Une
constante est une variable qui ne change pas de valeurs lors de l’exécutiond’un
programme. Par exemple
: La constante
PI = 3.14 La constante
e=2.7 Remarque : Le nom d’une
constante doit respecter les règles de constitution d’un identificateur. Ainsi,
on ne peut pas déclarer Ð=3.14 comme constante car le symbole Ð est un
caractère spécial non permis lors de la définition d’un identificateur ; c’est
pour cette raison qu’on utilise PI=3.14. |
|