Ecrire un algorithme

Fermé
informatique37 - 30 oct. 2010 à 15:59
 tt - 3 nov. 2010 à 22:40
Bonjour,





j'ai un algorithme à écrire et je l'ai écrit en grande partie mais je bloque sur une partie! pourriez-vous m'aider svp et m'indiquer si le travail que j'ai déjà fait est juste?
merci d'avance

voici la consigne :

L'ordinateur va choisir une valeur mystère de 0 à 100.
L'utilisateur doit trouver cette valeur.
Si l'utilisateur donne une valeur inférieure à 0 ou supérieure à 100 l'ordinateur va afficher un message d'erreur.
Si le nombre donné par l'utilisateur est inférieur à la valeur mystère, l'ordinateur va afficher un message pour le dire, même chose si c'est supérieur
Le jeu est terminé quand l'utilisateur a trouvé la bonne valeur.
L'ordinateur doit afficher le nombre de fois l'utilisateur à essayer de trouver la bonne valeur -->dernière consigne que je ne vois pas comment appliquer!

mon travail :
plusMoins
variables
valMystère <-- aléatoire (100)
valeur <-- entier
début
écrire (« entrer une valeur entre 0 et 100 »)
saisir (« valeur »)
tant que (valeur > 100) ou (valeur < 0) faire
afficher (« saisie erronée, valeur comprise entre 0 et 100 »)
fintantque
tant que (valeur < valMystère) ou (valeur> valMystère) faire
si (valeur< valMystère) afficher (« valeur mystère plus grande »)
sinon afficher (« valeur mystère plus petite »)
fintantque
si (valeur=valMystère)
afficher (« vous avez trouvé la bonne valeur mystère »)
finsi
fin

6 réponses

naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 30/10/2010 à 16:13
Ton travail est erroné , tu place mal les boucle "tant que" , car là si on applique ton algorithme l'utilisateur ne rentre qu'une seule fois la valeur qu'il recherche alors que normalement il doit y avoir la saisie de valeur tant qu'il n'a pas trouvé la valeur , et ensuite comme c'est écrit dans la consigne il suffit d'utilisé des "Si" pour les comparaisons .

en gros pour t'aider il suffit que d'un seul "tant que" ensuite que des "Si" dans le tant que .
et puis pour le nombre de coup tu le calcule en utilisant le nombre de boucle que l'utilisateur a du avoir pour trouver la valeur mystere .
0
informatique37
30 oct. 2010 à 16:20
merci! voici les modifications apportées, je pense que pour la boucle c'est plus ou mois juste mais en revanche je ne suis pas du tout sure en ce qui concerne le nombre de coups dépendants du nombre de boucles,
voici mon travail


plusMoins
variables
valMystère <-- aléatoire (100)
valeur <-- entier
début
écrire (« entrer une valeur entre 0 et 100 »)
saisir (« valeur »)
tant que (valeur? valMystère) faire
saisir (« valeur »)
si (valeur< valMystère) afficher (« valeur mystère plus grande »)
sinon afficher (« valeur mystère plus petite »)
finsi
si (valeur=valMystère)
afficher (« vous avez trouvé la bonne valeur mystère »)
finsi
fintantque
afficher (« vous avez trouvé la réponse en « nombre de boucles », félicitations »)
fin
0
informatique37
30 oct. 2010 à 16:21
NB le point d'interrogation correspond à un "égal barré" !
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 30/10/2010 à 16:33
C'est beaucoup mieux , mais mettre 2x saisir(valeur) est inutile , vaut mieux mettre tout dans la boucle et initialisé valeur <-- 0 en dehors de la boucle, car là imagine tu trouves la valeur mystère du premier coup , et bien tu ne rentreras pas dans la boucle donc rien ne s'affichera .

et pour le nombre de coup ce n'est pas ça , il suffit juste de creer une variable coups à 0 , et dans la boucle tu mets coups <-- coups +1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je pense avoir compris pour la saisie de la valeur mystère mais comment peut-on intégrer une variable à une boucle?

voici mon travail :

plusMoins
variables
valMystère <-- aléatoire (100)
valeur <-- 0
coups <-- 0
début
écrire (« entrer une valeur entre 0 et 100 »)
tant que (valeur =/ valMystère) faire
saisir (« valeur »)
si (valeur< valMystère) afficher (« valeur mystère plus grande »)
sinon afficher (« valeur mystère plus petite »)
finsi
si (valeur=valMystère)
afficher (« vous avez trouvé la bonne valeur mystère »)
finsi
coups <-- coups +1
fintantque
afficher (« vous avez trouvé la réponse en « coups + 1 », félicitations »)
fin
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
30 oct. 2010 à 16:50
Oui voilà c'est ça , mais pas besoin de mettre coups + 1 dans la dernière phrase .
0
informatique37
30 oct. 2010 à 16:54
super! merci beaucoup!
donc je met pour la dernière phrase : afficher ("vous avez trouvé la réponse en "coups", félicitations")?
autrement, y a t-il moyen que je teste mon algorithme sur code::blocks?
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
30 oct. 2010 à 16:58
oui c'est ça , enfin pour afficher une variable en algo il ne faut pas la mettre entre " " (enfin moi j'ai appris comme ça )
afficher ("vous avez trouvé la réponse en" ,coups, "félicitations")?

pour tester un algorithme que ce soit sur codeblocks ou autre , il faut transformer l'algorithme en langage de programmation , donc pour toi ça va être le C .
0
informatique37
30 oct. 2010 à 17:01
d'accord!
afficher ("vous avez trouvé la réponse en" ,coups, "félicitations")? <-- le point d'interrogation signifie-t-il que c'est faux?
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 30/10/2010 à 17:10
ah non pardon je l'ai ajouté sans faire expres , la phrase que j'ai marqué c'est la bonne selon moi , pour différencier le texte a afficher d'une variable . (avec virgules entre la variable)
0
informatique37
30 oct. 2010 à 17:12
ah ok, en tout cas merci beaucoup pour l'aide!
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
30 oct. 2010 à 17:15
de rien
0