L'algorithme ci-dessous simule n lancers d'une pièce non truquée.
Variables: n,r sont des entier naturels non nuls
Entrée: Saisir n
Traitement et sortie : Pour i allant de 1 à n faire
r prend la valeur ...............
afficher r
Fin pour
1. Que peut-on mettre à la place des pointillés dans l'algorithme ci-dessus ?
. Pile ou Face
. Nombre_aléatoire(Pile,Face)
. Nombre_entier_aléatoire(0,1)
. Nombre_entier_aléatoire(1,2)
. Nombre_entier_aléatoire(1,6)
. Nombre_entier_aléatoire(P,F)
2. Taper l'algorithme ci-dessus sur Algobox.
3. Modifier l'algorithme afin qu'il affiche le nombre de "Pile" obtenu
Bonjour voici mon soucis je n'arrive pas du tout à composer l'algorithme ci-dessus sur algobox, à chaque fois cela me fait une erreur et je ne comprend pas pourquoi, j'ai essayer toutes les propositions qui sont proposé mais à chaque fois cela me fait une erreur de calcul ou bien une erreur de syntaxe.
merci d'avance pour votre aide
Bonjour,
Tout d'abord, à la question 1, il y a des cas qui ne vont pas répondre à l'algorithme posé !!
Lesquels ?
Je te rappelle que l'algorithme va simuler n lancers d'une pièce non truquée.
La question 1 n'a aucun intérêt du point de vue algorithmique.
Quant à la réalisation avec ALGOBOX il faut trouver une aide en ligne qui donne la syntaxe du générateur de nombres aléatoires.
@Le Dino : Il y a quand même des cas dont il est totalement inutile de vouloir tester, et d'autres qui ne fonctionneront même pas du tout...
Quant au générateur de nombres aléatoires c'est la fonction : algobox_alea_ent(p,n) (génère un nombre nombre entre p et n)
[bleu]Tirage = floor(alea()+0,5))[\bleu]
.. decrait convenir pour générer 0 ou 1 avec equiprobabilité.
merci beaucoup de votre aide pour la question n°1 je pense que c'est (1,2) car une pièce a 2 faces et le numéro 1 correspondrait soit à pile soit à face et la même chose pour le numéro 2
Pour le premier algorithme, cela donne :
Variables: n est du type nombre
r est du type nombre
i est du type nombre
Début de l'algorithme: lire n
Pour i allant de 1 à n
Début Pour : r prend la valeur ALGOBOX_ALEA_ENT(1,2)
afficher r
Fin Pour
Fin de l'algorithme
Voilà ce que cela fait pour l'algorithme n°1 enfin je pense
Bonsoir,
Si tu attribues la valeur "PILE" à l'un des nombres générés, par exemple 2 (et donc "FACE" pour 1), alors ton algorithme fonctionnera, au sens où il affichera des 1 pour FACE et des 2 pour PILE.
Si tu veux répondre plus facilement à la question suivante, il est plus judicieux de tirer des 0 pour FACE et des 1 pour PILE. Car ainsi, en additionnant les valeurs obtenues (0 ou 1), tu obtiens directement le nombre de PILES.
Mais tu peux aussi t'en sortir comme tu as fait, en utilisant un test du genre :
SI (r = 2) Alors piles = piles + 1 (après avoir initialisé piles à 0 avant la boucle).
Merci beaucoup de votre aide
mais le seul soucis c'est que le résultat P donne le nombre de lancers (n) qui est taper au début de l'algorithme :/
Tu parles de ton programme écrit en ALGOBOX lorsque tu l'exécutes ?
Si tu veux qu'on t'aide à le corriger, il faut nous le montrer...
Bonjour,
"SI (r = 2)..." se traduit en Algobox par SI (r == 2) ...
les deux signes égale veulent dire "je teste si c'est égal"
avec un seul signe = le fonctionnement interne de Algobox comprend ça comme une affectation (un "prend la valeur") et met 2 dans la variable r
puis teste la valeur de ce 2 qui est différent de 0 et donc est "vrai" et exécute le "SI" systématiquement.
un des "pièges classiques" de la programmation (en Algobox et en de nombreux autres langages d'ailleurs)
... et une raison de plus pour affecter à r la valeur 1 pour PILE et 0 pour FACE.
Cela évite d'avoir à faire un test ...
Comme je ne peut vous le montrer en copiant l'image je vais donc vous l'écrire
Variables: n est du type nombre
r est du type nombre
i est du type nombre
P est du type nombre
Début de l'algorithme: Lire n
P prend la valeur 0
Pour i allant de 1 à n
Début Pour r prend la valeur ALGOBOX_ALEA_ENT(1,2)
afficher r
Si (r=2) Alors
Début Si
P prend la valeur P+1
Fin Si
Fin Pour
Afficher P
Fin de l'Algorithme
Merci beaucoup franchement merci a tous !!!!! Grâce a vous tous cela marche alléluia !!!
merci merci merci du fond du cœur !!!!
Tu peux surtout remercier mathafou pour son flair : il a deviné ton erreur avant même de voir ton code ...
Et pour ma part, je te conseille vivement d'essayer aussi la variante suivante.
Une fois que tu l'auras testée essaie de comprendre pourquoi elle fonctionne aussi.
Si tu ne comprends pas : dis-le nous et on te ré expliquera...
Début Pour
r prend la valeur ALGOBOX_ALEA_ENT(0,1)
afficher r
P prend la valeur P + r
Fin Pour
Afficher P
J'ai essayer et je pense qu'il est plus judicieux de prendre r prend la valeur ALGOBOX_ALEA_ENT(1,2) car dans la question il est demander de modifier l'algorithme afin qu'il affiche le nombre de Pile obtenu et avec cette valeur il n'y a pas besoin d'additionner les 0 ou bien les 1 pour obtenir le nombre de Pile obtenu.
Merci a tous d'avoir contribué a résoudre mon problème, vous m'avez tous fait bien avancer et surtout vous m'avez fait comprendre mes erreurs.
Encore merci à tous et à toutes
Oupss excusez moi j'avais simplement oublier de modifier (r==2) qui va devenir (r==1) donc 1 sera Pile et 0 sera Face.
Merci, à nouveau je comprends mes erreurs
avec l'algo de LeDino il n'y a plus aucun test "si r == quoi que ce soit"
donc rien à modifier dans un test qui n'existe plus à part sa suppression complète.
la correspondance ente {0, 1} et {pile, face} est totalement arbitraire et uniquement dans la tête de celui qui pense l'algorithme
on choisit celle que l'on veut
ou celle qui nous arrange...
Justement il faut se mettre à la place du professeur en quelque sorte, nous devons donc faire en sorte de pouvoir imaginer l'algorithme.
Mais encore plus "justement" !
La variante que je te propose est plus simple... et elle est plus proche de l'algorithme d'origine.
Dans ta méthode, tu es obligé d'introduire un test SI ... ALORS ...
Dans ma méthode, ce n'est pas nécessaire.
Tu n'as donc aucune raison de préférer celle que tu as trouvée à celle que je te propose.
Et il est de toutes façons toujours intéressant de voir qu'il y a plusieurs manières d'arriver au résultat.
Maintenant tu fais comme tu veux...
Quant à ton prof, si tu veux te mettre à sa place...
... je peux t'assurer qu'il serait absolument enchanté de savoir que tu as essayé plusieurs méthodes.
Effectivement vous avez raison je vient de comprendre et je viens donc de tester et c'est effectivement plus simple vu qu'il n'y a plus la condition
Encore merci a vous pour m'avoir aider, sans vous je n'aurai jamais réussi
Super !
Bravo à toi d'avoir prolongé ton effort.
En récompense tu as compris quelque chose de plus qui te servira sûrement à l'avenir...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :