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
Documents similaires
-
15
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 10, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.3350MB