Structures de contrôle : les conditions


Afin de suivi le cours/TD plus agréable, je vous conseille de lire le guide vidéo disponible en cliquant sur l’image ci-dessous. Vous pouvez par ailleurs optimiser votre espace de travail en ouvrant une fenêtre consacré au guide vidéo et une autre à la lecture de cette page web.


1. La condition if

Il est possible de faire évoluer les valeurs de nos variables, grâce aux conditions. Pour cela, nous utiliserons l’instruction if. If pour si en anglais possède la structure suivante :

  • Première instruction : La valeur 5 est stockée dans la variable x.
  • Deuxième instruction : C’est la structure de condition :
    • if signale que l’on écrit une condition.
    • x==5, est l’assertion de la condition. Une assertion est une proposition qui est soit vraie, soit fausse. Si elle est vraie, les instructions appartenant au bloc de la condition sont exécutées. Sinon, elles ne sont pas exécutées. Le double égal (==) est l’opérateur logique d’égalité. L’assertion x==5 est donc vraie. Car la valeur stockée dans la variable x est égale à 5. Le programme exécutera le bloc d’instruction de la condition.
    •  : permet de marquer la fin de l’assertion.
  • Troisième instruction : Elle affiche la chaine de caractères « La valeur de la variable x est égale à 5 ». On remarque que cette instruction est indentée (c’est-à-dire qu’il y a une sorte d’alinéa). Cette indentation est importante. Elle marque l’appartenance de l’instruction à la structure/bloc de la condition.

En exécutant le programme. Le programme affiche la chaine de caractère « La valeur de la variable x est égale à 5 ».

Changeons maintenant, x=5 en x=6.

En exécutant le programme, il ne se passe rien. En effet, x==5, l’assertion est fausse. La troisième instruction appartenant au bloc de la condition n’est pas exécutée.

Si l’indentation n’est pas mise, le programme devient la suivant :

En exécutant le programme, on obtient un message d’erreur. La troisième instruction n’est pas exécutée car elle n’est pas indentée.

Exemple :

Tester le programme en saisissant la valeur : Toto, puis toto. Vous remarquerez que dans le deuxième cas, l’assertion est fausse. « T » et « t » sont deux informations différentes.


2. Les opérateurs logiques

Pour créer notre assertion dans les exemples précédents, nous avons utiliser l’opérateur logique ==. Il en existe plusieurs, nous permettant de faire varier les différentes assertions dans nos structures de conditions.

Ci-dessous le tableau des opérateurs logiques. Liste non exhaustive.

Opérateur logiqueRôleExemple
==Test de l’égalité3==4 : renvoi faux
!=Test de différence3 !=4 : renvoi vrai
<Test inférieur3<4 : renvoi vrai
<=Test inférieur ou égal4<=3 : renvoi faux
>Test supérieur3>4 : renvoi faux
>=Test supérieur ou égal4>=3 : renvoi vrai
andEt logiqueVoir exercice 2
orOu logiqueVoir exercice 3
notNon logique

Appliquons ces nouvelles notions dans quelques exercices.


Exercice 1

Tester le programme ci-dessous et dérouler le programme (c’est-à-dire expliquer le rôle de chaque instructions).

Cliquer sur le + pour obtenir la réponse :
Ligne 1 : On affiche la chaine de caractère : « Saisir un nombre » et on demande à l’utilisateur de saisir une valeur de type float qui est stockée dans la variable nb1.

Ligne 2 : On affiche la chaine de caractère : « Saisir un nombre » et on demande à l’utilisateur de saisir une valeur de type float qui est stockée dans la variable nb2.

Ligne 4 : Si la valeur de la variable nb1 est égale à la valeur de la variable nb2. On exécute l’instruction de la ligne 5.

Ligne 5 : On affiche la chaine de caractères : « Les nombres sont égaux ».

Ligne 7 : Si la valeur de la variable nb1 est différente de la valeur de la variable nb2. On exécute l’instruction de la ligne 8.

Ligne 8 : On affiche la chaine de caractères : « Les nombres sont différents ».

Ligne 10 : Si la valeur de la variable nb1 est strictement supérieure à la valeur de la variable nb2. On exécute l’instruction de la ligne 11.

Ligne 11 : On affiche la valeur de la variable nb1, suivi de la chaine de caractères : « est plus grand que », suivi de la valeur de variable nb2.

Ligne 13 : Si la valeur de la variable nb1 est strictement inferieure à la valeur de la variable nb2. On exécute l’instruction de la ligne 14.

Ligne 14 : On affiche la valeur de la variable nb1, suivi de la chaine de caractères : « est plus petit que », suivi de la valeur de variable nb2.

Exercice 2

Tester le programme suivant et modifier la ligne 6 en écrivant un texte correspondant au contexte du programme.

Cliquer sur le + pour obtenir la réponse :

Exercice 3

Tester le programme suivant et modifier la ligne 6 en écrivant un texte correspondant au contexte du programme.

Cliquer sur le + pour obtenir la réponse :

Exercice 4

