Algorithme

10,281 views

Published on

Published in: Business
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,281
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
449
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Algorithme

  1. 1. Algorithmique et Structures de Données
  2. 2. C’est quoi un algorithme ? <ul><li>Un algorithme est un ensemble de règles logiques et chronologiques qu’on doit suivre pour aboutir à la résolution d’un problème particulier. </li></ul><ul><li>Ces règles sont constituées d’un nombre fini d’opérations élémentaires. </li></ul><ul><li>Ces opérations seront exécutées dans un ordre bien déterminé. </li></ul><ul><li>Un algorithme peut être assimilé à un raisonnement que l’on peut traduire avec un langage que toute personne peut comprendre : </li></ul><ul><li>LDA : L angage de D escription d’ A lgorithme </li></ul><ul><li>Le langage de description d’algorithme (LDA) ne doit pas être confondu avec le programme proprement dit. </li></ul><ul><li>Le programme correspond en fait à la traduction du LDA à un autre langage compréhensible pour la machine (Pascal, Visual Basic, C, C++, C#, Java…) </li></ul>
  3. 3. Chemin de la traduction de la pensée Raisonnement logique et chronologique LDA …… …… …… Programme C, C++,… Langage traduisant la pensée de manière compréhensible pour toute personne : Algorithme Langage traduisant le LDA de manière compréhensible pour l’ordinateur : Programme
  4. 4. <ul><li>Le LDA utilise un ensemble de mots clés et de structures permettant de décrire de manière complète, précise et claire, l’ensemble des opérations à effectuer pour aboutir au résultat recherché. </li></ul><ul><li>Il est vivement conseillé d’agrémenter le LDA de nombreux commentaires pour faciliter sa lecture. </li></ul><ul><li>Ces règles sont constituées d’un nombre fini d’opérations élémentaires. </li></ul><ul><li>Ces opérations seront exécutées dans un ordre bien déterminé. </li></ul><ul><li>Un algorithme peut être assimilé à un raisonnement cohérent que l’on peut traduire avec un langage que toute personne peut comprendre : </li></ul><ul><li>LDA : L angage de D escription d’ A lgorithme </li></ul><ul><li>Le langage de description d’algorithme (LDA) ne doit pas être confondu avec le programme proprement dit. </li></ul><ul><li>Le programme correspond en fait à la traduction du LDA à un autre langage compréhensible pour la machine (Pascal, Visual Basic, C, C++, C#, Java…) </li></ul>
  5. 5. Structure d’un Algorithme algorithme nom de l’algorithme const liste des constantes var liste des variables struct liste des structures début algorithme action 1 // commentaire 1 action 2 // commentaire 2 . . . action n // commentaire n fin algorithme Déclaration du nom de l’algorithme Déclaration des constantes, des variables et des structures Le corps de l’algorithme
  6. 6. Nom de l’algorithme : Il permet tout simplement d’identifier un algorithme parmi d’autres. Les déclarations : C’est une liste exhaustive de variables utilisées et manipulées dans le corps de l ’ algorithme. Le corps de l’algorithme : Dans cette partie de l’algorithme, sont placées les tâches à exécuter (instructions, opérations, …). Les commentaires : Pour permettre une lecture plus aisée et plus compréhensive de l’algorithme Structure d’un Algorithme
  7. 7. Les Déclarations Les Constantes : Elles représentent des chiffres, des nombres, des caractères, des chaînes de caractères, … dont la valeur ne peut pas être modifiée au cours de l’exécution de l’algorithme. Les Variables : Elles peuvent stocker des chiffres des nombres, des caractères, des chaînes de caractères,… dont la valeur peut être modifiée au cours de l’exécution de l’algorithme. Les Structures : Elles permettent de rassembler plusieurs variables ou constantes sous un même identificateur, on parle également d’entités ou d’objets.
  8. 8. Les constantes et les variables sont définies dans la partie déclarative par deux caractéristiques essentielles, à savoir : L’ identificateur : Il représente le nom de la variable, de la constante ou de la structure. Il est composé généralement de lettres mais peut également contenir et de chiffres. Il ne doit pas commencer par des chiffres Il ne doit pas contenir d’espaces, de caractères de ponctuation ou de caractères accentués ( il existe des langages qui acceptent des caractères accentués au niveau de l’identificateur ). Le type : Il représente la nature de la variable ou de la constante (entier, réel, booléen, chaîne de caractères…) Exemples : var age : réel ; var sexe, adresse, ville : chaine ; var nbr_enfants , etage : entier ; Les Déclarations
  9. 9. Les types de base De façon générale, pour toute objet censé contenir une ou plusieurs informations devant êtres traités par le processeur, l’ordinateur doit lui réserver de la mémoire volatile (RAM). La taille mémoire nécessaire pour stocker cet objet dépend de la nature de l’information en question. Exemple d’informations de base : Les nombres entiers : 0, -1, 45, 36, -10 en décimal 45H, 0FBH, 64H en hexadécimal 10101111, 1011 en binaire Le caractère : ‘ a’ , ‘A’ , ’*’ , ’7’ , ’z’ , ’!’ , …. Les nombres réels : -3.67, 4.2569, –564.0, 18.36 10e-6 La chaîne de caractères ‘ électronique’ , ’cd ROM de 80mn’ , … Le booléen : Il ne peut prendre que deux états possibles : VRAI ou FAUX (True ou False)
  10. 10. Les opérateurs Arithmétique + Addition - Soustraction * Multiplication / Division DIV Division entière ↑ Puissance Comparaison > Supérieur stricte < Inférieur stricte ≥ Supérieur ou égal ≤ Inférieur ou égal = Egal ≠ Différent Logique ET Fonction ET OU Fonction OU OUX Fonction OU Exclusif NON Fonction NON NON ET Fonction NON ET NON OU Fonction NON OU
  11. 11. Les opérateurs : Quelques remarques <ul><li>Opérateur de concaténation Alpha-Alphanumérique ( + ) </li></ul><ul><li>Les différents opérateurs cités précédemment peuvent avoir des notations différentes selon les langages de programmation que vous allez utiliser. </li></ul><ul><li>Par exemple : pour la concaténation des chaines de caractères on utilise </li></ul><ul><li>un + en JavaScript (‘Bonjour ‘ + ‘ tout ‘ + ‘le monde ‘ + 17) </li></ul><ul><li>un & en VB (&quot;Bonjour&quot; & &quot; tout &quot; & &quot;le monde &quot; & 17) </li></ul><ul><li>Les opérateurs de comparaison pour les booléens : ( = , ≠ ) </li></ul><ul><li>Les opérateurs de comparaison pour les chaînes de caractères : ( = , ≠ , < , > ) </li></ul><ul><li>Le signe = est utilisé dans certains langages à la fois comme étant opérateur de comparaison mais aussi comme opérateur d’affectation </li></ul><ul><li>Par exemple : a = 10 , b = 20 ; </li></ul><ul><li>Si (a = b) alors </li></ul><ul><li>c = &quot;a est égal à b&quot;   ; </li></ul><ul><li>Sinon </li></ul><ul><li>c = &quot;a est différent de b&quot; ; </li></ul><ul><li>Fin si </li></ul>
  12. 12. Priorité des opérateurs usuels Priorité croissante de bas vers le haut * Opérateur de multiplication / Opérateur de division + Opérateur d'addition - Opérateur de soustraction < Opérateur d'infériorité stricte > Opérateur de supériorité stricte <= Opérateur d'infériorité ou d'égalité >= Opérateur de supériorité ou d'égalité == Opérateur d'égalité (lang c,c++, javascript), ( = VB) != Opérateur d'inégalité (lang c,c++, javascript), ( <> VB) && Opérateur et logique ET (lang c,c++, javascript), ( AND VB) || Opérateur ou logique OU (lang c,c++, javascript), ( OR VB) = Opérateur d'affectation
  13. 13. Les tables de vérité : opérateurs logiques ET Logique ET 0 1 0 0 0 1 0 1 OU Logique : inclusif OU 0 1 0 0 1 1 1 1 XOR Logique : ou exclusif XOR 0 1 0 0 1 1 1 0 NOT Logique : négation Val Val 0 1 1 0
  14. 14. Les structures fondamentales <ul><li>Les opérations élémentaires relatives à la résolution d’un problème peuvent, en fonction de leur nature être organisées suivant quatre familles de structures : </li></ul><ul><li>• les structures linéaires </li></ul><ul><li>• les structures alternatives </li></ul><ul><li>• les structures de choix </li></ul><ul><li>• les structures itératives ou répétitives </li></ul><ul><li>Important : NE PAS CONFONDRE </li></ul><ul><li>structure comme étant un nouveau type de données constitué à partir de types de données élémentaires. </li></ul><ul><li>ET </li></ul><ul><li>structure comme étant un regroupent d’instructions devant être exécuté après vérification d’un certain nombre de conditions. </li></ul>
  15. 15. Les structures linéaires La structure linéaire se caractérise par une suite d’actions à exécuter dans l’ordre où elles sont énoncées. Traitement 1 Traitement 2 Traitement 3 Traitement 4
  16. 16. Les structures Alternatives <ul><li>Une structure alternative offre la possibilité de donner des issues différentes à la poursuite d’un algorithme. </li></ul><ul><li>Ces issues s’excluent mutuellement. </li></ul><ul><li>On peut rencontrer plusieurs formes de structures alternatives : </li></ul><ul><li>Forme alternative complète : </li></ul><ul><li>dans cette structure, l’exécution de l’un des deux traitements distincts possibles T2 et T3 ne dépend que la réalisation de la condition qui les précède : </li></ul>si la condition est vérifiée les traitements se font dans cet ordre : (T1  T2  T4). si la condition n’est pas vérifiée les traitements se font dans cet ordre : (T1  T3  T4). Condition Si Vrai Si Faux Traitement 2 Traitement 3 Traitement 4 Traitement 1
  17. 17. Les structures Alternatives Forme alternative réduite : dans cette structure, l’exécution du traitement T2 ne dépend que la réalisation de la condition qui le précède : Condition Si Vrai Si Faux Traitement 2 Traitement 3 si la condition est vérifiée les traitements se font dans cet ordre : (T1  T2  T3). si la condition n’est pas vérifiée les traitements se font dans cet ordre : (T1  T3). Traitement 1
  18. 18. Forme alternative linéaire var A, B, C : Entier A = 10 ; B = 20 ; C = A + B ; Forme alternative complète var A, B : Entier Saisir A ; Si A > 5 Alors B = A + 10 Sinon B = A + 2 Fin Si Afficher B ; Les structures Alternatives : Exemples Forme alternative réduite var A, B : Entier Saisir A ; B = A ; Si A > 5 Alors B = A + 10 Fin Si Afficher B ;
  19. 19. Les structures Alternatives Forme alternative multiple : dans cette structure, l’exécution des traitement Ti ne dépend que la réalisation de la condition qui les précède. Ces conditions doivent être disjointes. Si Cond 1 Faux TA Si Cond 2 Si Cond n TB Vrai T1 Vrai T2 Vrai Tn Aucune Cond T n+1 Faux Faux TA  T1  TB TA  T2  TB TA  Tn  TB TA  Tn+1  TB
  20. 20. Forme alternative multiple var A, B : Entier Saisir A ; Si A < 0 Alors B = 0 ; Sinon Si A >= 0 ET A < 5 Alors B = A + 1 ; Sinon Si A >= 5 ET A < 10 Alors B = A + 2 ; Sinon Si A >= 10 ET A < 14 Alors B = A + 3 ; Sinon B = 20 ; Fin Si Afficher B ; Les structures Alternatives : Exemples
  21. 21. ALGO Algorithme EleverAuCarre // Cet algorithme calcule le carré du nombre que lui fournit l'utilisateur Variables UnNombre, SonCarre : entiers ; Début afficher(&quot;Quel nombre voulez-vous élever au carré ? &quot;) ; saisir(UnNombre) ; SonCarre ← UnNombre×UnNombre ; afficher(&quot;Le carré de &quot;, UnNombre) ; afficher(&quot;c'est : &quot;, SonCarré) ; Fin
  22. 22. Lang VB Sub EleverAuCarre() Dim UnNombre as integer, SonCarre as integer UnNombre = InputBox(&quot;Quel nombre voulez-vous élever au carré ? &quot;) SonCarre = UnNombre×UnNombre MsgBox(&quot;Le carré de &quot; & UnNombre & &quot; est &quot; & SonCarre ) End Sub Lang C void EleverAuCarre() { int UnNombre, SonCarre ; printf(&quot;Quel nombre voulez-vous élever au carré ? &quot;) ; scanf(&quot;%d&quot; , &UnNombre) ; SonCarre = UnNombre×UnNombre ; printf(&quot;Le carre de %d est %d&quot; , UnNombre, SonCarre ) ; }
  23. 23. Algorithme CalculMontantTTC // Saisit un prix HT et affiche le prix TTC correspondant Constantes TVA ← 20.0 : réel , Titre ← &quot;Résultat &quot; : chaine ; Variables prixHT, prixTTC : reels Début afficher(&quot;Donnez-moi le prix hors taxe :&quot;) saisir(prixHT) prixTTC ← prixHT* (1+TVA/100) // calcul du prix TTC afficher(Titre) ; afficher(prixHT, &quot;  DH H.T. devient &quot;, prixTTC, &quot;Dh T.T.C.&quot;) Fin
  24. 24. Algorithme CaFaitQuoi Variables valA, valB : réels ; Debut afficher(&quot;Donnez-moi deux valeurs : &quot;) ; saisir (valA, valB) ; afficher(&quot;Vous m'avez donné &quot;, valA, &quot; et &quot;, valB) ; valA←valB ; valB←valA ; afficher(&quot;Maintenant , mes données sont : &quot;, valA, &quot; et &quot;, valB) ; Fin
  25. 25. Les structures itératives Les structures itératives permettent de répéter l’exécution d’un ensemble d’instructions une ou plusieurs fois. Ces structures sont regroupées sous deux grandes familles selon si le nombre de répétitions est connu ou pas. Cas ou le nombre de répétition est connu : POUR … ALLANT DE … À … FAIRE … Dans cette structure, la sortie de la boucle d’itération s’effectue lorsque le nombre souhaité de répétition est atteint. On utilise donc une variable d’itérations caractérisée par : • sa valeur initiale, • sa valeur finale, • son pas de variation. Si la valeur finale de l’indice est inférieure à sa valeur initiale le pas de variation est négatif, la structure est dite « pour décroissant », dans le cas contraire, le pas est positif et la structure est dite « pour croissant »
  26. 26. Les structures itératives
  27. 27. Les structures itératives : For Algo POUR i ALLANT DE ValeurInitiale À ValeurFinale Variation = PasVariation FAIRE Bloc d’instructions FIN POUR VB FOR i = ValeurInitiale TO ValeurFinale STEP PasVariation Bloc d’instructions Next C for( i = ValeurInitiale ; i <= ValeurFinale ; i = i + 1 ) { Bloc d’instructions }
  28. 28. Les structures itératives : while Cas ou le nombre de répétition est inconnu : Algo TantQue (TestsLogiques) Bloc d’instructions FIN TantQue VB While(TestsLogiques) Bloc d’instructions WEnd C While(TestsLogiques) { Bloc d’instructions }
  29. 29. Ecrire un algorithme permettant de calculer le total ht, le total tva et le total ttc d’une facture.
  30. 30. Algorithme CalculFacture( ) Const tva = 0.2 : reel ; Var mht = 0, mtva = 0, mttc = 0, puht, qt : reel ; Var Nbr_Produits = 0 : entier ; Var Reponse char ; DEBUT Afficher (« Voulez vous effectuer  un achat ? : ») ; Saisir(Reponse ) ; TANT QUE (Reponse == ‘O’) FAIRE Nbr_Produits = Nbr_Produits + 1 ; Afficher(« Saisir le PUHT : ») ; Saisir(puht) ; Afficher(« Saisir la quantité : ») ; Saisir(qt) ; mht = mht + qt*puht ; mtva = mht*tva ; mttc = mht*(1+tva) ; Afficher(« mht : » mht) ; Afficher(« mtva: » mtva) ; Afficher(« mttc : » mttc) ; Afficher (« Voulez vous effectuer  un autre achat ? : ») ; Saisir(Reponse ) ; FIN TANT QUE SI ( Nbr_Produits == 0 ) ALORS Afficher(« mht : » mht) ; Afficher(« mtva: » mtva) ; Afficher(« mttc : » mttc) ; FIN SI FIN
  31. 31. Algèbre de Boole (Suite)
  32. 32. Algèbre de Boole (Suite)
  33. 33. Algèbre de Boole et Circuits Logiques
  34. 34. Algèbre de Boole et Circuits Logiques
  35. 35. Algèbre de Boole et Circuits Logiques
  36. 36. Algèbre de Boole et Circuits Logiques Le AND
  37. 37. Algèbre de Boole et Circuits Logiques
  38. 38. Algèbre de Boole et Circuits Logiques
  39. 39. Algèbre de Boole et Circuits Logiques
  40. 40. Algèbre de Boole et Tests Logiques
  41. 41. Algèbre de Boole et Tests Logiques
  42. 42. Algèbre de Boole et Tests Logiques
  43. 43. LES MEMOIRES
  44. 44. LES MEMOIRES
  45. 45. LES MEMOIRES
  46. 46. LES MEMOIRES
  47. 47. LES MEMOIRES

×