K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQU

K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 1 Chapitre 3 Les structures de contrôle: approfondissements Nous allons reprendre dans ce chapitre, l'étude des structures de contrôle . Dans un premier temps, nous étudierons d'autres structures que celles que l'on a étudié jusqu'à présent. Ensuite, nous verrons comment on peut imbriquer les structures de contrôle et par la même occasion, nous étudierons la programmation descendante. I. Les différentes structures de contrôle A. Un extension de la structure Si: La structure Selon…Faire (de choix) La structure Selon permet de choisir le traitement à effectuer en fonction de la valeur ou de l'intervalle de valeur d'une variable ou d'une expression. Cette structure permet de remplacer avantageusement une succession de structures Si…Alors. La syntaxe de cette structure est Selon expression Faire valeur 1 de l'expression : traitement 1 valeur 2 de l'expression : traitement 2 valeur 3 de l'expression : traitement 3 … [Sinon traitement par défaut] Finselon Exemple1: Les différents cas sont des valeurs littérales. Voilà l'algorithme qui affiche le mois en toute lettre selon son numéro. Le numéro du mois en mémorisé dans la variable mois. Selon mois Faire 1 : Afficher "Janvier" 2 : Afficher "Février" 3 : Afficher "Mars" 4 : Afficher "Avril" … 11: Afficher "Novembre" 12: Afficher "Décembre" Sinon Afficher "Un numéro de mois doit être compris entre 1 et 12" Finselon K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 2 Exemple 2: Les différents cas possibles sont décrits par des intervalles de valeur (taux de remise différent selon le montant d'achat) … Selon montant Faire <1000 : taux 1 ≥1000 et < 3000: taux 2 ≥3000 et < 10000: taux 3 ≥ 10000: taux 4 FinSelon montant  montant * ( 1 – taux/100) … B. La boucle Répéter…Jusqu'à Cette boucle sert à répéter une instruction jusqu'à ce qu'une condition (expression booléenne) soit vraie. Son formalisme est le suivant: Répéter traitement // une instruction simple ou un bloc d'instructions Jusqu'à condition d'arrêt Le traitement est exécuté, puis la condition est vérifiée. Si elle n'est pas vraie, on retourne au début de la boucle et le traitement est répété. Si la condition est vraie, on sort de la boucle et le programme continue séquentiellement. A chaque fois que le traitement est exécuté, la condition d'arrêt est de nouveau vérifiée à la fin.  Exemple: Programme Aire Var rayon : réel réponse : chaîne Début Afficher "Calcul de l'aire d'un cercle" Répéter Afficher "Entrez le rayon d'un cercle en cm" Saisir rayon Afficher "L'aire de ce cercle est ", rayon*rayon *3.14, "cm²" Afficher "Voulez-vous l'aire d'un autre cercle? (oui/non)" Saisir réponse Jusqu'à réponse ≠ "oui" //si la réponse est différente de "oui", la répétition du traitement s'arrête Afficher "Au revoir!" Fin K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 3 La boucle Répéter n'est pas indispensable. Elle peut toujours être remplacée par une boucle Tantque. C'est pourquoi certains langages n'ont pas d'équivalent pour la boucle Répéter. Différences entre la boucle Répéter et Tantque Tant que…Faire Répéter… Jusqu'à Condition vérifiée avant le traitement: le traitement peut ne pas être exécuté Condition vérifiée après le traitement: le traitement est forcément exécuté une fois condition de continuation : le traitement est répété si la condition est vraie condition d'arrêt : le traitement est répété si la condition est fausse II. L'imbrication des Structures Si Les structures conditionnelles peuvent être imbriquées (c'est-à-dire incluses les unes dans les autres). Voilà un programme qui fait la même chose que l'exemple 2 sur la structure Selon, mais utilisant l'imbrication des structures Si. Programme taux Var montant, taux: entiers Début Si montant < 1000 //(1) Alors taux  1 Sinon Si montant < 3000 //(2) Alors taux  2 Sinon Si montant < 10000 //(3) Alors taux  3 Sinon taux 4 Finsi //(3) Finsi //(2) Finsi //(1) Montant  montant - montant * taux/100 Afficher montant Fin test Faux traitement Vrai su i te traitement test su i te Vrai Faux K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 4 Si le montant est inférieur à 1000, la valeur 1 est affectée au taux et le programme passe à l'instruction suivante. Attention, l'instruction suivante n'est pas celle qui suit Sinon. Si la condition est vérifiée, tout ce qui suit le Sinon est ignoré, y compris les Si qui sont imbriqués dans le Sinon. Donc le programme passe à l'instruction suivante qui est montant montant - montant * taux/100 En ce qui concerne la présentation, nous avons décalé vers la gauche les structures imbriquées. C'est une convention d'écriture qu'on retrouve pour toutes les structures, et qui a pour but de rendre l'algorithme plus lisible.  Les structures imbriquées sont emboîtées telles des poupées russes. Il est impossible qu'elles se chevauchent. Cela est valable pour les structures conditionnelles et pour toutes les autres structures. Dans ce cas, le premier FinSi rencontré dans l'algorithme indique toujours la fin de la structure la plus imbriquée. Il est donc inutile de numéroter les structures pour reconnaître où elles se terminent. La plupart du temps, la structure Selon va permettre d'éviter l'imbrication des structures Si. Pourtant, il est indispensable de savoir les utiliser pour deux raisons: - dans le langages C++ et dans d'autres langages, la Structure équivalente à Selon ne permet pas d'utiliser des intervalles de valeur (voir le cours de C++). - il est parfois impossible d'utiliser la structure Selon, en particulier lorsque les conditions portent sur plusieurs variables. III. L'imbrication des boucles Comme les structures conditionnelles, les boucles peuvent être imbriquées. Cette partie n'apporte pas de notion nouvelle mais permet de souligner certains aspects délicats. K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 5 Le morceau d'algorithme suivant permet simplement d'afficher 5 étoiles. Il n'y a pas d'imbrication pour l'instant. Pour i de 1 jusqu'à 5 Faire Afficher "*" FinPour Si on inclut cette séquence à l'intérieur d'une boucle qui se répète 3 fois, on va effectuer 3 fois l'affichage de 5 étoiles donc on va obtenir l'affichage de 15 étoiles.  L'imbrication des boucles multiplie les tours de boucles Pour j de 1 jusqu'à 3 Faire Pour i de 1 jusqu'à 5 Faire Afficher "*" FinPour * * * * * * * * * * * * * * * FinPour Remarque TRES importante: Lorsque l'on imbrique des boucles, IL FAUT UTILISER DES COMPTEURS DIFFERENTS pour chaque boucle. Pour pouvoir afficher 3 lignes de 5 étoiles, au lieu de 15 étoiles à la suite, il suffit d'ajouter un saut de ligne après le Pour le plus imbriqué. ***** ***** ***** Pour j de 1 jusqu'à 3 Faire Pour i de 1 jusqu'à 5 Faire Afficher "*" FinPour Afficher "\n" FinPour La boucle la plus imbriquée s'exécute alors que la "grande" boucle s'exécute seulement 3 fois. Le compteur i varie 5 fois plus vite que le compteur j. Trace j = 1 j = 2 j = 3 i = 1 i = 2 i = 3 i = 4 i = 5 i = 1 i = 2 i = 3 i = 4 i = 5 i = 1 i = 2 i = 3 i = 4 i = 5 * * * * * * * * * * * * * * * saut de ligne saut de ligne saut de ligne Tous les types de boucles peuvent s'imbriquer entre eux. La seule règle à respecter est que les boucles ne doivent pas se chevaucher: elles doivent s'emboîter. Si vous respectez bien la règle des décalages, vous ne pouvez pas vous tromper. OK IMPOSSIBLE K. Zabo Algo: Chap 3 Centre Universitaire Professionnalisé L3-M1-M2-INFORMATIQUE-TELECOMS 6 Tantque a > b Faire Pour i de 1 jusqu'à n Faire … FinTantque FinPour  Exemple d'imbrication de boucles différentes Voilà un programme qui calcule le chiffre d'affaire annuel d'un représentant à partir de la saisie des 12 chiffres d'affaire mensuels. Le programme permet de recommencer le calcul avec un autre représentant si l'utilisateur tape le caractère 'o' (pour oui). Programme CA Var CAM : réel //chiffre d'affaire mensuel CAA : réel //chiffre d'affaire annuel mois : entier //compteur de la boucle qui calcule le CA annuel réponse : caractère Début Répéter Afficher "Veuillez entrer les 12 chiffres d'affaire mensuels d'un représentant" CAA  0 //réinitialisation du CA annuel pour chaque représentant. Afficher "Chiffre d'affaire annuel :" , CAA Afficher "Voulez-vous calculer le chiffre d'affaire annuel d'un autre représentant?" Saisir réponse Jusqu'à réponse ≠ 'o' Pour mois de 1 jusqu'à 12 Faire Saisir CAM CAA CAA + CAM //cumul FinPour Fin L'imbrication des boucles n'est pas compliquée si on pense à bien décomposer les problèmes, du général au particulier (c'est l'approche descendante). Pour cela, il faut procéder à une analyse du problème sans rentrer dans les détails de l'algorithme. On réfléchit d'abord à QUOI faire avant de réfléchir à COMMENT faire. Le quoi faire de l'algorithme précédent pourrait s'exprimer ainsi. Répéter calculer le chiffre d'affaire d'un représentant et l'afficher demander à l'utilisateur s'il veut continuer Jusqu'à ce qu'il ne réponde pas 'o' uploads/Ingenierie_Lourd/ chapitre-3-structure-de-controle-pdf.pdf

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