1 Algorithmes (3) Instruction conditionnelle Objectif du chapitre : Étudier une

1 Algorithmes (3) Instruction conditionnelle Objectif du chapitre : Étudier une nouvelle structure algorithmique : structure conditionnelle ou structure alternative. I. Exemple introductif : un problème de tarifs dégressifs Tarif dégressif : promotion accordée en fonction de la quantité achetée (plus on achète, plus on a de rabais). C’est le cas des prix de gros. 1°) Situation Un magasin de photos propose le développement au tarif de 0,16 € l’unité. Le tarif devient 0,12 € l’unité pour une commande d’au moins 75 photos. On veut élaborer un algorithme donnant le montant dépensé pour un nombre N de photos à développer. 2°) Analyse du problème Pour cela, on doit introduire une instruction conditionnelle (ou test) dans l’algorithme : - Si le nombre de photos N est strictement inférieur à 75, alors le montant est N 0,16  . - Si le nombre de photos N est supérieur ou égal à 75, alors le montant est N 0,12  . Représentation schématique (qui n’est pas tout à fait un organigramme) On note P le prix en euros de la commande. 2 Rentrer le nombre N de photos Non Oui N est-il strictement inférieur à 75 ? Calculer P N 0,12   Calculer P N 0,16   Organigramme : Début N Non Oui N 75  ? P  N × 0,12 P  N × 0,16 P Fin Afficher P 3 La condition est mise dans un losange. 3°) Deux propositions d’algorithmes (rédigés en langage naturel) 1ère proposition Entrée : Saisir N (entier naturel) Traitement : Si N 75  alors P prend la valeur N 0,16  FinSi Si N 75  Alors P prend la valeur N 0,12  FinSi Sortie : Afficher P 2e proposition Entrée : Saisir N (entier naturel) Traitement : Si N 75  Alors P prend la valeur N 0,16  Sinon P prend la valeur N 0,12  FinSi Sortie : Afficher P Commentaires : On retrouve les grandes étapes d’un algorithme vues dans le premier chapitre. Les instructions conditionnelles interviennent dans la partie traitement. Les variables de ces algorithmes sont N et P (2 variables : N entier naturel, P réel). La condition (ou test) est N 75  . Comparaison : La 1ère proposition utilise une alternative simple : « Si … alors … FinSi ». La 2e proposition utilise une alternative complète : « Si … alors … Sinon … FinSi ». Observer l’indentation. 4 Application de l’algorithme (2e proposition) à des nombres :  N 10  La condition N 75  est alors vraie. P prend donc la valeur 10 0,16 1,6   .  N 100  La condition N 75  est alors fausse. P prend donc la valeur 100 0,12 12   . II. Syntaxe des instructions conditionnelles 1°) Condition Une condition (ou test) est un énoncé qui peut être vrai ou faux (on parle de logique booléenne). Par exemple, « n est pair » (phrase ouverte). Dans le cas où n est égal à 2, la condition « n est pair » est vraie ; dans le cas où n est égal à 17, la condition « n est pair » est fausse. 2°) Une condition est une comparaison. Cette définition est essentielle. 3°) Les deux cas de syntaxes • La syntaxe « Si Condition alors Instructions A FinSi » signifie que si la condition est vraie alors l’algorithme exécute Instructions A puis passe à la suite. Dans le cas contraire, il passe directement à la suite de l’algorithme. • La syntaxe « Si Condition alors Instructions A Sinon Instructions B FinSi » signifie que si la condition est vraie alors l’algorithme exécute Instructions A. Dans le cas contraire (la condition est donc fausse), il exécute Instructions B. Ensuite il passe à la suite de l’algorithme. 5 III. Programmation en Python 1°) Structures fondamentales En langage naturel En langage Python Si condition alors instructions FinSi if condition: [instructions] Langage naturel Langage Python On utilise une barre d’indentation. On doit faire à bien écrire les instructions du bloc en décalage (indentation). Il faut penser aux deux points à la fin de la ligne. Il n’existe pas d’instruction pour définir la fin du bloc conditionnel. C’est l’indentation, c’est-à-dire le décalage vers la droite d’une ou plusieurs lignes, qui permet de marquer la fin du bloc. En langage naturel En langage Python Si condition alors instructions A Sinon instructions B FinSi if condition : [instructions] else: [instructions] En Python, lorsque l’on a plus de 2 conditions, on peut utiliser une structure particulière en « if … elif … else … » ; elif est la contraction de « else if » qui signifie « sinon si ». En langage naturel En langage Python Si condition alors instructions A SinonSi instructions B Sinon instructions C FinSi if condition : [instructions] elif: [instructions] else: [instructions] 6 Les opérateurs opérationnels (le terme est bizarre, remarque formulée le 17-9-2015) Ce sont les opérateurs : =, , <, >, , . On les utilise dans les tests.  Sur les calculatrices TI, ces opérateurs sont obtenus par l’instruction « tests », en appuyant sur la touche 2nde math.  Sur les calculatrices CASIO, aller dans le menu REL, obtenu dans l’éditeur du programme en appuyant sur les touches SHIFT VARS F6. 2°) Cas d’un test d’égalité en Python En Python, quand on a un test d’égalité ou une condition d’égalité, on doit écrire « = = ». Le symbole = sert pour l’affectation des variables. 3°) Programmes Python correspondant à l’exemple du I Version classique nombre = int(input("nombre de photos = ?")) if nombre < 75: X = nombre*0.16 if nombre >= 75: X = nombre*0.12 print (X) Version classique nombre = int(input("Nombre de photos = ?")) if nombre < 75: X = nombre*0.16 else: X = nombre*0.12 print (X) Version fonction def prix(N): if N<75: X=N*0.16 else: X=N*0.12 return X 7 Exercice-type Objectifs : - Faire fonctionner à la main un algorithme avec une instruction conditionnelle (condition ou test qui s’applique à la ou aux variables d’entrée). - Montrer le passage à des nombres. On considère l’algorithme suivant rédigé en langage naturel. Les variables sont x et y, deux nombres réels Entrée : Saisir x Traitement : Si 0 x  alors y prend la valeur 2 x  Sinon y prend la valeur – 2 x FinSi Sortie : Afficher y Donner la valeur de y affichée en sortie lorsque la valeur de x saisie en entrée est 5 ; – 1 ; 0. Modèle de rédaction : Pour 5 x  , on a : …  0, donc y prend la valeur  . 8 Solution :  Pour 5 x  , on a : 5 0  , donc y prend la valeur 5 7 2   .  Pour – 1 x  , on a : – 1 0  , donc y prend la valeur – 1– 2 – 3  .  Pour 0 x  , on a : 0 0  , donc y prend la valeur 0 2 2   . Commentaires : La notion de test est à relier à la notion de valeur de vérité d’une proposition en logique. Une proposition mathématique est soit vraie soit fausse mais pas les deux à la fois : c’est ce que l’on appelle le « principe du tiers exclu ». On parle de valeur de vérité d’une proposition. Complément utile pour les tests : la fonction « partie entière » 9 Résumé du chapitre Une instruction conditionnelle intervient dans la partie « traitement » d’un algorithme. Syntaxe : Alternative simple : « Si … alors … FinSi ». Alternative complète : « Si … alors … Sinon … FinSi ». Un algorithme peut faire intervenir plusieurs instructions conditionnelles. Il peut arriver que des instructions conditionnelles soient enchâssées les unes dans les autres. 10 Compétences sur le chapitre : - Connaître la notion de condition ou test (instruction conditionnelle) - Connaître la définition de la partie entière d’un réel et savoir l’utiliser pour rédiger un test. Savoirs-faire sur le chapitre : - Savoir faire fonctionner un algorithme « à la main » avec une instruction conditionnelle - Savoir rédiger un algorithme simple en langage avec une instruction conditionnelle (rédaction d’un test en utilisant les règles symboles usuels =, >, < ou à l’aide d’une phrase) - Savoir programmer un algorithme simple avec une instruction conditionnelle sur calculatrice Il faut bien faire la différence entre écrire un algorithme et écrire un programme ; ce n’est pas la même chose (même si les deux sont liés). 11 Exercices sur les instructions conditionnelles Les exercices s’articulent autour des compétences suivantes : comprendre, expliquer, interpréter, modifier, écrire, programmer un algorithme avec une instruction conditionnelle. Dans les exercices où un algorithme est donné, il est demandé de le recopier pour s’imprégner de la rédaction. 1 Algorithme de Syracuse On considère l’algorithme suivant rédigé en langage naturel. Variables : n, y entiers uploads/Litterature/ algorithmes-3-instruction-conditionnelle-version-14-10-2014.pdf

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