ifthenelse

C1-ALGO-11 : Les tests conditionnels#

Objectifs pédagogiques#

  • connaître les définitions des tests conditionnels

  • être capable de dessiner l’algorigramme correspondant

  • connaître la syntaxe Python pour

    • les tests simples

    • les tests complexes (imbriqués, plusieurs conditions)

  • appliquer sur des exemples

Introduction aux tests conditionnels en algorithmique#

Un test conditionnel est un choix dans un algorithme. Il est l’une des composantes principales de la définition d’un algorithme.

Définition d’un test conditionnel#

Une condition est une expression qui peut prendre l’une des deux valeurs booléennes True ou False.

Un test conditionnel (ou instruction conditionnelle) est une construction algorithmique qui effectue différentes actions, calculs ou opérations en fonction du résultat booléen de la condition.

Le symbole utilisé dans les algorigrammes est le suivant :

condition

Exemples d’applications courantes des tests conditionnels dans la vie quotidienne et en informatique#

  • Test de parité : est-ce qu’un nombre est pair ou impair

  • Test de l’âge : a-t-on l’âge requis pour entrer au cinéma

  • Test du nombre de places disponibles : y a-t-il encore des places disponibles pour l’achat d’un billet de concert ?

  • Test du mot de passe : le mot de passe “1234” est-il le bon mot de passe ?

Concepts fondamentaux des tests conditionnels#

Un test conditionnel se construit toujours avec une condition au minimum.

La structure if#

La structure if (si en frnçais) est fondamentale en algorithmique. Elle permet d’aiguiller, de choisir un chemin dans un algorithme en fonction d’une condition vraie ou fausse.

En programmation, la structure if permet d’exécuter un bloc d’instructions si la condition est vraie.

if (condition est vraie) alors
    exécuter un bloc

La structure if ... else#

Il est possible d’ajouter à la condition if la condition opposée else et d’exécuter un autre bloc d’instructions si la condition est fausse:

if (condition est vraie) alors
    exécuter un bloc
else:
    exécuter un autre bloc

Structures de contrôle conditionnelles avancées#

Tests multiples if ... elif .... else#

Il est possible de tester plusieurs conditions dans une structure de contrôle et ainsi exécuter autant de blocs différents qu’il y a de conditions vraies :

if condition1 est vraie :
    exécuter un bloc
elif condition2 est vraie :
    exécuter un autre bloc
else : # (toutes les conditions sont fausses)
    exécuter encore un autre bloc

Tests imbriqués#

Lorsqu’une condition est vérifiée, alors il est possible de tester une autre condition dans le bloc d’instructions:

if (condition est vraie) alors
    if (une autre condition) alors :
        exécuter un bloc
    else:
        exécuter un autre bloc
else:
    exécuter encore un autre bloc si la première condition est fausse

En Python : attention à l’indentation des instructions

Comparaison des valeurs dans la condition#

Pour qu’une condition soit vraie (ou True), alors il s’agit de comparer deux éléments.

Deux règles de base doivent être respectées impérativement. Les deux éléments à comparer doivent absolument :

  1. être déclarée avant le test : soit comme entrée, soit comme une instruction

  2. être du même type

Le type est une caractéristique d’une grandeur (généralement une variable) qui en décrit sa nature. Par exemple (non exhaustifs) :

  • un entier (par exemple 1, 6000, etc..)

  • une chaîne de caractères (par exemple Caroline, année, …)

On ne peut pas comparer une châine de caractères avec un entier tout comme on ne compare pas des pommes avec des poires

Les 6 opérateurs de comparaison#

Pour comaprer deux grandeurs ou variables, il s’agit d’appliquer le résultat d’un opérateur de comparaison. Si l’on veut comparer les deux grandeurs A et B à l’aide d’un opérateur de comparaison, on écrira :

A operateur B

dont le résultat sera True ou False.

Les 6 opérateurs de comparaison sont les suivants :

Opérateur logique

Python

Comparaison

\(a < b\)

a < b

aest strictement plus petit que b

\(a \leq b\)

a <= b

aest plus petit ou égal à b

\(a > b\)

a > b

aest strictement plus grand que b

\(a \geq b\)

a >= b

aest plus grand ou égal à b

\(a = b\)

a == b

aest identique à b

\(a \neq b\)

a != b

aest différent b

Il n’en existe pas d’autre !

Exemples#

Voici une série d’exemples avec l’algorigramme et le code python correspondant

Test de parité#

parite

N = int(input("Entrez un nombre : "))
if N%2 == 0:
    print(N,"est pair")
else:
    print(N,"est impair")
---------------------------------------------------------------------------
StdinNotImplementedError                  Traceback (most recent call last)
Input In [1], in <cell line: 1>()
----> 1 N = int(input("Entrez un nombre : "))
      2 if N%2 == 0:
      3     print(N,"est pair")

File ~/.local/lib/python3.9/site-packages/ipykernel/kernelbase.py:1174, in Kernel.raw_input(self, prompt)
   1167 """Forward raw_input to frontends
   1168 
   1169 Raises
   1170 ------
   1171 StdinNotImplementedError if active frontend doesn't support stdin.
   1172 """
   1173 if not self._allow_stdin:
-> 1174     raise StdinNotImplementedError(
   1175         "raw_input was called, but this frontend does not support input requests."
   1176     )
   1177 return self._input_request(
   1178     str(prompt),
   1179     self._parent_ident["shell"],
   1180     self.get_parent("shell"),
   1181     password=False,
   1182 )

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

Test de l’âge#

age

age = int(input("Entrez votre âge : "))
if age >= 18 :
    print("Vous êtes majeur.e")
else:
    print("Vous êtes mineur.e")
Entrez votre âge :  17
Vous êtes mineur.e

Test du nombre de places disponibles#

places

Ndispo = 12
Ndesirees = int(input("Combien désirez-vous de places pour le concert : "))
if Ndispo < Ndesirees:
    print("Le nombre de places désirées",Ndesirees,"n'est pas disponible")
else:
    print("Le nombre de places désirées",Ndesirees,"est disponible")
Combien désirez-vous de places pour le concert :  45
Le nombre de places désirées 45 n'est pas disponible

Test du mot de passe#

mdp

MDP = "1234"
tentative = input("Entrez votre mot de passe : ")
if tentative == MDP:
    print("Mot de passe correct !")
else:
    print("Mot de passe incorrect !")
Entrez votre mot de passe :  5678
Mot de passe incorrect !

Exercice#

Dessinez l’algorigramme décrivant un appareil permettant de sélectionner la satisfaction du client :

  • Entrée : valeur du bouton

  • sortie : degré de satisfaction

satisfaction