• Aucun résultat trouvé

tp prix.pdf

N/A
N/A
Protected

Academic year: 2021

Partager "tp prix.pdf"

Copied!
7
0
0

Texte intégral

(1)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix

TP 2

Jouons avec PyBlock : deviner un prix

À l’aide de l’application PyBlock, on va créer un jeu dont les règles sont les suivantes.

DEVINE COMBIEN

NOMBRE

DE JOUEURS

1

BUT Trouver le prix d’un objet en s’aidant des indications données par l’ordinateur.

DÉROULEMENT

∙ Le prix de l’objet est choisi aléatoirement par l’ordinateur entre 10 € et 500 €. ∙ L’ordinateur affiche : « Quelle valeur proposez-vous pour le prix de cet objet ? »

et attend une réponse du joueur.

∙ L’ordinateur lui indique alors si sa proposition est inférieure ou supérieure

au prix et le processus se répète tant que le joueur n’a pas trouvé la bonne valeur.

∙ L’ordinateur affiche à la fin du jeu le nombre de tentatives nécessaires pour

trouver la bonne valeur.

a. Créer à l’aide des blocs ci-contre trois variables : Essai, Prix et Proposition.

Affecter 0 à la variable Proposition.

Affecter à la variable Prix un entier aléatoire entre 10 et 500.

Affecter 0 à la variable Essai.

Ces blocs représentent les variables : ce sont

des boîtes contenant des valeurs qui seront modifiées

par le programme.

b. Affecter à la variable Proposition une nouvelle valeur entière entrée par le joueur, puis, à l’aide des blocs ci-dessous, la comparer à la variable Prix grâce à trois tests.

Si elle est strictement inférieure au prix, afficher une phrase l’indiquant. Si elle est strictement supérieure au prix, afficher une phrase l’indiquant. Si elle lui est égale, afficher une phrase de félicitations.

c. En cliquant sur l’onglet « Python », on accède à la traduction de ce programme. Identifier dans le programme les instructions concernant :

les variables et notamment celle qui demande une valeur au joueur ; le tirage aléatoire du prix ;

(2)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix

Dans sa traduction en Python, que faut-il modifier pour que le prix à deviner soit compris entre 100 € et 1 000 € ?

➔ Défi 1 !

Dans la traduction en Python, une fois que le joueur a deviné le prix, on aimerait tester si le nombre de tentatives n’est pas trop important : s’il est supérieur à 10, alors il faut afficher : « C’est bien, mais vous pouvez faire mieux ! ».

∙ Quelles lignes de code faudrait-il ajouter ?

➔ Défi 2 !

Dans la traduction en Python, on ne veut laisser au joueur qu’un nombre fini

de tentatives : au-delà de 10, le programme s’arrête et affiche : « C’est perdu ! » et indique la valeur qu’il fallait trouver. ∙ Quelles lignes de code faudrait-il ajouter ? d. Modifier le programme à l’aide du bloc suivant pour qu’il interroge le joueur tant que

sa proposition est différente du juste prix.

Ce bloc permet de répéter la séquence qu’il englobe tant que la condition associée est vérifiée : c’est une boucle non bornée.

e. Dans la traduction en Python de la séquence obtenue, identifier les instructions correspondant à la boucle non bornée.

import random

Proposition = 0

Prix = random.randint(10, 500) Essai = 0

while Proposition != Prix:

Proposition = int(input("Quelle valeur proposez-vous ?")) if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") print("Bravo! Vous avez deviné le prix")

Que signifie ici le symbole « != » ?

f. Modifier le programme à l’aide de ces blocs pour qu’il comptabilise le nombre de tentatives (grâce à la variable Essai) et l’affiche en cas de succès.

(3)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix

CORRIGÉ DU TP 2

a. b. c. import random Proposition = 0 Prix = random.randint(10, 500) Essai = 0

Proposition = int(input("Quelle valeur proposez-vous ?"))

if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") if Proposition == Prix:

