0% ont trouvé ce document utile (0 vote)
18 vues12 pages

Décisions en Python : Instructions if et else

Ce document traite des techniques de prise de décision en Python, en mettant l'accent sur l'utilisation des instructions if, elif et else pour gérer des conditions simples et complexes. Il explique également l'importance de l'ordre des instructions et de l'indentation pour le bon fonctionnement des blocs de code. Enfin, il fournit des exemples pratiques et des exercices pour illustrer ces concepts.

Transféré par

rifimpa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues12 pages

Décisions en Python : Instructions if et else

Ce document traite des techniques de prise de décision en Python, en mettant l'accent sur l'utilisation des instructions if, elif et else pour gérer des conditions simples et complexes. Il explique également l'importance de l'ordre des instructions et de l'indentation pour le bon fonctionnement des blocs de code. Enfin, il fournit des exemples pratiques et des exercices pour illustrer ces concepts.

Transféré par

rifimpa
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PRENDRE DES DÉCISIONS AVEC PYTHON

La possibilité de prendre des décisions pour suivre un chemin ou bien un autre est quelque chose
d’essentiel dans toute activité. Les mathématiques donnent à l’ordinateur la capacité d’obtenir des
informations utiles. Et ces informations permettent ensuite d’effectuer telle ou telle action. Sans cela, un
ordinateur ne servirait strictement à rien. Tout langage de programmation doit offrir des fonctionnalités pour
pouvoir prendre des décisions d’une certaine manière. Ce chapitre explore les techniques que Python
utilise dans ce domaine.

Dans ce point :

Utiliser l’instruction if pour prendre une décision simple.


Prendre des décisions plus complexes avec l’instruction if...else .
Créer des niveaux de décision multiples en imbriquant les instructions.

La plupart des décisions quotidiennes se prennent naturellement, mais les ordinateurs, eux, doivent
effectuer à chaque fois les tâches suivantes :

Obtenir la valeur réelle ou actuelle de quelque chose.


Comparer cette valeur réelle ou actuelle avec une valeur attendue.
Effectuer l’action voulue en fonction du résultat de la comparaison.

Sauf mention explicite, les instructions d’un programme s’exécutent les unes après les autres, dans l’ordre
où elles ont été écrites à l’intérieur du script. Cette affirmation peut vous paraître banale et évidente à
première vue. L’expérience montre cependant qu’un grand nombre d’erreurs sémantiques dans les
programmes d’ordinateur sont la conséquence d’une mauvaise disposition des instructions. Plus vous
progresserez dans l’art de la programmation, plus vous vous rendrez compte qu’il faut être extrêmement
attentif à l’ordre dans lequel vous placez vos instructions les unes derrière les autres. Par exemple, dans la
séquence d’ins- tructions suivantes :

In [ ]: a, b = 3, 7
a = b
b = a
print(a, b)

Vous obtiendrez un résultat contraire si vous intervertissez les 2e et 3e lignes.

Python exécute normalement les instructions de la première à la dernière, sauf lorsqu’il rencontre une
instruction conditionnelle comme l’instruction if décrite ci-après (nous en rencontrerons d’autres plus loin,
notamment à propos des boucles de répétition). Une telle instruction va permettre au programme de suivre
différents chemins suivant les circonstances.

Prendre des décisions simples avec l’instruction if

Sans le savoir, vous utilisez couramment des instructions if dans la vie de tous les jours. Vous vous dites
par exemple : « Si c’est Dimanche, je vais aller à l'église. » L’instruction if de Python est moins bavarde,
mais elle suit le même schéma. Supposons que vous créez une variable appelée TestMe et que vous y
placez la valeur 6, comme ceci :

In [43]:

Vous demandez ensuite à l’ordinateur de comparer la valeur de TestMe à 6 :

In [50]: TestMe = int(input('Tapez un nombre : '))


if TestMe == 7 :
print('TestMe est égal à 6 !')

if TestMe != 7 :
print('TestMe non egal a 6 !')

TestMe non egal a 6 !

Cette séquence débute par le mot if (si). Lorsque Python voit ce mot, il sait que vous voulez prendre une
décision. À sa suite vient une condition. Une condition indique tout simplement le type de comparaison que
vous voulez demander à Python d’effectuer. Dans ce cas, il s’agit de déterminer si TestMe contient bien la
valeur 6.

