Vous êtes sur la page 1sur 11

Introduction lalgorithmique

ALGO
I. A. B. C. D. E. F. G. I. A. II. A. B. C. D. E. 1. 2. 3. III. A. B. C. D. IV.

Ch 1 Introduction

DEFINITIONS ET EXEMPLES ................................................................................................................................ 1 A LORIGINE DES ALGORITHMES ............................................................................................................................... 1 LALGORITHME ....................................................................................................................................................... 2 LALGORITHMIQUE .................................................................................................................................................. 2 LE PROCESSEUR .................................................................................................................................................... 2 EXEMPLES DALGORITHMES..................................................................................................................................... 2 ENVIRONNEMENT DUN ALGORITHME........................................................................................................................ 3 CARACTERISTIQUE ESSENTIELLE DUN ALGORITHME ................................................................................................. 4 ALGORITHMIQUE ET MATHEMATIQUE <NEW> ................................................................................................. 4 FONCTIONS NUMERIQUES ....................................................................................................................................... 4 ALGORITHMIQUE ET INFORMATIQUE ................................................................................................................ 4 ALGORITHMES INFORMATIQUES ............................................................................................................................... 4 EXEMPLES ............................................................................................................................................................. 4 DE LALGORITHME INFORMATIQUE AU PROGRAMME INFORMATIQUE ........................................................................... 6 DES BESOINS DES UTILISATEURS A LALGORITHME .................................................................................................... 7 DEMARCHE POUR LECRITURE DUN ALGORITHME ..................................................................................................... 7 Analyser les donnes ...................................................................................................................................... 8 Structurer lalgorithme ...................................................................................................................................... 8 Module de contrle et modules fonctionnels ................................................................................................... 8

NOTATIONS ALGORITHMIQUES .......................................................................................................................... 8 NOTATIONS ALGORITHMIQUES ................................................................................................................................. 8 LE PSEUDO-CODE ................................................................................................................................................... 9 LORGANIGRAMME (OU ORDINOGRAMME) ................................................................................................................. 9 LARBRE PROGRAMMATIQUE.................................................................................................................................. 10 CONCLUSION ....................................................................................................................................................... 11

I. Dfinitions et exemples
A. A lorigine des algorithmes
La notion dalgorithme remonte lantiquit (3 millnaires avant JC, chez les babyloniens, en Msopotamie, actuellement lIrak) et dcrivait des mthodes de rsolution dquations. Le mathmaticien grec Euclide (plus rcemment, 3 sicles av. JC) a dcrit la dtermination du plus grand diviseur commun de 2 nombres sous forme dune suite de calculs. Mais cest bien plus tard quon a pu nommer ces dmarches algorithme . Cest en effet du nom dun mathmaticien perse (800 ap. JC, actuel Ouzbkistan), Al-Khawarizmi, quon a introduit, 600 ans plus tard, vers 1550, le terme algorithme .

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 1 / 11

Introduction lalgorithmique

B. Lalgorithme Un ALGORITHME est un enchanement ordonn dactions lmentaires permettant lobtention dun rsultat dtermin. En dautres termes : Cest lexpression de la rsolution dun problme pos. Cest le moyen dobtenir un rsultat souhait. -La succession des actions forme les tapes de la rsolution du problme pos initialement on ne peut concevoir un algorithme que si un problme est soluble !
Synonymes ou termes proches : procdure, mode opratoire, programme, recette, etc.

Un ACTION modifie lenvironnement, et reprsente une volution ncessaire llaboration de la solution laquelle on doit aboutir.
Certaines actions sont lmentaires, non dcomposables. Dautres actions regroupent un certain nombre dactions lmentaires et constituent des procdures ou fonctions.

Algorithme Problme = recherche dun rsultat


action1 action2 actionN

Rsultat

