Professional Documents
Culture Documents
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.
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.
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.
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
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
Algorithme
Utiliser
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
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.
Algo TesterMajorite
seq
SAISIR age
SI
Bloc alors
Faux
AFFICHER majeur
Bloc sinon
AFFICHER mineur
ALGO_ch1_introduction.doc
24/08/2013 19:01
Page 10 / 11
Introduction lalgorithmique
Dterminer Majorit
AGE_MAJORITE : entier Age : entier 18
seq SI
Faux
AFFICHER(mineur) AFFICHER(majeur)
Dautres reprsentations, comme le Grafcet, sont utiliss pour reprsenter les tapes de traitement des automates.
IV.
Conclusion
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