In [49]: a = 150
if a > 100:
print("a dépasse la centaine")

a dépasse la centaine

Recommencez le même exercice, mais avec a = 20 enguisedepremièreligne : cette fois Python n’affiche
plus rien. L’expression que vous avez placée entre parenthèses après if est ce que nous appellerons
désormais une condition. L’instruction if permet de tester la validité de cette 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.

Notez que les parenthèses utilisées ici avec l’instruction if sont optionnelles : nous les avons utilisées
pour améliorer la lisibilité. Dans d’autres langages, il se peut qu’elles soient obligatoires.

Recommencez encore, en ajoutant deux lignes comme indiqué ci-dessous. Veillez bien à ce que la
quatrième ligne débute tout à fait à gauche (pas d’indentation), mais que la cinquième soit à nouveau
indentée (de préférence avec un retrait identique à celui de la troisième) :

Remarquez que la condition utilise l’opérateur relationnel d’égalité, == , et non l’opérateur = , qui définit
une affectation. Oublier un des deux signes d’égalité est une erreur courante.

La condition se termine toujours par un deux-points ( :) . Si vous l’oubliez, Python ne saura pas que la
condition se termine, et il continuera à rechercher sa suite avant de prendre une décision. Une fois ce
caractère entré, vous placez les tâches que Python devrait effectuer si la condition est vérifiée (vraie). Ici,
vous demandez simplement à afficher un message qui confirme que TestMe est bien égal à 6.

En Python, la structure des conditions est généralement basée sur l'utilisation de l'instruction if , elif
(qui est une contraction de "else if") et else . Voici un exemple de base :

if condition:
# bloc de code à exécuter si la condition est vraie
elif autre_condition:
# bloc de code à exécuter si "autre_condition" est vraie
else:
# bloc de code à exécuter si aucune des conditions précédentes n'est vraie
Chaque if , elif , et else doit être suivi d'un deux-points ( : ) et le code à exécuter si la condition est
vraie doit être indenté.

Voici un exemple concret :

In [8]: age = 20
if age < 18:
print("Vous êtes mineur.")
elif age >= 18 and age < 65:
print("Vous êtes adulte.")
else:
print("Vous êtes senior.")

Vous êtes adulte.

Dans cet exemple, si age est inférieur à 18, le programme affiche "Vous êtes mineur.". Si age est
supérieur ou égal à 18 et inférieur à 65, le programme affiche "Vous êtes adulte.". Si aucune de ces
conditions n'est vraie (c'est-à-dire si age est supérieur ou égal à 65), le programme affiche "Vous êtes
senior.".

Effectuer des tâches multiples

Après avoir pris une décision, vous avez très souvent non pas une, mais plusieurs tâches à accomplir.
Python se base sur l’indentation pour déterminer le moment où il doit arrêter d’exécuter les tâches qui sont
associées à l’instruction if . Tant que le texte est indenté, cela signifie qu’il fait partie de l’instruction if.
Dès que cette indentation se termine, la ligne qui suit devient la première qui est extérieure à l’instruction
if . Un bloc de code consiste en une instruction plus les tâches associées à celle-ci. Cette notion est
extrêmement générale, mais, en l’occurrence, elle s’applique à une instruction if qui fait partie d’un bloc
de code.

In [10]: if TestMe == 6 :
print('TestMe est égal à 6 !')
print('Terminé')

TestMe est égal à 6 !


Terminé

Notez que Python continue à indenter les lignes tant que vous continuez à saisir du code. Toutes les lignes
que vous tapez ainsi font partie du bloc de code associé à l’instruction if courante.

Opérateurs de Comparaison en Python

x == y # x est égal à y

x != y # x est différent de y

x > y # x est plus grand que y


x < y # x est plus petit que y

x >= y # x est plus grand que, ou égal à y

x <= y # x est plus petit que, ou égal à y

Notez bien que l’opérateur de comparaison pour l’égalité de deux valeurs est constitué de deux signes «
égale » et non d’un seul. Le signe « égale » utilisé seul est un opérateur d’affectation, et non un opérateur
de comparaison. Vous retrouverez le même symbolisme en C++ et en Java.

In [17]: a = 5
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

EXERCICES

1. Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif
ou négatif (on laisse de côté le cas où le nombre vaut zéro).

