1 Chapitre 2 : STRUCTURE D’UN ALGORITHME 1. INTRODUCTION Le but d’un algorithme

1 Chapitre 2 : STRUCTURE D’UN ALGORITHME 1. INTRODUCTION Le but d’un algorithme étant de décrire un traitement informatique dans quelque chose de compréhensible par l’humain (et facilement transposable vers la machine), pour qu’un algorithme soit compréhensible, il faut qu’il soit clair et lisible. Dans ce cas, il existe deux moyens efficaces : - soit d’écrire l’algorithme sous forme de texte simple et évident, - soit de faire un schéma explicatif avec des symboles. Dans la pratique, les deux formes sont possibles. Il est d’ailleurs courant de commencer par un schéma, puis quand celui-ci devient trop complexe, de passer à un texte explicatif (la recette). Dans ce chapitre nous écrirons les algorithmes sous forme de texte structurés. 2. METHODOLOGIE 2.1. Les étapes de résolution d'un problème Un algorithme résous un problème. Pour mieux cerner la nature et le contenu du problème, il y a des étapes à suivre. Comprendre l'énoncé du problème en se posant quelques questions : - De quoi est-il question dans ce problème ? - Qu’est-ce-qu’on me demande ? - Quels sont les éléments contenus dans le problème et que je dois utiliser pour résolution ? - Il y a-t-il un calcul à effectuer (si oui poser la formule du calcul et déduire les éventuelles variables) ? - Quelle est la finalité du problème ? 2.2. Décomposer le problème en sous-problèmes plus simple à résoudre Décomposer le problème en sous-problèmes, c’est décrire les grandes lignes de la résolution du problème posé. C’est-à-dire pour passer des données aux résultats tout en respectant les hypothèses de travail. Autrement dit il s’agit d’associer à chaque sous problème une méthode détaillée décrivant toutes les étapes d’une tâche à accomplir : Les entrées : - l’élément (ou les éléments) dont on part : éléments de données; - Le traitement des données : les actions à effectuer sur ces éléments ; - Les sorties : le (ou les) résultat(s) obtenus. Il est important de déterminer d’avance le type des entrées et des sorties pour un meilleur traitement des données. Résumé. En résumé, on peut retenir que la résolution d’un problème est caractérisée 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. 2 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). 3. STRUCTURE GENERALE D’UN ALGORITHME 3.1. Les éléments d’un algorithme Un algorithme se caractérise par deux sous-ensembles qui sont : l’ensemble des objets (données et résultats) et l’ensemble des opérations ou actions. L’objet désigne une entité du problème. Il est caractérisé par son identificateur (son nom) et par son titre (l’ensemble des opérations applicables à cet objet). Les actions sont appliquées sur les données pour produire un résultat. Ainsi, la structure d’un algorithme se subdivise en trois parties dont l’ordre est à respecter. Les trois principales parties sont: ▪ L’en-tête : cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot Algorithme ; ▪ La partie déclarative : dans cette partie, on déclare les différents objets que l’algorithme utilise (constantes, variables, etc.) ; ▪ Le corps de l’algorithme : cette partie contient les instructions de l’algorithme. Elle est délimitée par les mots Début et Fin. La syntaxe générale d’écriture d’un algorithme est alors la suivante : En tête Algorithme Nom Algorithme Partie déclarative Constante Identificateur : valeur Variable Identificateur : type Corps de l’algorithme DEBUT Instruction 1 Instruction 2 ………………. Instruction n FIN Figure 4. Structure d’un algorithme Remarque. Les mots réservés (ALGORITHME, FONCTION, TANTQUE, POUR, …) sont des identificateurs prédéfinis du langage algorithmique. Ils ne doivent pas être utilisés comme identificateur dans un algorithme. Exemple : syntaxe générale d’un algorithme Algorithme nom_algorithme VAR nom_variable : type 3 CONST Nom_constante : valeur FONCTION nom_fonction() : type PROCEDURE nom_procédure() DEBUT Instruction 1 Instruction 2 ………………. Instruction n FIN Remarque. Tous les mots réservés (ou mots clés) sont de préférence mis en majuscule ainsi que le premier caractère des constantes. 4. FORMAT DES INSTRUCTIONS D’ENTREE ET SORTIE 4.1. Entrées et sorties Nous disposons d’une instruction de saisie qui permet de récupérer une valeur sur un périphérique d’entrée (le clavier), et d’une instruction d’affichage qui permet l’édition d’une valeur sur un périphérique de sortie (l’écran). Saisir <identification> /* instruction d’entrée*/ Afficher <valeur> /*instruction de sortie*/ Il convient d’afficher des messages permettant de faciliter la communication. Les instructions saisir et afficher donne un moyen à l’utilisateur de dialoguer avec l’ordinateur via le clavier et l’écran. 4.2. Opérateurs et expressions Définition. Un opérateur est un signe qui relie deux variables pour produire un résultat. Les opérateurs dépendent des types de variables mis en jeu. Pour le type numérique on a les opérateurs suivants : + Addition / Division - Soustraction ˆ Puissance * Multiplication % Modulo Tandis que pour le type chaîne, on a un seul opérateur qui permet de concaténer deux chaînes de caractères. Cet opérateur de concaténation est noté &. Par exemple : la chaîne de caractères ″Salut″ concaténer à la chaîne ″tout le monde″ donne comme résultat la chaîne ″Salut tout le monde″. Définition. Une expression est un ensemble de variables (ou valeurs) reliées par des opérateurs et dont la valeur du résultat de cette combinaison est unique. Par exemple : 7 5+4 a + 15 – b/2 nom & prénom Où a et b sont des variables numériques (réels ou entiers) et nom et prénom sont des variables chaîne. 4 4.3. L’instruction d’affectation L’instruction d’affection est une instruction qui consiste à attribuer une valeur à une variable. On la notera avec le signe « ← ». Cette instruction s’écrit par exemple : montant ← 405 On dit qu’on affecte (ou on attribue) la valeur 405 à la variable numérique montant. Si dans une instruction d’affectation, la variable à laquelle on affecte la valeur et la valeur affectée ont des types différents, cela provoquera une erreur. On peut aussi attribuer à une variable la valeur d’une variable ou d’une expression de façon générale. On écrit par exemple : A ← B A ← B * 2 + 5 Syntaxe d’affectation VAR ← expression Dans ce cas, l’instruction d’affectation sera exécutée en deux temps : ▪ d’abord, on calcule la valeur de l’expression ▪ On affecte la valeur obtenue à la variable à gauche. On peut même avoir des cas où la variable de gauche qui figure dans l’expression à droite. Par exemple : A ← A + 5 Dans cet exemple, après l’exécution de l’instruction d’affectation la valeur de la variable A sera augmentée de 5. Remarque. Dans une instruction d’affection on a toujours : ▪ à gauche de la flèche d’affection un nom de variable ▪ à droite de la flèche d’affectation une valeur ou une expression ▪ l’expression à droite de la flèche doit être du même type que la variable située à gauche. Si dans une instruction d’affectation un de ces points n’est pas respecté, cela engendrera une erreur. Il est à noter que l’ordre dans lequel sont écrites les instructions est essentiel dans le résultat final Exemple 1. Ecrire un algorithme qui demande deux nombres entiers à l'utilisateur, puis qui calcule et affiche la somme de ces nombres. 5 Algorithme Calcul_double VAR A, B, S : ENTIER DEBUT Afficher ("entrer les nombres A et B ") /* demande d’entrer un nombre sur l’écran*/ saisir (A,B) /* Entrée au clavier un nombre */ S ← A+B Afficher ("la somme de ", A, ‘’et’’, B, "est :", S) FIN Dans un algorithme, les instructions s’exécutent séquentiellement les unes après les autres, dans l’ordre où elles apparaissent. Il est important de bien définir chaque instruction. Exemple 2. Ecrire un algorithme qui échange deux nombres stockés. Algorithme echange_stockage VAR a : ENTIER VAR b : ENTIER VAR tamp : ENTIER /* variable tampon de stockage */ DEBUT tamp ← a /* on sauvegarde a dans la variable tamp */ a ← b b ← tamp FIN Remarques. Dans l’exemple 2, les variables sont déclarées une à une en revenant à la ligne pour chaque déclaration. Dans l’exemple 1, les variables sont déclarées sur une seule ligne. Ces deux algorithmes sont corrects. Il est important de noter que la déclaration de plusieurs variables sur une même ligne est possible si elles ont le type. Les textes entre les symboles ‘’/*,’’ et ‘’ */ ‘’ sont des commentaires qui expliquent la ligne (ou l’instruction) à gauche. Ce n’est donc pas une instruction à exécuter. 5. LA STRUCTURE ALTERNATIVE 5.1. Les conditions simples Une condition simple consiste en une comparaison entre deux expressions du même type. Cette comparaison s'effectue avec des opérateurs de comparaison. Voici la liste de ces opérateurs accompagnés de leur signification dans le cas des types numérique ou chaîne : 3 A 6 B 9 S uploads/s3/ algo-ch2-structure-d-x27-un-algorithme 1 .pdf

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