Devinez mon entier

Devinez mon entier

Messagepar sc le 14 Nov 2011, 15:59

Algorithme difficile.

Ecrire un algorithme ou une implémentation en Python de l'algorithme qui :

    1. Demande un entier REPONSE (compris entre 1 et 1000) à un premier utilisateur
    2. Demande tour à tour un entier n à un deuxième utilisateur
    3. Affiche "ton entier est trop grand" ou "ton entier est trop petit" ou "BRAVO, tu as deviné mon entier !!!" suivant le cas
    4. Recommence à l'étape 2 jusqu'à ce que l'entier REPONSE soit deviné par le deuxième utilisateur

Le cas échéant utiliser la balise [ code=python][/code] pour le programme ou [ code][/code] pour l'algorithme
(Pour l'affectation, copier-coller ce caractère : ← )
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Devinez mon entier

Messagepar Thibault C le 14 Nov 2011, 19:15

Bonsoir monsieur,

J'ai fini par réussir traduire cet algorithme en language Python !! :gunsmilie:
(Avec un petit élément en plus,... :combat: )
Code: Tout sélectionner
a=int(input("Entrez une réponse comprise entre 1 et 1000"))
b=int(input("Essayez de deviner un nombre compris entre 1 et 1000"))
f=0
while (b>a):
    print("Dommage ! Ton entier est trop grand")
    b=int(input("Entrez un nouveau nombre "))
    f=f+1
while (b<a):
    print("Dommage ! Ton entier est trop petit")
    b=int(input("Entrez un nouveau nombre"))
    f=f+1
else:
    f=f+1
    print("BRAVO, tu as deviné mon entier en",f,"fois !!!")


Bonsoir et à demain ! :sing:
Thibault C
~ membre surdoué ~
 
Messages: 26
Inscrit le: 08 Oct 2011, 14:23

Re: Devinez mon entier

Messagepar sc le 14 Nov 2011, 19:58

Bonsoir Thibault,
Cet algorithme est intéressant mais il ne répond pas à la question posée. Relis bien l'énoncé.
Voici un exemple de sortie du programme :

1er joueur : entrez en cachette un entier à deviner : 300
2ème joueur : entrez un entier : 200
Trop petit !
2ème joueur : entrez un autre entier : 500
Trop grand !
2ème joueur : entrez un autre entier : 350
Trop grand !
2ème joueur : entrez un autre entier : 300
Bravo !!!


A demain.
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Devinez mon entier

Messagepar Thibault C le 15 Nov 2011, 18:28

Bonsoir,

Je pense avoir trouver l'algorithme correct...
Code: Tout sélectionner
a=int(input("1er joueur:Entre une réponse comprise entre 1 et 1000"))
b=int(input("2eme joueur:Essaye de deviner un nombre compris entre 1 et 1000"))
f=0
while not(b==a):
    if(b>a):
        print("Dommage ! Ton entier est trop grand")
        f=f+1
    else:
        print("Dommage ! Ton entier est trop petit")
        f=f+1
    b=int(input("2eme joueur: Entre un nouvel entier "))
else:
    f=f+1
    print("BRAVO, tu as deviné mon entier en",f,"fois !!!")
 


Merci d'avance !
Thibault C
~ membre surdoué ~
 
Messages: 26
Inscrit le: 08 Oct 2011, 14:23

Re: Devinez mon entier

Messagepar sc le 15 Nov 2011, 20:51

Bravo Thibault :clapclap:
On peut néanmoins améliorer un tout petit peu ton algorithme car il n'y a pas de else après un while et le f=f+1 peut être appliqué qu'une seule fois en phase finale de l'algorithme.

Code: Tout sélectionner

a=int(input("1er joueur:Entre une réponse comprise entre 1 et 1000"))
b=int(input("2eme joueur:Essaye de deviner un nombre compris entre 1 et 1000"))
f=1
while not(b==a):
    if(b>a):
        print("Dommage ! Ton entier est trop grand")
         
    else:
        print("Dommage ! Ton entier est trop petit")
         
    f=f+1
    b=int(input("2eme joueur: Entre un nouvel entier "))

   
print("BRAVO, tu as deviné mon entier en",f,"fois !!!")
 
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Devinez mon entier

Messagepar Christine J le 16 Nov 2011, 16:46

Bonjour ,

Est ce qu'on peut écrire ? :

Saisir (a)
Saisir (b)
Pour a variant de 1 à 1000
Si (a>b) :
afficher : "Trop grand ! "
Si (b>a) :
afficher : "trop petit !"
Sinon :
afficher : "Bravo , tu as trouver mon entier !"

Bonne soirée , Christine :wink:
Christine J
~ membre régulier ~
 
Messages: 9
Inscrit le: 12 Oct 2011, 15:01

Re: Devinez mon entier

Messagepar sc le 16 Nov 2011, 17:21

Bonjour Christine,
Ton algorithme est très astucieux car il permet à l'ordinateur lui même de deviner l'entier que tu as choisi !
Mais ce n'est pas la question posée :D
Attention, il y a une petite erreur car il manque un sinon :

Code: Tout sélectionner
Saisir (a)    #Cette ligne est inutile car le Pour qui suit va modifier ton a
Saisir (b)    #Ceci est l'entier que l'ordinateur va devoir deviner
Pour a variant de 1 à 1000 :
   Si (a>b) :
      afficher ( "Trop grand ! ")
   Sinon :
      Si (b>a) :
           afficher ( "trop petit !")
      Sinon  :
           afficher ( "Bravo , tu as trouver mon entier !")
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46


Retourner vers Algorithmique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités

cron