Exercice de dm |
Auteur |
Message |
Kadjl
Invité
|
Posté le : Sam 09 Jan 2016, 18:56
|
|
|
Bonjour
Mon prof de math ma donner d'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 −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 petit que -3 et 2, mais j'arrive pas à faire des proba sur la calculatrice.
Pouvez vous m'aider ?
|
|
|
|
Kadjl
Invité
|
Posté le : Dim 10 Jan 2016, 9:54
|
|
|
Voici mon programme qui ne marche pas :
Code | 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 tourn en boucle sans afficher de résultats.
|
|
|
|
leo_85
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
|
Posté le : Dim 10 Jan 2016, 12:10
|
|
|
Citer : Kadjl | Voici mon programme qui ne marche pas :
Code | 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 usée"
if B=2
else
disp "Champagne"
end |
La calculatrice tourne en boucle sans afficher de résultats. |
tu a mis un "while" qui signifie "tant que" donc tant que ta variable est entre -3 et 2 le programme tourne et cette variable est toujours situé entre -3 et 2 donc le programme tourne indéfiniment
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve |
 |
|
|
kadjl
Invité
|
Posté le : Dim 10 Jan 2016, 16:03
|
|
|
Normalement, la variable doit au bout d'un moment prendre ka valeur -3 ou 2.
C'est pour cela que j'ai mis un while.
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
leo_85
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
|
Posté le : Mar 12 Jan 2016, 13:07
|
|
|
esseye peut-être
Code | While B>-3 ouExcl B<2 |
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve |
 |
|
|
adribaz
Autorisation : Membre
Nb de messages : 76
Inscrit le : Sam 13 Déc 2014, 19:11
|
Posté le : Mar 12 Jan 2016, 13:11
|
|
|
Slt Leo je pense plutot qu'il vaudrai mettre :
( >= : superieur ou egal)
While B>=3 ou B<2

|
 |
|
|
leo_85
Autorisation : Membre
Nb de messages : 132
Inscrit le : Mer 03 Déc 2014, 14:13
|
Posté le : Mar 12 Jan 2016, 13:40
|
|
|
je ne comprend pas trop le but de ton programme... et c'est 3 ou -3 ?
---------------------- futur analyste programmeur possesseur d'une TI 82 Plus toute neuve |
 |
|
|
Kadjl
Invité
|
Posté le : Sam 16 Jan 2016, 10:49
|
|
|
Merci pour vos réponses, en faite la boucle c'était :
|
|
|
|