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
Merci à vous

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
Et y ajouter la notion de juxtaposition ne pose aucun problème.
Code
:If A:B
:If A:Then:B:C:End