Poster un nouveau sujet Poster une réponse
Suite d'un programmr sur TI-82 Stats.fr
Auteur Message
Marceau
Invité
Posté le : Dim 12 Oct 2014, 15:28   Citer 

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

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Autaz
Invité
Posté le : Dim 12 Oct 2014, 16:19   Citer 

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!)

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 12 Oct 2014, 16:57   Citer 

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

Citer : autaz

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



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes