Vous venez d'apprendre qu'un concert de rock va se dérouler ce soir dans la ville située de l'autre côté du lac. Vous avez tout juste le temps d'y arriver en prenant le bateau. Cependant, vous n'êtes pas le seul à vouloir y aller, et il y a une longue queue pour acheter les tickets pour la traversée.
Comme il n'y a qu'une seule personne qui s'occupe à la fois de vendre les tickets et d'aider les gens à monter sur le bateau, vous vous rendez vite compte que vous allez certainement arriver en retard. La vente des tickets est particulièrement lente car il faut demander aux gens leur âge pour savoir s'ils doivent payer plein tarif ou bien tarif réduit.
Vous proposez que votre robot s'occupe de la vente des billets et que la personne responsable du bateau s'occupe uniquement d'aider les gens à monter sur le bateau. Il va donc vous falloir programmer votre robot assez vite pour arriver à temps au concert.
Ce que doit faire votre programme :
Votre programme doit lire l'âge d'une personne et afficher soit « Tarif réduit » si cette personne a strictement moins de 21 ans, soit « Tarif plein » dans le cas contraire.
Exemples
Exemple 1
entrée :
22
sortie :
Tarif plein
Exemple 2
entrée :
16
sortie :
Tarif réduit
Effectuer une action dans le cas opposé
Il arrive que l'on ait besoin de tester une condition puis son contraire. Par exemple, supposons que l'on souhaite tester si l'on peut ranger tous ses œufs dans une seule boîte de 12 compartiments. On pourrait écrire :
nbOeufs <- lireEntier() Si nbOeufs <= 12 Afficher "Une boîte suffit" Si nbOeufs > 12 Afficher "Plusieurs boîtes nécessaires"
Ce programme traduit donc la phrase suivante : si le nombre d'œufs est plut petit que 12, alors afficher « Une boîte suffit », et si c'est strictement supérieur à 12 alors afficher « Plusieurs boîtes nécessaires ».
Cependant, cette phrase s'exprime plus simplement sous la forme suivante : si le nombre d'œufs est plut petit que 12 alors afficher « Une boîte suffit », et sinon afficher « Plusieurs boîtes nécessaires » :
nbOeufs <- lireEntier() Si nbOeufs <= 12 Afficher "Une boîte suffit" Sinon Afficher "Plusieurs boîtes nécessaires"
Il est possible d'exprimer en Python la notion de sinon, ce qui évite de tester le contraire de la condition que l'on vient de tester. Ainsi, le code précédent peut s'écrire de manière beaucoup plus élégante :
nbOeufs = int(input()) if nbOeufs <= 12: print("Une boîte suffit") else: print("Plusieurs boîtes nécessaires")
On utilise donc le mot-clé else
, sans condition.
Pensez bien toujours au deux-points :
!
Il est important de toujours utiliser un « sinon » lorsque c'est possible. Cela permet non seulement d'éviter d'introduire des informations redondantes,
comme par exemple nbOeufs <= 12
et nbOeufs > 12
, mais aussi de rendre la logique du programme plus facile à comprendre.
Vous devez être connecté(e) pour résoudre ce problème.
L'inscription ne prendra qu'une minute et vous pourrez alors résoudre les exercices puis faire valider automatiquement vos solutions.
Une fois identifié(e), vous pourrez demander sur cette page des conseils pour résoudre le sujet ou demander de l'aide sur le forum d'entraide.
Lorsque vous serez connecté(e), vous pourrez voir vos actions ici.
Une correction détaillée sera disponible lorsque vous aurez résolu le sujet.