Cours ALGORITHMIQUE 1 C CH HA AP PI IT TR RE E I I. . I IN NT TR RO OD DU UC CT

Cours ALGORITHMIQUE 1 C CH HA AP PI IT TR RE E I I. . I IN NT TR RO OD DU UC CT TI IO ON N Objectif : Connaître le but du cours d’algorithmique Éléments de contenu :  Qu’est ce qu’une application informatique ?  Comment arriver d’un problème réel à un programme pouvant être exécuté par ordinateur  Liens entre ALGORITHMIQUE et STRUCTURES DE DONNEES I.1.Intérêt de l’algorithmique Informatiser une application, facturation de la consommation d’eau, par exemple, c’est faire réaliser par ordinateur, une tâche qui était réalisée par l’Homme. Pour faire exécuter une tâche par ordinateur, il faut tout d’abord, détailler suffisamment les étapes de résolution du problème, pour qu’elle soit exécutable par l’homme. Ensuite, transférer la résolution en une suite d’étapes si élémentaire et simple à exécuter, pouvant être codée en un programme dans un langage compréhensible par ordinateur. Toute suite d’étapes si élémentaire et simple à exécuter s’appelle un ALGORITHME. Un programme c’est un algorithme codé dans un langage compréhensible par ordinateur à l’aide d’un compilateur (traducteur). I.2.Définitions L’algorithme est le résultat d’une démarche logique de résolution d’un problème pour la mise en œuvre pratique sur ordinateur et afin d’obtenir des résultats concrets il faut passer par l’intermédiaire d’un langage de propagation. Un algorithme décrit une succession d’opérations qui, si elles sont fidèlement exécutées, produiront le résultat désiré. Un algorithme est une suite d’actions que devra effectuer un automate pour arriver en un temps fini, à un résultat déterminé à partir d’une situation donnée. La suite d’opérations sera composée d’actions élémentaires appelées instructions. 1-a) Qu’est ce que l’Algorithmique ? C’est la logique d’écrire des algorithmes. Pour pouvoir écrire des algorithmes, il faut connaître la résolution manuelle du problème, connaître les capacités de l’ordinateur en terme d’actions élémentaires qu’il peut assurer et la logique d’exécution des instructions. I.3.Les étapes de résolution d’un problème 1. Comprendre l’énoncé du problème 2. Décomposer le problème en sous-problèmes plus simple à résoudre 3. Associer à chaque sous problème, une spécification :  Les données nécessaires  Les données résultantes  La démarche à suivre pour arriver au résultat en partant d’un ensemble de données. 4. Elaboration d'un algorithme. Cours ALGORITHMIQUE 2 Illustration du fonctionnement d'un ordinateur ☺  On peut dire que la partie EXECUTANT est le problème de l’algorithmique, et la partie MEMOIRE (stockage de donnée) concerne la matière " Structures de données ". I.4.Structure d’un algorithme ALGORITHME nom_de_l’algorithme CONST {Définition des constantes} TYPE {Définition de types} VAR {Déclaration de variables} DEBUT {Suite d’instructions} FIN 1-b) Rappel des notions de : • Constante, • Type, • Variable. 1-c) 1-d) Exemple 1 ALGORITHME afficher DEBUT Ecrire("La valeur de 3*5 est ", 3*5) FIN Cet algorithme permet d'afficher sur l'écran la phrase suivante : La valeur de 3*5 est 15 Exemple 2 On veut écrire l’algorithme qui permet de saisir 3 notes d’un étudiant dans trois matières, étant donnés les coefficients respectifs 2, 3 et 1. Résolution A partir de l’énoncé du problème, nous recherchons la solution par une démarche en 2 phases. Dispositifs d’entrée : - clavier - souris, - ....... MEMOIRE EXECUTANT ..... Exécution Résultat Suite de cases mémoire Données en entrée Données en sortie Ecran ou Imprimante Cours ALGORITHMIQUE 3  On doit comprendre comment le résoudre manuellement,  Définir ce qu’on a besoin comme données, quelles est la démarche à suivre (formules de calcul) pour arriver aux résultats. Pour notre problème, nous connaissons les coefficients et la formule de calcul (∑Ni*Ci / ∑Ci), nous avons besoins des notes de chaque matière dans l’ordre, et enfin nous pouvons communiquer le résultat à l’utilisateur. ALGORITHME MOYENNE CONST C1=2 C2=3 C3=1 VAR N1, N2, N3 : REEL MOY : REEL DEBUT {Affichage message : Invitation de l'utilisateur à introduire des données} ECRIRE(" Donner trois valeurs réelles ") {Saisie des notes} LIRE(N1, N2, N3) {Calcul de la moyenne} MOY←(N1*C1+N2*C2+N3*C3) / (C1+C2+C3) {Affichage du résultat sur l’écran} ECRIRE(" La moyenne est = ", MOY) FIN Remarque : Le texte entre les accolades est purement explicatif, il sert à rendre l’algorithme plus lisible. Cours ALGORITHMIQUE 4 C CH HA AP PI IT TR RE E I II I. . L LE ES S A AC CT TI IO ON NS S A AL LG GO OR RI IT TH HM MI IQ QU UE ES S S SI IM MP PL LE ES S Objectif : Comprendre les actions algorithmiques simples et connaître leurs syntaxes Éléments de contenu :  Concepts de base  La saisie de données  L'affichage  L'affectation  L'évaluation d'une expression arithmétique II.1.0. Concepts de base Dans tout ce qui suit, pour présenter les syntaxes, on suit les règles suivantes : • Ce qui est entre les crochets est optionnel. • La suite des points de suspensions "…" veut dire que ce qui précède peut se répéter plusieurs fois. • Le symbole " | " veut dire : " ou bien ". • Les mots en majuscule sont des mots réservés. • Ce qui est entre accolades est un commentaire, pour la lisibilité des algorithmes. II.2.1. L’affichage : ECRIRE Cette action permet de communiquer un résultat ou un message sur écran ou sur imprimante pour l'utilisateur. Syntaxe ECRIRE(paramètre1 [[,paramètre2]…]) Paramètre = variable | expression | constante Constante = nombre | message 1-e) Exemples ECRIRE(" La valeur de 3*2 est égale à ", 3*2) ↑ ↑ message expression ECRIRE(" La moyenne est = ", MOY) ↑ Variable II.3.2. La saisie des données : LIRE L'ordre LIRE permet à l'ordinateur d’acquérir des données à partir de l’utilisateur, dans des cases mémoire bien définies (qui sont les variables déclarées). Rappel Les variables sont des cases mémoire, supposées contenir un type de données, nommées par le nom de variable. Cours ALGORITHMIQUE 5 Syntaxe LIRE(variable1 [[, variable2] …]) Remarques : 1. La saisie se fait uniquement dans des variables. Ce sont les cases (cellules) qui pourront accueillir les données correspondantes. 2. La donnée à introduire doit être de même type que la variable réceptrice. II.4.3. Les expressions arithmétiques Parmi les opérateurs, on distingue les fonctions et les opérateurs. Les fonctions • La fonction DIV permet de donner le résultat de la division entière d’un nombre par un autre. 7 DIV 2 →3 • La fonction MOD (se lit Modulo), permet de donner le reste de la division entière d’un entier par un autre. 7 MOD 2 →1 • La fonction ** ou ^ permet d’élever un nombre à la puissance d’un autre. 2**3 →8 Les opérateurs • Sont le "+", "-", "/", "*" et le "-" un aire. Ordre de priorité Les opérateurs suivants sont ordonnés du plus prioritaire au moins prioritaire dans l'évaluation d'une expression arithmétique. 1- Les parenthèses 2- "- " un aire 3- Les fonctions 4- Les opérateurs de multiplication " * " et de division " / " 5- Les opérateurs d’addition " + " et de soustraction " - " Remarque Si l’ordre entre les opérateurs dans une expression est le même, on évalue l’expression de gauche à droite. Exemples 3**2+4 = 9+4=13 3**(2+4)=3**6 car les parenthèses sont plus prioritaires 17 MOD 10 DIV 3=(17MOD10)DIV3=7DIV3=2 II.5.4. L’affectation C’est l’action de charger une valeur dans une variable. Cette valeur peut elle-même être une variable, le résultat d’une expression arithmétique ou logique ou une constante. Syntaxe Variable1 ←variable2 | expression | constante A ←B se lit " A reçoit B " Cours ALGORITHMIQUE 6 Le résultat de cette action est de mettre le contenu de la variable B dans la variable A. Si B était une expression, elle aurait été évaluée, ensuite sa valeur est transférée dans la variable réceptrice (à notre gauche). Remarque L’affectation ne vide pas la variable émettrice (à notre droite) de sa valeur. Par contre, le contenu de la variable réceptrice est écrasé et remplacé par la nouvelle valeur. Illustration de l’affectation Supposons qu’on ait deux récipients A et B où A contient un liquide coloré en jaune et B contient un liquide rouge. Peut-on échanger les contenus de A et de B (c.-à-d. mettre le liquide rouge dans A et le liquide jaune dans B). Résultat Cette opération n’est possible que si on utilise un troisième récipient qu’on appelle récipient auxiliaire. Etat 0 Aux A = Jaune B = Rouge Aux = Vide AuxB A = Jaune Etat 1 B = vide Aux = Rouge BA A = Vide Etat 2 B = Jaune Aux = Rouge AAux A = Rouge Etat Final B = Jaune Aux = Vide Avec des variables réelles, cette opération d’échange de contenu se fait entre cases mémoires qui représentent les conteneurs (récipients). Problème : Echanger les valeurs de 2 variables numériques. Principe : pour éviter de perdre l’une des 2 valeurs initiales (A et B), on utilise une 3ième variable pour préserver la valeur initiale de la première variable modifiée. A B Aux Aux Cours ALGORITHMIQUE 7 Remarques Importantes  Toute variable utilisée dans un algorithme doit être déclarée au début de l’algorithme, une fois et une seule.  L’affectation de valeur à une variable peut être uploads/s3/ cours-algorithme.pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager