1 / 115

Algorithmique

Algorithmique. Mme Khadija BOUZAACHANE Année universitaire : 2009-2010. Introduction. Introduction. Avez vous déjà déchiffré un mode d’emploi pour faire fonctionner un DVD, ou bien la télévision ou un répondeur téléphonique? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes.

jui
Download Presentation

Algorithmique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorithmique Mme Khadija BOUZAACHANE Année universitaire : 2009-2010

  2. Introduction

  3. Introduction • Avez vous déjà déchiffré un mode d’emploi pour faire fonctionner un DVD, ou bien la télévision ou un répondeur téléphonique? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes. • Avez-vous déjà indiqué un chemin à un touriste égaré ? • Un algorithme, c’est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné. Si l’algorithme est juste, le résultat est le résultat voulu, et le touriste se retrouve là où il voulait aller

  4. Introduction • Qu’est-ce qu’un algorithme? • Est une suite d’instructions écrite en langage d’algorithme qui résout un problème et qui peuvent être programmé par n’importe quel langage. • Une suite d'instructions serait : • Se lever • Prendre sa douche • Prendre le petit déjeuner • S'habiller

  5. Introduction • Un algorithme doit donc contenir uniquement des instructions compréhensibles par celui qui devra l’exécuter.

  6. Définition • Algorithmique: • Définition1: désigne l'ensemble des règles et des techniques qui sont impliquées dans la définition et la conception des algorithmes. • Définition2: l'algorithmique c'est de savoir comment lire, écrire, évaluer et optimiser des algorithmes.

  7. Définition • Algorithme: • Définition1: Un algorithme décrit une méthode de résolution de problème programmable sur machine. • Définition2 : Un algorithme est un ensemble d'opérations de calcul élémentaires, organisé selon des règles précises dans le but de résoudre un problème donné. Pour chaque donnée du problème, l'algorithme retourne une réponse après un nombre fini d'opérations(+, -,/,<,>,... ).

  8. Définition • Qu’est-ce qu’un programme? • Un programme est donc une suite d'instructions exécutées par la machine. La machine a son propre langage appelé langage machine. • Un programme est l’expression d’un algorithme par une machine donnée dans un langage de programmation donné en utilisant le répertoire d’actions(opérations, instructions) et les règles de composition propres à cette machine et à ce langage donnés. • Un programme est un assemblage et un enchaînement d’instructions élémentaires écrit dans un langage de programmation, et exécuté par un ordinateur afin de traiter les données d’un problème et renvoyer un ou plusieurs résultats.

  9. Méthodologie • Pour résoudre un problème, il est vivement conseillé de réfléchir d'abord à l'algorithme avant de programmer. • Exemple de construction d’algorithme: • Exemple: calcul des racines de l’équation du second ordre ax2+bx+c=0 • 1ère version: • Lire a, b, c • Calculer les racines de l’équation • Imprimer les racines

  10. Méthodologie • La résolution d’un problème est caractérisé par 4 étapes : • Comprendre la nature du problème posé • Préciser les données fournies (Entrées) • Préciser les résultats que l’on désire obtenir (Sorties) • Déterminer le processus de transformation des données en résultats.

  11. Méthodologie • Comment on programme? On utilise un pseudo-langage, comportant toutes les structures de base d'un langage de programmation On traduit notre "pseudo" en langage évolué en fonction des possibilités de ce langage Ce langage sera ensuite traduit en langage machine

  12. Méthodologie • Un programme est donc une suite d'instructions exécutées par la machine. Ces instructions peuvent: • soit s'enchaîner les unes après les autres, on parle alors de séquence d'instructions; • ou bien s'exécuter dans certains cas et pas dans d'autres, on parle alors de structure alternative; • ou se répéter plusieurs fois, on parle alors de structure répétitive.

  13. La séquence d’instructions • Une instruction est une action que l'ordinateur est capable d'exécuter. • Une séquence d'instruction serait : • Se lever • Prendre sa douche • Prendre le petit déjeuner • S'habiller

  14. Structures Alternatives • Une alternative s'exprime par si … Sinon… • Si fin de semaine ou congé • Mettre sa tenue de sport • Faire son jogging • Sinon • Mettre sa tenue de travail • Aller travailler • Fin Si

  15. Structure répétitive • La routine journalière d’un employé est : • Ouvrir guichet • Appeler premier client • TantQue" client dans file d'attente "et" pas fin de journée " • Traiter client • Appeler client suivant • FinTantQue • Les deux actions "Traiter client" et "Appeler client suivant" vont se répéter tant que la condition située derrière l'instruction "Tant que" est vérifiée.

  16. Pourquoi faire des algorithmes • la rédaction des algorithmes permet plusieurs choses : • d'être compréhensible par tout informaticien même s'il ne connait pas le langage du programme • de vérifier la complexité du programme et donc de l'optimiser • de faire ressortir de manière compréhensible les cas d'utilisations

  17. Comment faire des algorithmes? Les variables Le type de la variable Les instructions Syntaxe général de l’algorithme Les structures de contrôle Structure répétitive Les tableaux Organigramme Procédures & Fonctions Récursivité Notions de Base

  18. Comment faire des algorithmes • les algorithmes sont rédigés dans un langage à mi-chemin entre le français et les langages de programmation, dit pseudo-code . • En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un langage de programmation particulier. L'écriture en pseudo-code permet souvent de bien prendre toute la mesure de la difficulté de l'implémentation de l'algorithme, et de développer une démarche structurée dans la construction de celui-ci.

  19. Comment faire des algorithmes(suite) • La raison d’être d’un algorithme est de résoudre un problème. La plus grande attention doit être portée à la compréhension du problème, faute de quoi l’algorithme n’a aucune chance d’être correct. Le langage utilisé pour la définition d’un problème est un langage scientifique utilisant pour des raisons de simplicité une langue naturelle(français par exemple).

  20. Les variables • Une variable est un objet dont la valeur n’est pas invariable • Une variable peut être représentée par une case mémoire, qui contient la valeur d'une donnée. • Chaque variable possède un nom unique appelé identificateur par lequel on peut accéder à son contenu. • Par exemple, on peut avoir en mémoire une variable prix et une variable quantité.

  21. Les variables(suite) • Une variable possède 3 attributs : • Une valeur • Un nom(invariable) qui sert à la désigner • Un type(invariable) qui décrit l’utilisation possible de la variable • Une valeur • la valeur d'une variable(contenu) peut varier au cours du programme. L'ancienne valeur est tout simplement écrasée et remplacée par la nouvelle. • La valeur peut être de différents types et de tailles différentes.

  22. Les variables(suite) • Nom de la variable • C’est une suite de lettres et de chiffres commençant nécessairement par une lettre • Le nombre maximal de caractères imposé varie selon les langages • La lisibilité des programmes dépend de l’habilité à choisir des noms représentatifs • Le nom de la variable doit être le plus représentatif possible du contenu de celle-ci pour faciliter la lecture de l'algorithme. En revanche, il ne doit pas non plus être trop long pour ne pas nuire à la lisibilité de l'ensemble.

  23. Les variables(suite) • Nom de la variable • Exemple • Je veux mémoriser l'âge d'une personne dans une variable, j'ai le choix de l'appeler : • a • âge • age • ageDeLaPersonneDontJeSuisEntrainDeParler • Remarque : • Le premier cas est trop court, si je n'ai pas lu la description plus haut, je suis totalement perdu. Le deuxième cas ne convient pas non plus car on évitera tout caractère accentué dans les noms de variable. Le dernier cas est certes très précis, mais tellement long qu'il en devient illisible. Bref, le troisième cas semble le plus approprié

  24. Les variables(suite) • Type de la variable • Le type de la variable définit : • La nature des informations qui seront représentées dans la variable • Les limitations concernant les valeurs à représenter • Les opérations réalisables avec les variables correspondantes. • Propriété : Une variable doit être déclaré avant son utilisation

  25. Les variables(suite) • Type de la variable • Entier : il s'agit des variables destinées à contenir un nombre entier positif ou négatif. • Réel : il s'agit des variables numériques qui ne sont pas des entiers, c'est à dire qui comportent des décimales • Caractère : Les variables de type caractère contiennent des caractères alphabétiques ou numériques seul(ex: ‘c’) • Booléen : Les variables qui prennent les valeurs (vrai ou faux) ou les valeurs (oui ou non).

  26. Les variables(suite) • Type de la variable • Chaîne de caractères : représentant un texte, contenant un ou plusieurs caractères(ex: ’’Bonjour tout le monde’’) • Tous les traducteurs de langages prennent en compte cette notion de type par des instructions de déclaration de type • Exemple: Variable Moyenne : réel;(Moyenne en numérique) VariableNbreEtudiant : entier; (NbreEtudiant en numérique) Variable c1, lettre, z : caractère;

  27. Les variables(suite) • Type de la variable: Constante • Définitions : une constante est un objet de valeur invariable. Elle est la réalisation d’une valeur de type particulier. • Exemple: • Constante Zero=0: entier; ( Max:entier)100;

  28. Les variables(suite) • Les opérateurs de l’algorithmique

  29. Les variables(suite) • Les opérateurs de l’algorithmique

  30. Les instructions • L’instruction d’affectation • L’instruction d’affectation permet de manipuler les valeurs des variables. Son rôle consiste à placer une valeur dans une variable. • NotationX=Y ou bien X:=Y ou bien XY • Exemple : • affecter une valeur à une variable • X:=5,On charge la variable X avec la valeur 5 • Affecter le contenu d’une variable à une autre variable • X:=Y , On charge X avec le contenu de Y • Y représente : • Constante ou Nom d’une variable ou Expression logique • X et Y doivent être de même type

  31. Les instructions(suite) • L’instruction d’affectation • Affecter une formule à une variable • X:= X + 2 * Y On charge la variable X par la valeur du résultat de la formule et on écrase sa valeur initiale X Y 3 4 11

  32. Les instructions(suite) • Les instructions d’Entrée/Sortie • Un programme est amené à : • Prendre des données par le périphérique(clavier) : rôle de l’instruction de lecture • Communiquer des résultats par l’intermédiaire du périphérique(écran) : rôle de l’instruction de l’écriture • Instruction de lecture • Rôle : fournir des données au programme • Syntaxe : Lire(variable) • Exemple : Lire( X)on saisie une valeur pour la stocker après dans la variable X • Instruction d’écriture • Rôle : fournir des résultats directement compréhensibles • Syntaxe : Ecrire( variable), Ecrire(’’chaine de caractères’’) • Exemple : Ecrire(X), Ecrire(’’Bonjour’’)

  33. Syntaxe général de l’algorithme • Le moule d’un algorithme • Un algorithme comportera : • Une partie déclaration • Une partie encadrée par ’’début’’ ’’ fin’’ où sont décrites les actions AlgorithmeNom_de_l_algorithme : Déclaration; Debut Actions; Fin

  34. Syntaxe général de l’algorithme(suite) • Le moule d’un algorithme • Dans la partie déclarations, nous trouvons : • Déclaration de constantes • déclaration de variables • déclaration de fonctions • Dans la partie actions, nous trouvons : • suite d'instructions • Structure alternative • Structure répétitive

  35. Syntaxe général de l’algorithme(suite) • Exemple : Algorithme toto /* les constantes: il est obligatoire de leur donner une valeur dès leur déclaration */ CONST titi  10 : entier tutu  "bonjour!" : chaîne // les variables au sens strict VAR riri, fifi : réels loulou : chaîne Debut <Instruction1>; <Instruction2>; …. <Instruction3>; Fin déclarations Corps de l’algorithme

  36. Des Questions ?

  37. Exercices : Instructions • Exercice 1: Écrire un algorithme qui permet de saisir des valeurs pour A et B , faire la somme et afficher le résultat? • Exercice 2: Écrire un algorithme qui permet de calculer et afficher la surface d’un cercle?

  38. Exercices : Instructions(suite) • Exercice 3 Écrire un algorithme qui permet de calculer et afficher le salaire brut d’un ouvrier connaissant le nombre d’heure et le tarif d’horaire? • Exercice 4 Écrire un algorithme qui fait la conversion d’une somme d’argent donnée en DH, en une somme d’argent en Euro?

  39. Les structures de contrôles • Le branchement conditionnel Le branchement conditionnel Aide à Structurer un ensemble d’instructions • Syntaxe 1 : • Si <conditions> alors • <Instruction1> • … • <Instruction N> • Fsi • Exemple : • Si (a<b) alors • maxb; • mina; • Fsi

  40. Les structures de contrôles(suite) • Syntaxe : • Si <expression booléenne> alors • <Instruction1> • … • <Instruction N> • Sinon • <Instruction1> • … • <Instruction N> • Fsi • Le branchement conditionnel • Exemple : • Si (a<b) alors • maxb • Sinon • maxa • Fsi

  41. Les structures de contrôles(suite) • Qu’est ce qu’une condition ? • une condition est composée de trois éléments : • une valeur, un opérateur de comparaison, une autre valeur • Les valeurs peuvent être a priori de n’importe quel type (numériques, caractères…). Mais si l’on veut que la comparaison ait un sens, il faut que les deux valeurs de la comparaison soient du même type ! • Les opérateurs de comparaison sont :   • =    égal à, <> différent de  • <    strictement plus petit que, > strictement plus grand que, <= plus petit ou égal à, >= plus grand ou égal à…

  42. Les structures de contrôles(suite) • Exemple: • ‘t’ < ‘w’               VRAI5>6        FAUX2< 3        VRAI • Exercice: • Écrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif ou négatif (on laisse de côté le cas où le nombre vaut zéro).

  43. Les structures de contrôles(suite) • Conditions composées: • Certains problèmes exigent parfois de formuler des conditions composées liées entre eux par les opérateurs logiques suivants : ET, OU, NON, et XOR. • Condition1 ET Condition2 : VRAI, si Condition1 est VRAI et Condition2 est VRAI. • Condition1 OU Condition2 : VRAI, si Condition1 est VRAI ou bien Condition2 est VRAI. • Le XOR (ou OU exclusif) • Condition1 XOR Condition2 : VRAI, si Condition1 est VRAI, ou bien Condition2 est VRAI. • Mais si toutes les deux sont fausses, ou que toutes les deux sont VRAI, alors le résultat global est considéré comme FAUX.

  44. Les structures de contrôles(suite) • le NON inverse une condition : NON(Condition1) est VRAI si Condition1 est FAUX, et il sera FAUX si Condition1 est VRAI. • tables de vérité (C1 et C2 représentent deux conditions, et on envisage à chaque fois les quatre cas possibles) : 

  45. Les structures de contrôles(suite) • Exercice : • Écrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif (on laisse de côté le cas où le produit est nul). Attention toutefois : on ne doit pas calculer le produit des deux nombres.

  46. Exercices : structures de contrôles • Exercice 1: • On désire comparer deux valeurs ,Écrire un algorithme qui affiche la plus grande des deux? • Exercice 2: • Écrire un algorithme qui affiche le salaire brut d’un ouvrier sachant que les heures supplémentaires de 172 heures sont payées à 50% de tarifs d’horaire en plus?

  47. Exercices : structures de contrôles • Exercice 4: Calculer le montant de la facture d’un client ayant commandé une quantité d’un produit avec un prix unitaire hors taxe • Le taux de T.V.A est : 20% • Les frais de transport sont 0.8 DH de Km , Le client est disposé du frais de transport si le montant est supérieur 4500 DH • Exercice 5: Une bibliothèque fait des réductions sur l’achat des livres : • 25% pour les étudiants. • 15% pour les enseignants Écrire un algorithme qui calcule et affiche le prix à payer selon le type du client?

  48. Exercices : structures de contrôles • Exercice 6: Écrire un algorithme qui calcule et affiche le maximum de trois nombre A,B et C ? • Exercice 7: Écrire un algorithme qui permet de résoudre l’équation du premier degré : aX+b=0? • Exercice 8: Écrire un algorithme qui permet de résoudre une équation de second degré : aX²+bX+c=0 ?

  49. Exercices : structures de contrôles • Exercice 9: Écrire un algorithme qui lie trois nombre A,B et C , puis il détermine si l’un est égal à la somme de 2 autres sinon il affiche un message « pas de solution »?

  50. Les structures de contrôles(suite) • Le choix multiple Variable i:entier; Lire(i); Selon que i=1 : faire <instruction1> Ou quei=2 : faire <instruction2> Ou quei=3 : faire <instruction3> Autrementécrire(’’mauvais choix’’) Fselonque

More Related