Écrire un programme demandant à l’utilisateur de saisir une valeur entière qui sera stockée dans une variable nommée age et affichant la chaine de caractères « Quel age as-tu ? ». Si la valeur saisit par l’utilisateur est supérieure ou égale à 18, le programme affiche la chaine de caractère « Tu es majeur ».

Cliquer sur le + pour obtenir la réponse :

3. Les conditions if, elif, else

Il est possible de rendre nos conditions « plus performantes » en utilisant les instructions elif et else.

L’instruction if correspond en français à l’instruction si, suivi d’une assetion. L’instruction elif correspond au sinon si suivi d’une assertion. Tant qu’à l’instruction else, elle correspond à l’instruction sinon. Cette dernière instruction s’écrit à la fin de notre structure de contrôle et s’exécute si les assertions du if et des elif sont fausses. Comprenons mieux ces éléments au travers d’un exemple.

  • Si dans la variable prenom, on saisit la chaine de caractère « Paul ». L’assertion de la condition à la ligne 3 est vraie. Celles des lignes 5,7,9 sont fausses. On exécute l’instruction de la ligne 4.
  • Si dans la variable prenom, on saisit la chaine de caractère « Jack ». L’assertion de la condition à la ligne 5 est vraie. Celles des lignes 3,7,9 sont fausses. On exécute l’instruction de la ligne 6.
  • Si dans la variable prenom, on saisit la chaine de caractère « Léa ». L’assertion de la condition à la ligne 7 est vraie. Celles des lignes 3,5,9 sont fausses. On exécute l’instruction de la ligne 8.
  • Si dans la variable prenom, on saisit la chaine de caractère « paul ».L’assertion de la condition à la ligne 9 est vraie. Celles des lignes 3,5,7 sont fausses. En effet, la chaine de caractère « paul » est différente ede la chaine de caractère « Paul ». On exécute l’instruction de la ligne 10.

Il est possible de créer des conditions dans des conditions. Pour qu’elles s’exécutent. Il faut respecter les indentations.


Exercice 5

1) Tester et dérouler le programme ci-dessous (c’est-à-dire expliquer le rôle de chacune des instructions)

2) Rajouter un 4ème menu à la borne d’achat JUNK FOOD.

Cliquer sur le + pour obtenir la réponse :

1)

A la ligne 1 : On affiche la chaine de caractères « Bienvenue sur la borne d’achat de JUNK FOOOOD ! Pour commander taper : \n »

A la ligne 2 : On affiche la chaine de caractères « 1. Pour le Royal Kebab »

A la ligne 3 : On affiche la chaine de caractères « 2. Pour le Sublime Burger »

A la ligne 4 : On affiche la chaine de caractèresprint « 3. Pour le Chaudron de Tenders »

A la ligne 5 : On affiche la chaine de caractères « Choix :  » et l’utilisateur saisit une valeur qui est affectée à la variable choix.
A la ligne 7 : On teste l’assertion choix==1 , si elle est vraie, on exécute l’instruction de la ligne la ligne 8.

A la ligne 8 : On affiche la chaine de caractères « Vous avez choisit un Royal Kebab, votre commande est en cours de préparation 😉 »

A la ligne 9 : On teste l’assertion choix==2 , si elle est vraie, on exécute l’instruction de la ligne 10.

A la ligne 10 : On affiche la chaine de caractères »Vous avez choisit un Sublime Burger, votre commande est en cours de préparation 😉 »

A la ligne 11 : On teste l’assertion choix==3 , si elle est vraie, on exécute l’instruction de la ligne la ligne 12.

A la ligne 12 : On affiche la chaine de caractères »Vous avez choisit un Chaudron de Tenders, votre commande est en cours de préparation 😉 »
else:

A ligne 13 : On teste l’assertion du else, c’est-à-dire, si les assertions des ligne 7,9,11 sont fausse, on exécute l’instruction de la ligne 10.

A la ligne 14 : On affiche la chaine de caractères »Erreur de saisie, veuillez relancer le programme pour choisir votre menu ! »)

2)

Exercice 6

Tester et dérouler (pas besoin de l’écrire) le programme ci-dessous.

Cliquer sur le + pour obtenir la réponse :
Réponse en vidéo :

Exercice 7

Écrire un programme qui demande l’age de l’utilisateur et l’informe s’il est majeur ou mineur.

Cliquer sur le + pour obtenir la réponse :

Exercice 8

Écrire un programme qui demande l’age d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie : 

  • « Pas de catégorie » moins de 6 ans 
  • « Poussin » de 6 à 7 ans 
  • « Pupille » de 8 à 9 ans 
  • « Minime » de 10 à 11 ans 
  • « Cadet » après 12 ans 
Cliquer sur le + pour obtenir la réponse :

Exercice 9

Écrire un programme qui demande à l’utilisateur de saisir 3 valeurs correspondant aux longueurs des côtés d’un triangle. Le programme affiche suivant les valeurs saisies, si le triangle est rectangle ou non.

Pour rappel, un triangle ABC est rectangle en A si et seulement si BC2=AB2+AC2.

Cliquer sur le + pour obtenir la réponse :