1. Thème 3Contrôle de flux d’instructions 2011-01-27 SIO-2109 Z1 Introduction à la programmation 1
2. Séquence d’instructions Un programme= suite d’instructions exécutées l’une à la suite de l’autre. Structure de contrôle= instructions qui déterminent l’ordre d’exécution des actions Séquence Sélection Répétition 2
3. Sélection ou exécution conditionnelle (1/3) « S’il fait chaud , alors j’ouvre la fenêtre » « Si la lumière est rouge alors je ne peux pas traverser » 3 Algorithme Initialisation Début | | Si temps est «Chaud » Alors | | Ouvrir fenêtre |Fin Si | Fin Algorithme Initialisation Début | | Si lumière est «Rouge» Alors | | Attendre lumière verte | |Sinon | | Traverser |Fin Si Fin
4. « S’il pleut je prends mon parapluie, mais je prendras quand même mon manteau » « Si ce n’est pas assez salé, j’ajouterais du sel, sinon, si c’est trop salé je ne mangerais pas, sinon je mangerais quand même » 4 Algorithme Initialisation Début | | Si temps est «Pluvieux» Alors | Ouvrir fenêtre |Fin Si | |Prendre manteau | Fin Algorithme Initialisation Début | | Si repas est « pas assez salé» Alors | | Ajouter sel | Manger |Sinon | | | Si repas est «Trop Salé» Alors | | Ne pas manger | |Sinon | | Manger | | Fin Si | |Fin Si | Fin
5. Sélection ou exécution conditionnelle (2/3) Python exécute normalement les instructions de la première à la dernière. Sauf lorsqu’il rencontre une instruction conditionnelle comme l’instruction if. L’instruction if permet de tester la validité de la condition. Si la condition est vraie, alors l’instruction que nous avons indentée après le « : » est exécutée. Si la condition est fausse, rien ne se passe. >>>a = 20 >>>if (a > 100): … print("a dépasse 100") …else: … print("a ne dépasse pas 100") … a ne dépasse pas 100 >>> 5 Condition Exécution alternative
6. Sélection ou exécution conditionnelle (3/3) elif (contraction de « else if ») >>>a = 0 …if (a > 0): … print(“a estpositif") …elif (a < 0): … print(“a estnégatif") …else: … print("a == 0") Remarque 6 ≠ Chaîne de caractères Booléen (valeur logique)
12. x <= y #x est inférieur ou égal à y>>> a = 7 >>> if (a % 2 == 0): ... print "a est pair" ... print "parce que le reste de sa division par 2 est nul" ... else: ... print "a est impair" ... a est impair 7 Attention! =: affectation ==: comparaison
13.
14. Blocs d’instructions(1/2) Instructions composées (Bloc) ont la même structure Ligne d’entête + ‘:’ Indentation(tabulations ou 4 espaces)+instruction Un bloc d’instructions est une suite d’instructions formant un ensemble logique, qui n’est exécuté que dans certaines conditions définies dans la ligne d’en-tête. 9
15. 10 Exemples >>> temps = " Chaud " #initialisation >>>if (temps== " Chaud"): … print("J’ouvre la fenêtre") Algorithme Initialisation Début | | Si temps est «Chaud » Alors | | Ouvrir fenêtre |Fin Si | Fin Algorithme Initialisation Début | | Si lumière est «Rouge» Alors | | Attendre lumière verte | |Sinon | | Traverser |Fin Si Fin >>> lumière = " verte " #initialisation >>>if (lumière == " Rouge"): … print("J’attends la lumière verte") …else: … print(« Je traverse")
16. 11 Algorithme Initialisation Début | | Si temps est «Pluvieux» Alors | Ouvrir fenêtre |Fin Si | |Prendre manteau | Fin >>> temps = " Chaud " #initialisation >>>if (temps== " Chaud"): … print("J’ouvre la fenêtre") Algorithme Initialisation Début | | Si repas est « Peu salé» Alors | | Ajouter sel | Manger |Sinon | | | Si repas est «Trop Salé» Alors | | Ne pas manger | |Sinon | | Manger | | Fin Si | |Fin Si | Fin >>> repas = " Salé" #initialisation >>>if (repas == " Peu salé"): … repas = Salé … print("Je mange le repas!") …elif (repas == " Trop salé"): … print("Je ne mange ce repas!") …else: … print("Je mange le repas!")
17. Exemple >>>embranchement = "vertébrés" >>>classe = "mammifères" >>>ordre = "carnivores" >>>famille = "félins" >>>if embranchement == "vertébrés": … if classe == "mammifères": … if ordre == "carnivores": … if famille == "félins": … print("c’est peut-être un chat") … print("c’est en tous cas un mammifère") … elif classe == "oiseaux": … print("c’est peut-être un canari") …print("la classification des animaux est complexe") 12 Initialisation Bloc 1 Bloc 2
18. Un chat est caractérisé par son appartenance à l'embranchement des vertébrés, à la classe des mammifères carnivores et la famille des félins. Nous fournissons ces données qui caractérisent cet être vivant au programme qui fonctionne selon le principe suivant: Si l'être en question appartient à la classe des vertébrés alors il s'agit d'un mammifère ou bien d'un oiseau. S'il s'agit d'un mammifère il se peut qu'il soit carnivore. S'il est carnivore il se peut qu'il soit un félin, on pourrait alors admettre que c'est un chat. De toute façon s'il est carnivore on est sur que c’est un mammifère. Mais si c‘est un oiseau, ca se peut que ce soit un canari. En fin de compte la classification des animaux est complexe. 13 Reformulation du problème
19. Sélection ou exécution conditionnelle (2/2) 14 Si condition vérifiée Autres cas traitement 2 Cas particulier traitement 1 Si condition est fausse