Forum

Catégorie : Support
Forum : TI-82 STATS.fr
Vues : 952
Réponses : 2
Type : discussion
Etat : réponses autorisées

Suite d'un programmr sur TI-82 Stats.fr

Marceau le 12/10/2014 à 15:28
Bonjour,

j'aurai besoin d'aide pour compléter cet algorithme :
:entAléat(1,10)->A
:entAléat(1,10)->B
:Disp A,"X",B
:Input R
:A*B->M
:If R=M
:Then
:Disp "Vrai"
:Then
:Disp "Faux"
:Else
:End

Il faudrait que ce programme puisse compter les points au bout de ... parties happy.gif
Merci à vous happy.gif
Autaz le 12/10/2014 à 16:19
Pour commencer, ton algorithme présente quelques erreurs :
Code

:entAléat(1,10)->A
:entAléat(1,10)->B
:Disp A,"X",B
:Input R
:A*B->M
:If R=M
:Then
:Disp "Vrai"
:Then          //c'est "Else" qui est à mettre ici
:Disp "Faux"
:Else          //aucune utilité du "Else" ici
:End          //aucune utilité du "End" également
 


Pour ton information, "Then" et "Else" s'utilisent de la façon suivante:
Code

:If [+condition] (Si)
:Then (Alors)
:[+conséquence]
:Else (sinon)
:[+conséquence]


Ou encore:
Code

:If [+condition]
:Then (Alors)
:[+conséquence]
:End


Mais ce dernier algorithme peut s'écrire plus brievement:
Code

:If [+condition]:[+conséquence]


Et pour répondre à ta question, ton algorithme peut s'écrire comme ceci:

Code

:0->C
:Lbl A
:EffEcr
:entAléat(1,10->A
:entAléat(1,10->B
:Disp A,"X",B
:Imput R
:A*B->M
:If R=M
:Then
:Disp "VRAI"
:C+1->C         
:Else
:Disp "FAUX"
:End
:Disp "SCORE:",C
:Pause
:Goto A          //renvoie à "Lbl A"


Bien entendu le programme peut être fait avec une meilleur présentation, mais je me suis limité à réécrire ton programme en y ajoutant le réel de score.

Bonne chance, et si tu t'appelles réellement Marceau, on a le même prénom ^_^ (pas courant!)
linkakro le 12/10/2014 à 16:57
autaz : un de tes propos est ambigu, le reste est pertinent.

Je conteste seulement le fait que tu déclares le End final en tant qu'inutile
autaz a écrit :
Code
:If R=M
:Then
:Disp "Vrai"
:Then          //c'est "Else" qui est à mettre ici
:Disp "Faux"
:Else          //aucune utilité du "Else" ici
:End          //aucune utilité du "End" également
Je distingue ce qui est inutile dans tous les cas et ce qui est facultatif dans certains cas.
Lorsque l'alternative est à la fin du programme, alors l'absence de End n'a aucune conséquence visible. En revanche si ce fragment de code sans End devait être recopié à l'intérieur d'un autre programme, alors des conséquences désastreuses pourraient se produire.
Exemple historique : un jour j'ai posté un programme de factorisation en nombres premiers qui forçait la sortie d'une boucle en neutralisant un End, et Persalteas l'a recopié tel quel dans son programme de maths, et ses alternatives ne fonctionnaient plus.

Lorsque tu expliques l'usage d'un If sans Then/Else/End, alors tu devrais mentionner la limitation du nombre d'actions à l'intérieur.
Code
:If A
:Then
:B
:C
:End
Code
:If A
:B

Et y ajouter la notion de juxtaposition ne pose aucun problème.
Code
:If A:B

:If A:Then:B:C:End