print("Bravo, vous avez deviné le prix !")

→ variable / tirage aléatoire → variable

→ variable qui demande une valeur au joueur

→ tests

Bien qu’apparemment inutile, nous verrons que cette

initialisation prend tout son sens à la question d.

(4)
(5)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix d. e. import random Proposition = 0 Prix = random.randint(10, 500) Essai = 0

while Proposition != Prix: → boucle non bornée

Proposition = int(input("Quelle valeur proposez-vous ?")) if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") print('Bravo ! Vous avez deviné le prix !')

Le symbole « != » signifie « différent de », « ≠ ».

Il est possible de remplacer les instructions « afficher » par « afficher et attendre » afin que les phrases soient affichées sous la forme de pop-up. L’initialisation de la variable

Proposition est obligatoire : sans

cela, on ne peut pas comparer sa valeur au Prix, et on n’entre donc pas dans la boucle.

(6)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix f. g. import random Proposition = 0 Prix = random.randint(10, 500) Essai = 0

while Proposition != Prix:

Proposition = int(input("Quelle valeur proposez-vous ?")) if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") Essai = Essai + 1

print("Bravo ! Vous avez deviné le prix en ",str(Essai)," tentatives !")

Dans ce programme en Python, il faut remplacer « Prix = random.randint(10, 500) » par « Prix = random.randint(100, 1000) » pour que le prix à deviner soit compris entre 100 € et 1 000 €.

(7)

Du bloc à la ligne de code

TP . Jouons avec PyBlock : deviner un prix ➔ Défi 1 import random Proposition = 0 Prix = random.randint(10, 500) Essai = 0

while Proposition != Prix:

Proposition = int(input("Quelle valeur proposez-vous ?")) if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") Essai = Essai + 1

print("Bravo! Vous avez deviné le prix en ",str(Essai)," tentatives !") if Essai > 10:

print("C'est bien mais vous pouvez faire mieux.")

➔ Défi 2

import random

Proposition = 0

Prix = random.randint(10, 500) Essai = 0

while Proposition != Prix and Essai<10:

Proposition = int(input("Quelle valeur proposez-vous ?")) if Proposition < Prix:

print("Non, le prix est plus élevé que ça.") if Proposition > Prix:

print("Non, le prix est moins élevé que ça.") Essai = Essai + 1

if Essai >= 10 and Proposition !=Prix:

print("C'est perdu ! Le prix à trouver était de ", str(Prix), " €.") else :

Références

Documents relatifs

Il n'en demeure pas moins acquis que soixante-six de nos fabricants, au nom- bre desquels nous remarquons avec plai- sir les noms des maisons les plus sé- rieuses et les

Pour qu'un ouvrier puisse avoir droit à un secours de la caisse d'assurance, il faudra qu'il fournisse la preuve qu'il ne peut pas trou- ver du travail en rapport avec ses aptitudes,

Il s'est créé une quantité d'établisseurs qui n'ont aucune notion de comptabilité, qui avilissent les prix jusqu'au moment où eux- mêmes sont plonges dans la misère, tandis

L Les pièces suisses hors de cours (Helvetia assise) ne seront plus acceptées que pour ()0% de leur valeur nominale par les caisses publiques de la Confédération. Cet arrêté

Le n° 222 (sculpteur de bois) était en ap- prentissage chez un bon maître dont il ne se plaignait nullement; celui-ci avait en revan- che à se plaindre de son incapacité et de ses

vail: confrontation minutieuse du modèle avec la photographie, en vue (l'établir la confor- mité des deux entr'eux. « Pour le fabricant de clichés, accroisse- ment des

1) Calculez les volumes à prélever afin de préparer 50 mL de solution de concentrations suivantes (indiquez le calcul d’une des valeurs). DETERMINATION DE LA LONGUEUR D’ONDE

1) On souhaite recouvrir la totalité du fond de la caisse par des paquets. Donc l’arête de paquets doit être un diviseur de 96 et 156. On veut que la longueur soit maximale, donc