C. Lalgorithmique LALGORITHMIQUE consiste en un ensemble de REGLES et de TECHNIQUES mis en uvre dans la construction des algorithmes. D. Le processeur
Les actions lmentaires dun algorithme doivent tre excutes les unes la suite des autres par un systme de traitement ( un tre humain ou une machine ).

Le PROCESSEUR est le systme charg dexcuter lalgorithme : il devra savoir comment en excuter chacune de ses actions lmentaires. Le processeur des algorithmes est le plus souvent ltre humain.
Origine de processeur : anglais to process = traiter

E. Exemples dalgorithmes
Dans la vraie vie , nous excutons chaque jour des suites dactions qui sont en fait des formes d algorithmes , le plus souvent inconsciemment. Exemple : (rsultat recherch : la voiture est sortie du garage ) ALGO_ch1_introduction.doc 24/08/2013 19:01 Page 2 / 11

Introduction lalgorithmique Algorithme : sortir la voiture du garage 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Aller jusquau garage Ouvrir la porte du garage Aller jusqu la voiture Ouvrir la portire Monter dans la voiture Mettre la clef dans le contact Dmarrer le moteur Passer la marche arrire Reculer jusqu tre lextrieur du garage Arrter le vhicule Mettre au point mort Arrter le moteur Retirer la clef du contact Descendre de la voiture Fermer la portire Aller jusquau garage Fermer la porte du garage Aller jusqu la voiture Rsultat = la voiture est sortie du garage (OK)

Exemple : (rsultat recherch : un brownie prt dguster) Algorithme : prparer un brownie 1. Mlanger le sucre semoule, le sucre vanill, les ufs et la farine tamise 2. Faire fondre le beurre 3. Mettre le four prchauffer et pendant ce temps : 4. Mlanger le beurre la pte jusqu avoir un mlange homogne 5. Faire fondre le chocolat 6. Mlanger le chocolat la pte tant que le mlange nest pas homogne 7. Mlanger les noix de Pcan et la poudre damande la pte 8. Verser la pte dans un moule gteau beurr 9. Mettre cuire pendant 35 minutes dans le four prchauff 170C 10. Arrter le four 11. Sortir le gteau Rsultat = le brownie est prt (OK) Lexcution des actions permettant la ralisation de la recette est squentielle : les actions sont ralises les unes la suite des autres. Certaines actions sont galement rptes jusqu ce quelles soient compltement ralises. Dautres encore sont amenes se drouler en parallle.

F. Environnement dun algorithme


La suite dactions constituant un algorithme ncessite trs souvent lutilisation dlments extrieurs, indispensables lexcution des actions lmentaires : o Les ingrdients dans le cas dune recette, o Le dtail des salaires et dpenses pour la vrification dun relev de compte, Un algorithme ncessite trs souvent la fourniture dlments ( en entre ) pour produire un rsultat ( en sortie .) ALGO_ch1_introduction.doc 24/08/2013 19:01 Page 3 / 11

Introduction lalgorithmique
Farine tamise Noix de Beurre Sucre vanill Pcan Oeufs Poudre Chocolat damande Sucre semoule

ENTREES

ALGORITHME

Prparer un Brownie

SORTIE

un Brownie

Figure 1 : l'algorithme "Prparer un Brownie" : transforme les ingrdients qui lui sont fournis (=en entre) pour produire un rsultat, le Brownie (=en sortie)

G. Caractristique essentielle dun algorithme Un ALGORITHME devra fournir un RESULTAT IDENTIQUE POUR LES MEMES ELEMENTS FOURNIS EN ENTREE, dans des conditions de fonctionnement identiques, ceci EN UN TEMPS DETERMINE.

I. Algorithmique et mathmatique <new>


A. Fonctions numriques
Les fonctions numriques mathmatiques reprsentent une premire forme dalgorithmes calculatoires. A travers la dfinition formelle dun ensemble de dpart et dun ensemble darrive, et dune rgle de transformation, la fonction.

II. Algorithmique et informatique


