Forum

Catégorie : Support
Forum : TI-82 STATS
Vues : 1268
Réponses : 14
Type : discussion
Etat : réponses autorisées

Programme proba ti-82 stats

aurelti82 le 03/07/2012 à 16:08
Bonjour!
Je bosse depuis un petit bout de temps sur un programme et j'arrive toujours pas à trouver la réponse ... --' (bien qu'il ai l'air simple)

Une urne est composée de 50 jetons, dont 5 bleus, 15 blancs et 30 rouges.
Un joueur prend un jeton au hasard. Si le jeton est rouge, il reprend sa mise ; s'il est blanc, il remporte le carré de sa mise et s'il est bleu, il perd le cube de sa mise.(on note m sa mise)

Au départ, j'avais fait comme ça :

Prompt M
entAléat(1,50)-->A
If 1<A<=5
Then
Disp 0
Else
If 5<A<=20
Then
Disp M²
Else
If 20<A<=50
Then
Disp -M³
End

Le truc, c'est que là ça m'affiche les trois résultats alors qu'on en veut qu'un seul. Du coup je sais pas comment faire ... Heeeeeeeelp me!
Sangohan38 le 03/07/2012 à 16:18
Le programme est presque juste. Les erreurs sont dues aux conditions que la calculatrice interprète mal.

Essaye de mettre le programme comme ci-dessous:

Code
Prompt M
entAléat(1,50)-->A
If 1<=A and A<=5
Then
Disp "0"
Else
If 5<A and A<=20
Then
Disp M²
Else
If 20<A and A<=50
Then
Disp -M³
End


D'ailleurs ton code est simplifiable en virant les Then/Else/End car une seule instruction suit les conditions (une ligne de code se réfère au if qui le précède).

Sangohan38
blg_flg le 03/07/2012 à 16:22
Je te propose ça, mais je ne suis pas sûr qu'on est au bon endroit pour ce topic:
A chaque fois il s'affiche la somme d'argent gagnée ou perdue.

Code
Lbl 1
Prompt M
entAléat(1,50->A
If A<=30
Disp 0
If A>30 et A<=35
Disp -M [au cube]
If A>35
Disp M [au carré]
Pause
Goto 1



En espérant ne pas m'être trompé dans l'énoncé.

ps: Je ne l'ai pas testé.




EDIT: Je vois qu'on a posté plus vite que moi... angry.gif
aurelti82 le 03/07/2012 à 16:52
Le problème, c'est que avec ma calculatrice, j'ai pas de touche "and" ou "et". Du coup, je peux pas faire vos programmes ... :/
Samos le 03/07/2012 à 17:02
2nd+math+>+1
il me semble que cette touche est présente sur toutes les calculatrices
aurelti82 le 03/07/2012 à 17:30
Merci samsam (étant donné n'avoir jamais vu cette partie, ça allait être difficile de trouver ... ^^')
Pour le Grec, ton programme ne se finit jamais ... :/
Pour sangohan38, le problème c'est qu'on obtient toujours 0 en résultat ... (ça me l'a déjà fait quand j'ai essayé de remanier mon programme ^^')
Samos le 03/07/2012 à 17:36
De rien bigmouth.gif (première fois que je suis util)
pour stoper une boucle tu peux lui mettre des limites

Code

For(x,1,20
Prompt M
entAléat(1,50->A
If A<=30
Disp 0
If A>30 et A<=35
Disp -M [au cube]
If A>35
Disp M [au carré]
Pause
End

Fait 20 boucles avant de s'arreter

ou encore
Code

While 1
Prompt M
entAléat(1,50->A
If A<=30
Disp 0
If A>30 et A<=35
Disp -M [au cube]
If A>35
Disp M [au carré]
Pause
codetouche ->A      //getkey en anglais
If A=45:Stop
End

Tu arrete le programme avec la touche annul
EDIT:entrer sert aussi pour pause donc vaut mieu pas
aurelti82 le 03/07/2012 à 17:57
Merci (encore) samsam ! je t'ai pris le premier, car plus court et avec plus de trucs que je suis censé connaître ^^. Pour ce qui est du "for", on peut mettre 1 au lieu de 20 non? (en plus, avec ça, quand je démarre mon programme et que je l'arrête, ça me met "fait", première fois avec ce programme ... ^^)
Donc, vraiment, merci beaucoup ! winkle.gif
Et puis j'espère que ça plaira aux profs ... ^^
Samos le 03/07/2012 à 17:59
Avec la 2eme valeur ( la ou est me 20) tu choisis le nombre de boucle avec un peu d'entraînement tu pourra même apprendre aux profs godgrace.gif
(encore) de rien!
blg_flg le 03/07/2012 à 18:29
Arrête de te la péter Samsam. Etre utile pour la première fois qu'après plus de 100 posts c'est nul.

Je ne savais pas quand tu voulais arrêter le prog, donc je t'ai mis une boucle infinie, mais ça ne sert à rien de mettre For(X,1,1. Cela correspond à ne rien mettre, puisque la boucle ne s'exécutera qu'une seule fois. crazy.gif


PS important: Mes 2 premières phrases sont de l'humour. Qu'on ne me dise pas à nouveau que je suis méchant ou je ne sais quoi. winkle.gif
Samos le 03/07/2012 à 18:37
Je te trouve très méchant le Grec tu utilise l'humour pour balancer des phrases cinglantes dans nos g****es!!(c'est de l'humour aussi godgrace.gif ) et à part recopier ce que j'ai dis... godgrace.gif
The K le 03/07/2012 à 18:44
On se calme les gens on se calme ... merci winkle.gif
blg_flg le 03/07/2012 à 18:52
Tu n'as rien dit sur la boucle For(X,1,1 . A l'heure qu'il est, aurelti82 est convaincu que c'est parfait, alors qu'il a créé une boucle inutile, qui lui sera répréhensible.

A part ça, sans commentaires...
EGUL le 03/07/2012 à 20:21
Essaye ceci :

Citation
0->C
Input"NOMBRE DE TIRAGE",X
For(B,1,X)
EffEcr
Input"MISE",M
entAléat(1,50->A
Output(2,1,"GAIN =
If A<=5
Then
Output(2,8,-M^3
C-M^3->C
Else
If 6<=A<=20
Then
Output(2,8,M²
C+M²->C
Else
Output(2,8,0
End
End
Pause
End
aurelti82 le 28/07/2012 à 17:15
Merci Egul, mais le truc c'est que de toutes façon, il n'y a qu'un seul tirage, donc c'est pas utile pour moi de le mettre dedans. Et c'est bizarre parce que ça m'affiche jamais le nombre 0 (mais c'est peut etre parce que j'ai pas fait assez d'essais ...).
PS : dsl pour la réponse tardive, la faute aux vacances ... ^^