In [53]: nombre= int(input('veuillez entrer un nombre:'))


if(nombre<0):
print('ce nombre est negatif')
elif(nombre ==0):
print('ce nombre est NULL')
else :
print('ce nombre est positif')

ce nombre est NULL

1. Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est
négatif ou positif (on laisse de côté le cas où le produit est nul).Attention toutefois : on ne doit pas
calculer le produit des deux nombres.

In [ ]: nombre1= int(input('veuillez entrer un nombre:'))


nombre2= int(input('veuillez entrer un nombre:'))

if nombre1 >0 and nombre2 >0:


print('produit est positif')
else :
print('le produit est negatif')

In [1]: nombre1= int(input('veuillez entrer un nombre:'))


nombre2= int(input('veuillez entrer un nombre:'))

if nombre1 >0 and nombre2 >0:


print('produit est positif')
else :
print('le produit est negatif')
le produit est negatif

1. Ecrire un algorithme qui demande trois noms à l’utilisateur et l’informe ensuite s’ils sont rangés ou non
dans l’ordre alphabétique.

In [ ]:

1. Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce nombre est positif
ou négatif (on inclut cette fois le traitement du cas où le nombre vaut zéro).

In [ ]:

1. Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est
négatif ou positif (on inclut cette fois le traitement du cas où le produit peut être nul). Attention toutefois,
on ne doit pas calculer le produit !

In [ ]:

Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :

"Poussin" de 6 à 7 ans
"Pupille" de 8 à 9 ans
"Minime" de 10 à 11 ans
"Cadet" après 12 ans

Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?

In [7]: age=int(input(''))
if age == 6 or age== 7 :
print('poussin')
elif age==8 or age==9 :
print("pupille")
elif age==10 and age==11 :
print('minime')
elif age>=12:
print('cadet')
else :
print('enfant')

poussin

In [2]: age = input("Tapez votre âge : ")


type(age)

str
Out[2]:

Instructions composées – blocs d’instructions

La construction que vous avez utilisée avec l’instruction if est votre premier exemple d’instruction
composée. Vous en rencontrerez bientôt d’autres. Sous Python, les instructions composées ont toujours la
même structure : une ligne d’en-tête terminée par un double point, suivie d’une ou de plusieurs instructions
indentées sous cette ligne d’en-tête. Exemple :

Ligne d’en-tête:

première instruction du bloc

... ...

... ...

dernière instruction du bloc

S’il y a plusieurs instructions indentées sous la ligne d’en-tête, elles doivent l’être exactement au même
niveau (comptez un décalage de 4 caractères, par exemple). Ces instructions indentées constituent ce que
nous appellerons désormais un bloc d’instructions. 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. Dans l’exemple du paragraphe précédent, les deux lignes d’instructions indentées sous la ligne
contenant l’instruction if constituent un même bloc logique : ces deux lignes ne sont exécutées – toutes
les deux – que si la condition testée avec l’instruction if se révèle vraie, c’est-à-dire si le reste de la
division de a par 2 est nul.

Il est parfaitement possible d’imbriquer les unes dans les autres plusieurs instructions composées, de
manière à réaliser des structures de décision complexes. Exemple :

In [35]: embranchement = ''


classe = ''
ordre = ''
famille = ''

if embranchement == "vertébrés": #1
if classe == "mammifères": #2
if ordre == "carnivores": #3
if famille == "félins": #4
print("c’est peut-être un chat") #5
print("c’est en tous cas un mammifère") #6
elif classe == "oiseaux": #7
print("c’est peut-être un canari") #8
print("la classification des animaux est complexe") #9

Analysez cet exemple. Ce fragment de programme n’imprime la phrase « c’est peut-être un chat » que
dans le cas où les quatre premières conditions testées sont vraies. Pour que la phrase « c’est en tous cas
un mammifère » soit affichée, il faut et il suffit que les deux premières conditions soient vraies. L’instruction
d’affichage de cette phrase (ligne 4) se trouve en effet au même niveau d’indentation que l’instruction : if
ordre == "carnivores": (ligne 3). Les deux font donc partie d’un même bloc, lequel est entièrement
exécuté si les conditions testées aux lignes 1 et 2 sont vraies. Pour que la phrase « c’est peut-être un
canari » soit affichée, il faut que la variable embranchement contienne « vertébrés », et que la variable
classe contienne « oiseaux ». Quant à la phrase de la ligne 9, elle est affichée dans tous les cas, parce
qu’elle fait partie du même bloc d’instructions que la ligne 1