A. Algorithmes informatiques Un ALGORITHME INFORMATIQUE est un enchanement dinstructions lmentaires ncessaire la rsolution de problmes gnralement calculatoires (= mettant en uvre des calculs)
Les lments qui lui seront fournis en entre et le rsultat produit seront maintenant des donnes (reprsentations codes du monde rel) plutt que des objets du monde rel. On peut bien sr tendre la notion dalgorithme calculatoire toutes les formes de pilotage de machines et robots qui ncessitent des calculs complexes et appliqus des donnes fournies par des capteurs sous forme de signaux numriques.

B. Exemples
Exemples dalgorithmes calculatoires de la vraie vie : Algorithme : calculer le cot dun crdit Donnes variables : montant emprunt, remboursement mensuel, nombre de mois 1. 2. Calculer le montant total rembours = remboursement mensuel X nombre de mois Calculer le cot du crdit = montant total rembours montant emprunt Rsultat = cot du crdit ALGO_ch1_introduction.doc 24/08/2013 19:01 Page 4 / 11

Introduction lalgorithmique

Algorithme : calculer la surface de papier peint poser dans une pice rectangulaire Donnes en entre : hauteur de la pice, largeur et longueur de la pice, nombre de portes, nombre de fentres Donnes intermdiaires : Donnes constantes : surface dune porte : 2 m2, surface dune fentre : 2 m2 1. 2. 3. 4. Calculer la surface totale des murs = ( (largeur + longueur ) X 2 ) X hauteur Calculer la surface des portes = surface dune porte X nombre de portes Calculer la surface des fentres = surface dune fentre X nombre de fentres Calculer le surface de papier peint = surface des murs surface des portes surfaces des fentres Rsultat = surface de papier peint
Et pour reprendre dalgorithme labor par Euclide :

Algorithme : calculer le Plus Grand Commun Diviseur de 2 nombres Donnes en entre : nombre1 et nombre2, non nuls et nombre1 > nombre2 Donnes intermdiaires : reste 1. 2. 3. 4. 5. Calculer le reste de la division de nombre1 par nombre2 Tant que le reste est diffrent de 0 nombre1 prend la valeur de nombre2 nombre2 prend la valeur de reste Calculer le reste de la division de nombre1 par nombre2 Rsultat = valeur de reste

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 5 / 11

Introduction lalgorithmique

Donnes

Suite dactions

Rsultat

Dans le traitement des informations, on peut reprsenter lalgorithme comme une fonction f, de D (les donnes) dans R (les rsultats possibles) :

Donnes

Rsultat

C. De lalgorithme informatique au programme informatique


Pour quun algorithme (processeur = tre humain) puisse tre excut par un ordinateur, il est ncessaire den effectuer la traduction dans un langage comprhensible par celui-ci (langage machine).

Un PROGRAMME INFORMATIQUE est une succession dinstructions crites en langage machine et excutables par un ordinateur, afin de traiter les donnes dun problme et de renvoyer un rsultat lutilisateur du programme.
Le terme Logiciel est souvent associ un ensemble de programmes permettant de rsoudre une catgorie de tches. Le langage machine (dit langage de bas niveau ) tant complexe et dlicat crire, les chercheurs ont invent des langages plus simples manipuler pour ltre humain, mi-chemin entre la forme algorithmique (proche de la langue naturelle) et le langage machine : ce sont les langages de programmation (dits langages de haut niveau ).

Lactivit de CODAGE ou PROGRAMMATION INFORMATIQUE consiste traduire un algorithme en programme source exprim dans un langage cible (celui vers lequel on traduit), gnralement langage de haut niveau comme C, C++, PHP, Java, Logo, Visual Basic, etc. (plus dune centaine de langages informatiques).
La construction de lalgorithme est donc une des premires tches en programmation et sera indispensable pour produire des programmes de qualit.

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 6 / 11

Introduction lalgorithmique

Utilisateur
Je souhaiterais automatiser la rsolution de blah,blah, blah...

