Exercice de dm
9 posts
• Page 1 of 1
Exercice de dm
Bonjour
Mon prof de math ma donner un exercice de dm sur un programme qui est plutôt costaud (avec le modeste niveau que j'ai en programmation) et que je n'ai pas l'habitude de voir en cours.
Voici l'énoncé :
Préambule - Dans et exercice, on ne demande aucun calcul effectif. Il s'agit seulement d'une occasion, donnée par une situation fort discutable, d'écrire un petit algorithme.
Pour le réveillon de la Saint Sylvestre, Barnabé souhaite distraire l'assemblée pléthorique qu'il a conviée. Aussi a-t-il
conçu un jeu de hasard des plus alléchants.
Le joueur est positionné sur un petit siège éjectable qui
coulisse le long d'un rail.
À l'une des extrémités du rail (en position 2), se trouve une piscine remplie de Champagne.
À l'autre extrémité (en position -3), se trouve une piscine de stockage des eaux usées.
Ce siège avance d'un mètre avec une probabilité égale à 1/3 , sinon, il recule d'un mètre.
Chaque déplacement est indépendant du précédent.
Le jeu s'arrête si le siège se retrouve en position 2 ou en -3 et le joueur est alors éjecté
dans la piscine attenante.
Écrire un programme simulant ce jeu, qui aaffichera "CHAMPAGNE" ou "EAUX
USÉES" en sortie.
Ce programme fournit-il a priori toujours un résultat ?
Pour résumé le siège avance de 1 (avec une proba de 1/3) et recule de 1 (avec une proba de 2/3). Le jeu (si on peut appeler sa un jeu ^^) s'arrête à -3 ou 2.
J'avais pensé à une boucle tant que A est plus grand que -3 et plus petit que 2, mais j'arrive pas à faire des proba sur la calculatrice.
Pouvez vous m'aider ?
Mon prof de math ma donner un exercice de dm sur un programme qui est plutôt costaud (avec le modeste niveau que j'ai en programmation) et que je n'ai pas l'habitude de voir en cours.
Voici l'énoncé :
Préambule - Dans et exercice, on ne demande aucun calcul effectif. Il s'agit seulement d'une occasion, donnée par une situation fort discutable, d'écrire un petit algorithme.
Pour le réveillon de la Saint Sylvestre, Barnabé souhaite distraire l'assemblée pléthorique qu'il a conviée. Aussi a-t-il
conçu un jeu de hasard des plus alléchants.
Le joueur est positionné sur un petit siège éjectable qui
coulisse le long d'un rail.
À l'une des extrémités du rail (en position 2), se trouve une piscine remplie de Champagne.
À l'autre extrémité (en position -3), se trouve une piscine de stockage des eaux usées.
Ce siège avance d'un mètre avec une probabilité égale à 1/3 , sinon, il recule d'un mètre.
Chaque déplacement est indépendant du précédent.
Le jeu s'arrête si le siège se retrouve en position 2 ou en -3 et le joueur est alors éjecté
dans la piscine attenante.
Écrire un programme simulant ce jeu, qui aaffichera "CHAMPAGNE" ou "EAUX
USÉES" en sortie.
Ce programme fournit-il a priori toujours un résultat ?
Pour résumé le siège avance de 1 (avec une proba de 1/3) et recule de 1 (avec une proba de 2/3). Le jeu (si on peut appeler sa un jeu ^^) s'arrête à -3 ou 2.
J'avais pensé à une boucle tant que A est plus grand que -3 et plus petit que 2, mais j'arrive pas à faire des proba sur la calculatrice.
Pouvez vous m'aider ?
Last edited by Kadjil on 10 Jan 2016, 09:28, edited 1 time in total.
-
Kadjil
Niveau 7: EP (Espèce Protégée: geek)- Posts: 15
- Joined: 09 Jan 2016, 19:03
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S
Re: Exercice de dm
Dès qu'il y a répétition oui, c'est une boucle.
Utilise la commande NbrAléat que tu trouves dans .
Elle te tire un nombre au hasard selon une loi uniforme sur [0;1].
Il te suffit donc de tester si NbrAléat<1/3.
Utilise la commande NbrAléat que tu trouves dans .
Elle te tire un nombre au hasard selon une loi uniforme sur [0;1].
Il te suffit donc de tester si NbrAléat<1/3.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42133
- Images: 16453
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Exercice de dm
Donc voilà mon programme qui ne marche pas --"
La calculatrice tourne en boucle sans afficher de résultats.
- Code: Select all
0->A
0->B
While -3<B<2
(NbrAléat<1/3)->A
If A=0
Then
-1->A
If A=1
Else
1->A
End
A+B->B
End
If B=-3
Then
Disp "eaux ussée"
If B=2
Else
Disp "Champagne"
End
La calculatrice tourne en boucle sans afficher de résultats.
-
Kadjil
Niveau 7: EP (Espèce Protégée: geek)- Posts: 15
- Joined: 09 Jan 2016, 19:03
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S
-
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 4505
- Images: 18
- Joined: 07 Nov 2014, 00:43
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Exercice de dm
Bah j'avais mis un end à la fin de la première série de if, donc je pensai que c'était bon.
-
Kadjil
Niveau 7: EP (Espèce Protégée: geek)- Posts: 15
- Joined: 09 Jan 2016, 19:03
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S
Re: Exercice de dm
J'ai modifié deux choses :
1) La condition pour le while n'était pas bonne. Il faut séparer les deux inégalités, sinon l'interpréteur comprend autre chose : si B = 4 par exemple, alors "-3<B" renvoie 1, et donc "-3<B<2" devient "1<2" ce qui est vrai, alors que ça devrait renvoyer faux.
2) La syntaxe pour le If est : If ... Then ... Else ... End. Pas besoin de rajouter un "If A=1" avant le Else.
C'est optimisable dans le sens où ça pourrait tenir en moins de lignes, mais normalement ce programme fonctionne.
1) La condition pour le while n'était pas bonne. Il faut séparer les deux inégalités, sinon l'interpréteur comprend autre chose : si B = 4 par exemple, alors "-3<B" renvoie 1, et donc "-3<B<2" devient "1<2" ce qui est vrai, alors que ça devrait renvoyer faux.
2) La syntaxe pour le If est : If ... Then ... Else ... End. Pas besoin de rajouter un "If A=1" avant le Else.
- Code: Select all
0->A
0->B
While -3<B and B<2
(NbrAléat<1/3)->A
If A=0
Then
-1->A
Else
1->A
End
A+B->B
End
If B=-3
Then
Disp "eaux usées"
Else
Disp "Champagne"
End
C'est optimisable dans le sens où ça pourrait tenir en moins de lignes, mais normalement ce programme fonctionne.
Last edited by noelnadal on 10 Jan 2016, 16:31, edited 1 time in total.
-
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 2266
- Images: 0
- Joined: 10 Mar 2011, 00:00
- Location: France, Melun (77)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: INRIA Paris
- Twitter: nadalnoel
- Facebook: noel.nadal1
- GitHub: noelnadal
Re: Exercice de dm
- Code: Select all
(NbrAléat<1/3)->A
cette ligne renvoie 0 ou 1
donc j'ai fait ça
- Code: Select all
0->A
0->B
While -3<B and B<2
(NbrAléat<1/3)->A
If A=0
-1->A
A+B->B
If B=-3
Disp "eaux usées
If B=2
Disp "Champagne
End
(merci noelnadal pour la correction du While)
-
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 4505
- Images: 18
- Joined: 07 Nov 2014, 00:43
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Exercice de dm
Merci à vous 2, le programme marche à présent.
Par contre le programme de noelnadal marquer eaux usées et champagne dans le cas où il tombait dans l'eau usées.
Mais ton programme fonctionne Hamza.S merci
Par contre le programme de noelnadal marquer eaux usées et champagne dans le cas où il tombait dans l'eau usées.
Mais ton programme fonctionne Hamza.S merci
-
Kadjil
Niveau 7: EP (Espèce Protégée: geek)- Posts: 15
- Joined: 09 Jan 2016, 19:03
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S
Re: Exercice de dm
Oui, c'était le même problème avec le Else et le If, je ne l'avais pas remarqué.
-
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 2266
- Images: 0
- Joined: 10 Mar 2011, 00:00
- Location: France, Melun (77)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: INRIA Paris
- Twitter: nadalnoel
- Facebook: noel.nadal1
- GitHub: noelnadal
9 posts
• Page 1 of 1
Return to Maths, physique, informatique et autre...
Who is online
Users browsing this forum: ClaudeBot [spider] and 10 guests