Quelques règles de syntaxe Python


Tout ce qui précède nous amène à faire le point sur quelques règles de syntaxe :

Les limites des instructions et des blocs sont définies par la mise en page
Dans de nombreux langages de programmation, il faut terminer chaque ligne d’instructions par un caractère
spécial (souvent le point-virgule). Sous Python, c’est le caractère de fin de ligne13 qui joue ce rôle. (Nous
verrons plus loin comment outrepasser cette règle pour étendre une instruction complexe sur plusieurs
lignes.) On peut également terminer une ligne d’instructions par un commentaire. Un commentaire Python
commence toujours par le caractère spécial # . Tout ce qui est inclus entre ce caractère et le saut à la ligne
suivant est complètement ignoré par le compilateur.

Dans la plupart des autres langages, un bloc d’instructions doit être délimité par des symboles spécifiques
(parfois même par des instructions, telles que begin et end ). En C++ et en Java , par exemple, un
bloc d’instructions doit être délimité par des accolades. Cela permet d’écrire les blocs d’instructions les uns
à la suite des autres, sans se préoccuper ni d’indentation ni de sauts à la ligne, mais cela peut conduire à
l’écriture de programmes confus, difficiles à relire pour les pauvres humains que nous sommes. On
conseille donc à tous les programmeurs qui utilisent ces langages de se servir aussi des sauts à la ligne et
de l’indentation pour bien délimiter visuellement les blocs.

Avec Python, vous devez utiliser les sauts à la ligne et l’indentation, mais en contrepartie vous n’avez pas à
vous préoccuper d’autres symboles délimiteurs de blocs. En définitive, Python vous force donc à écrire du
code lisible, et à prendre de bonnes habitudes que vous conserverez lorsque vous utiliserez d’autres
langages.

Instruction composée : en-tête, double point, bloc d’instructions indenté

Nous aurons de nombreuses occasions d’approfondir le concept de « bloc d’instructions » et de faire des
exercices à ce sujet dès le chapitre suivant

Les blocs d’instructions sont toujours associés à une ligne d’en-tête contenant une instruction bien
spécifique ( if, elif, else, while, def , etc.) se terminant par un double point.
Les blocs sont délimités par l’indentation : toutes lignes d’un même bloc doivent être indentées
exactement de la même manière (c’est-à-dire décalées vers la droite d’un même nombre d’espaces).
Le nombre d’espaces à utiliser pour l’in- dentation est quelconque, mais la plupart des programmeurs
utilisent des multiples de 4.
Notezquelecodedublocleplusexterne(bloc1)nepeutpas lui-même être écarté de la marge de gauche (il
n’est imbriqué dans rien).

In [26]: from [Link] import display, Image

display(Image('[Link]'))
Effectuer des comparaisons multiples en utilisant des
opérateurs logiques

Jusqu’ici, les exemples proposés n’utilisaient qu’une seule comparaison. Mais, dans la vraie vie, il est
fréquent d’avoir à traiter une série de comparaisons pour répondre à divers besoins. Si vous faites par
exemple cuire des sablés, si le minuteur est tombé à zéro et que les bords des gâteaux ont bruni, alors il
est temps de les sortir du four.

Pour effectuer des comparaisons multiples, vous utilisez des opérateurs relationnels que vous combinez
ensuite à l’aide d’opérateurs logiques. Un opérateur logique décrit la manière de combiner des conditions.
Par exemple, vous pourriez dire que x == 6 et y == 7 sont deux conditions permettant si elles sont
vérifiées d’effectuer une ou plusieurs tâches. Le mot-clé et ( and dans le langage de Python) est un
opérateur logique qui demande à ce que les conditions soient vraies pour être validé.

L’un des usages les plus courants des comparaisons multiples consiste à déterminer si une valeur
appartient à un certain intervalle, autrement dit se trouve entre deux valeurs. En fait, il s’agit de quelquedes
comparaisonsmultiples en chose d’important pour rendre vos applications à la fois plus sûres et mieux
adaptées aux besoins des utilisateurs. Il s’agit ici de créer un fichier vous permettant d’exécuter la même
application de multiples fois.