Informaticien = VOUS (1) Analyser et concevoir une solution algorithmique Programme source (Langage C++)

Outil informatique

Oui, cest bien cela !

Algorithme

(2) Proposer, Corriger Utiliser Interface : cran + clavier

(3) Coder, Programmer

(4) Compiler, tester, mettre disposition

Utiliser

Programme compil Langage machine

SOLUTION INFORMATIQUE POUR RESOUDRE LE PROBLEME


Figure 2 : les tapes de construction d'un programme informatique vision simplifie

D. Des besoins des utilisateurs lalgorithme


La construction dun algorithme nest pas la premire tape du processus de dveloppement dapplications. 1. En effet, il est dabord indispensable de bien comprendre les besoins rels de lutilisateur afin dtablir un cahier des charges (expression exhaustive des besoins de lutilisateur, dfinis dans un langage naturel) 2. Ce cahier des charges va ensuite tre transform en une spcification des besoins, document prcisant dans un langage dinformaticien ce quil faudra dvelopper , pour rpondre aux besoins exprims dans le cahier des charges. 3. La phase suivante sera la conception de lalgorithme permettant de dfinir le comment dvelopper ce qui est demand , en utilisant 2 axes danalyse : a. Analyse descendante : dcomposition dun problme de complexit infrieure ; si les sous-problmes paraissent encore trop complexes, ils sont dcomposs leur tour, etc. b. Analyse ascendante : composition dune solution partir de sous-algorithmes dj dfinis (et fiables) La vision simplifie, exprime par la figure 2, a pour objectif de montrer la ncessit de dfinir, valider, dcrire , avec pour aboutissement la production dun algorithme, avant de coder , de se lancer dans lcriture du programme source dans un langage de programmation.

E. Dmarche pour lcriture dun algorithme


Lcriture dun algorithme est laboutissement dune phase danalyse dont la mthode dpend souvent du problme pos. On peut donner 2 grandes tapes : ALGO_ch1_introduction.doc 24/08/2013 19:01 Page 7 / 11

Introduction lalgorithmique 1. Analyser les donnes Recenser toutes les donnes au sens concept ; chaque concept doit tre reprsent par un objet quil faut judicieusement nommer pour lidentifier ; il faut ensuite distinguer les objets constants et variables ; puis il faut classer les objets pour distinguer ceux qui vont stocker les valeurs de base, intermdiaire et rsultat. Pour recenser de manire exhaustive les objets, une mthode simple consiste partir du rsultat et remonter aux donnes de base par lintermdiaire des formules de calcul. 2. Structurer lalgorithme Chercher la structure gnrale de lalgorithme : en gnral, on y trouve (parfois regroupes) une phase dinitialisation de variables, par affectation de valeurs, ou par lecture de lenvironnement (par exemple, une saisie dun utilisateur), une phase de traitement, dans laquelle les donnes sont transformes pour aboutir au rsultat final, une phase de fourniture du rsultat attendu, par retour dune valeur ou par criture vers lenvironnement (par exemple, un affichage sur un cran) ; cette phase est parfois intgre la phase prcdente, des rsultats intermdiaires apparaissant au fur et mesure du traitement 3. Module de contrle et modules fonctionnels Un algorithme complexe comportera trs souvent : un ensemble de modules fonctionnels (des fonctions) dfinissant les fonctions lmentaires assurs un module de contrle de la squence dexcution des modules fonctionnels (la fonction principale)

III.Notations algorithmiques
A. Notations algorithmiques Une NOTATION ALGORITHMIQUE est une reprsentation simplifie (= un langage) permettant de dfinir sans ambigut un algorithme informatique de manire ce quil soit lisible par tous. Cest une convention quon tablit afin de pouvoir dialoguer avec le demandeur du programme. Il existe plusieurs notations algorithmiques.
Sans ambigut = sans quil y ait de doute, une seule interprtation possible Notation : manire dcrire, de reprsenter Convention = rgles sur lesquelles on se met daccord (cest une forme de contrat)

Les PRIMITIVES dun langage algorithmique sont les instructions de base partir desquelles on pourra construire toutes sortes dalgorithmes.

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 8 / 11

Introduction lalgorithmique

B. Le pseudo-code Le LANGAGE ALGORITHMIQUE, ou PSEUDO-CODE, est la notation algorithmique la plus utilise. Il dfinit un langage mi-chemin entre le langage naturel et les langages de programmation, sans cependant tomber dans les particularits dun langage de programmation spcifique. Exemple dalgorithme exprim en pseudo-code :
% partir de la saisie de votre ge, cet algorithme dtermine si vous tes majeur % ALGO TesterMajorite ROLE Dterminer majeur ou pas en fonction de lage DECLARATION CONSTANTES AGE_MAJORITE = 18 VARIABLES Vage : ENTIER

% actions raliser sur les donnes : CORPS DEBUT AFFICHER (donnez votre ge) SAISIR(Vage) SI (Vage >= AGE_MAJORITE) ALORS AFFICHER (majeur) SINON AFFICHER (mineur) finSI FIN Attention :

Les langages algorithmiques ne sont pas standardiss : vous trouverez donc des variantes dans lcriture des algorithmes, mais celles-ci ne devraient pas tre un obstacle la comprhension. C. Lorganigramme (ou ordinogramme)
Lorganigramme est une reprsentation graphique utilisant des symboles visuels pour reprsenter la suite dactions lmentaires dun algorithme. ALGO_ch1_introduction.doc 24/08/2013 19:01 Page 9 / 11

Introduction lalgorithmique

Exemple dalgorithme sous forme dorganigramme :


debut AFFICHER donnez votre age

SAISIR age
Vrai age >= AGE_MAJORITE Faux

AFFICHER majeur

AFFICHER mineur

fin

D. Larbre programmatique
Larbre programmatique est une volution de lorganigramme et se rapproche du pseudo-code.

Exemple dalgorithme sous forme darbre programmatique (1) :


AFFICHER Donnez votre age

Algo TesterMajorite

seq

SAISIR age

age >= AGE_MAJORITE Vrai

SI

Bloc alors
Faux

AFFICHER majeur

Bloc sinon

AFFICHER mineur

Exemple dalgorithme sous forme darbre programmatique (2)

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 10 / 11

Introduction lalgorithmique

Dterminer Majorit
AGE_MAJORITE : entier Age : entier 18

seq SI

AFFICHER(Donnez votre age) LIRE(age)


Vrai age >= AGE_MAJORITE

Faux

AFFICHER(mineur) AFFICHER(majeur)
Dautres reprsentations, comme le Grafcet, sont utiliss pour reprsenter les tapes de traitement des automates.

IV.

Conclusion

Pourquoi donc utiliser encore un nouveau langage ???


Lutilisation dun langage algorithmique (ou autre notation graphique) pour exprimer les algorithmes part de plusieurs ncessits : Rflchir la conception dune solution dans une langue proche de notre langue naturelle ou sous une forme visuelle accessible tous Pouvoir ainsi Dialoguer avec lutilisateur demandeur Prparer lactivit de codage informatique (programmation dans un langage informatique), Librer des particularits des langages informatiques (on peut trs bien avoir demander le codage dun algorithme plusieurs programmeurs dans des langages informatiques diffrents)

Lexpression graphique dun algorithme est intressante si sa taille est relativement petite. Ds lors que ta taille de lalgorithme augmente, lespace ncessaire la reprsentation des symboles graphiques devient trop important et la lisibilit sen trouve diminue. Cest pourquoi la notation en PSEUDO CODE est gnralement privilgie aujourdhui pour reprsenter les algorithmes informatiques.

ALGO_ch1_introduction.doc

24/08/2013 19:01

Page 11 / 11