In [32]: Valeur = int(input('Tapez une valeur numérique : '))

if Valeur > 0 and Valeur <= 10 :


print('Vous avez tapez : ', Valeur)
La première ligne demande à l’utilisateur de taper un nombre entre 1 ET 10 . Vous n’avez alors aucune
idée de ce que l’utilisateur a réellement saisi, ou même s’il s’agit d’une valeur quelconque. L’emploi de la
fonction int () signifie que l’utilisateur doit saisir un nombre entier (donc sans point décimal). Sinon,
l’application va générer une exception (autrement dit, une indication d’erreur.

Ce premier contrôle permet de vérifier si l’entrée possède le type demandé. L’instruction if contient deux
conditions. La première vérifie que la valeur est strictement supérieure à 0 (et donc supérieure ou égale à
1 , s’agissant d’un entier). La seconde fait la même de l’autre côté de l’intervalle pour s’assurer que la
valeur est inférieure ou égale à 10 . Ce n’est que lorsque ces deux conditions sont réunies que if peut
autoriser l’instruction suivante à afficher la valeur saisie par l’utilisateur.

Choisir entre plusieurs alternatives avec l’instruction if...else

La plupart des décisions que vous avez à prendre dans une application consistent à choisir une ou deux
options basées sur certaines conditions. Par exemple, face à un feu routier, vous avez deux options :
appuyer sur le frein pour stopper, ou sur l’accélérateur pour continuer. Le bon choix dépend des conditions
que vous pouvez observer, donc en l’occurrence de la couleur du feu. Avec Python, vous n’allez pas freiner,
mais traiter des alternatives comparables.

Avec Python, vous choisissez une des alternatives possibles en utilisant la clause else de l’instruction
if . Une clause est un ajout à un bloc de code qui modifie la manière dont celui-ci fonctionne. La plupart
des blocs de code supportent de multiples clauses. Dans ce cas, la clause else vous permet d’effectuer une
tâche alternative lorsque l’instruction if n’est pas vérifiée, ce qui accroît l’utilité de celle-ci. En règle
générale, on fait référence à la clause else de l’instruction if en l’appelant l’instruction if...else ,
les trois points indiquant qu’il se passe quelque chose entre ces deux mots.

N’oubliez jamais que la clause else n’est exécutée que si l’instruction if n’est pas vérifiée. Il est
important de bien réfléchir à ce qu’implique le fait d’exécuter certaines tâches lorsqu’une ou plusieurs
conditions sont fausses. Ceci peut parfois conduire à des conséquences inattendues.

In [34]: Valeur = int(input('Tapez une valeur numérique : '))

if Valeur > 0 and Valeur <= 10 :


print('Vous avez tapé : ', Valeur)

else :
print('Vous avez tapé une valeur incorrecte')

Vous avez tapé : 4

Exemple :
Vous prenez votre petit-déjeuner à l’hôtel. Vous constatez en lisant le menu que vous pouvez avoir des
œufs, des crêpes, des gaufres ou encore des céréales. Une fois que vous avez choisi ce que vous voulez
dans le menu, le serveur vous amène votre commande. Créer un menu dans lequel l’utilisateur peut
effectuer une sélection nécessite quelque chose comme une instruction if...else , mais avec un petit
quelque chose en plus. Ce petit quelque chose s’appelle ici la clause elif . Celle-ci sert à créer un autre
jeu de conditions (en fait, son nom est juste une contraction de else et de if ). Dans l’exemple qui suit,
nous allons créer un menu simple. Nous reviendrons un peu plus loin sur notre petit-déjeuner.
Cet exemple commence par afficher un menu. L’utilisateur voit une liste de choix, puis l’application lui
demande de taper un nombre entier (avec l’utilisation de la fonction int ()) qui est placé dans la variable
Choice afin de déterminer sa couleur préférée. Une fois que l’utilisateur a effectué son choix, l’application
recherche dans la liste les valeurs potentielles. Dans chaque cas, la valeur de Choice est comparée avec
une certaine réponse afin de créer une condition pour chaque situation. Si, par exemple, l’utilisateur tape 1,
l’application indique que la valeur choisie est le rouge. Si aucune des options choisies n’est correcte, la
clause else est exécutée par défaut.

Quelques exercices
Graphiquement, on peut très facilement représenter un SI comme un aiguillage de chemin de fer (ou un
aiguillage de train électrique, c’est moins lourd à porter). Un SI ouvre donc deux voies, correspondant à
deux traitements différents. Mais il y a des tas de situations où deux voies ne suffisent pas. Par exemple, un
programme devant donner l’état de l’eau selon sa température doit pouvoir choisir entre trois réponses
possibles (solide, liquide ou gazeuse). Une première solution serait la suivante :

In [ ]: Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Ecrire "C’est de la glace"
FinSi
Si Temp > 0 Et Temp < 100 Alors
Ecrire "C’est du liquide"
Finsi
Si Temp > 100 Alors
Ecrire "C’est de la vapeur"
Finsi
Fin

In [ ]:

Vous constaterez que c’est un peu laborieux. Les conditions se ressemblent plus ou moins, et surtout on
oblige la machine à examiner trois tests successifs alors que tous portent sur une même chose, la
température de l'eau (la valeur de la variable Temp). Il serait ainsi bien plus rationnel d’imbriquer les tests
de cette manière :

In [ ]: Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Ecrire "C’est de la glace"
Sinon
Si Temp < 100 Alors
Ecrire "C’est du liquide"
Sinon
Ecrire "C’est de la vapeur"
Finsi
Finsi
Fin

In [ ]:
Nous avons fait des économies : au lieu de devoir taper trois conditions, dont une composée, nous n’avons
plus que deux conditions simples. Mais aussi, et surtout, nous avons fait des économies sur le temps
d’exécution de l’ordinateur. Si la température est inférieure à zéro, celui-ci écrit dorénavant « C’est de la
glace » et passe directement à la fin, sans être ralenti par l’examen d’autres possibilités (qui sont forcément
fausses). Cette deuxième version n’est donc pas seulement plus simple à écrire et plus lisible, elle est
également plus performante à l’exécution. Les structures de tests imbriqués sont donc un outil
indispensable à la simplification et à l’optimisation des algorithmes.

De l’aiguillage à la gare de tri


« J'ai l'âme ferroviaire : je regarde passer les vaches » (Léo Ferré)

Cette citation n’apporte peut-être pas grand chose à cet exposé, mais je l’aime bien, alors c’était le moment
ou jamais. En effet, dans un programme, une structure SI peut être facilement comparée à un aiguillage de
train. La voie principale se sépare en deux, le train devant rouler ou sur l’une, ou sur l’autre, et les deux
voies se rejoignant tôt ou tard pour ne plus en former qu’une seule, lors du FinSi. On peut schématiser cela
ainsi :

In [39]: from [Link] import display, Image

display(Image('Capture d’écran 2024-04-24 à [Link]'))

Mais dans certains cas, ce ne sont pas deux voies qu’il nous faut, mais trois, ou même plus. Dans le cas de
l’état de l’eau, il nous faut trois voies pour notre « train », puisque l’eau peut être solide, liquide ou gazeuse.
Alors, nous n’avons pas eu le choix : pour deux voies, il nous fallait un aiguillage, pour trois voies il nous en
faut deux, imbriqués l’un dans l’autre. Cette structure (telle que nous l’avons programmée à la page
précédente) devrait être schématisée comme suit :

In [38]: from [Link] import display, Image

display(Image('Capture d’écran 2024-04-24 à [Link]'))


Soyons bien clairs : cette structure est la seule possible du point de vue logique (même si on peut toujours
mettre le bas en haut et le haut en bas). Mais du point de vue de l’écriture, le pseudo-code algorithmique
admet une simplification supplémentaire. Ainsi, il est possible (mais non obligatoire, que l’algorithme initial :

In [ ]: Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Ecrire "C'est de la glace"
Sinon
Si Temp < 100 Alors
Ecrire "C’est du liquide"
Sinon
Ecrire "C’est de la vapeur"
Finsi
Finsi
Fin

In [ ]:

devienne :

In [ ]: Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Ecrire "C’est de la glace"
SinonSi Temp < 100 Alors
Ecrire "C’est du liquide"
Sinon
Ecrire "C’est de la vapeur"
Finsi
Fin

In [ ]:

In [ ]:

Vous aimerez peut-être aussi