probleme programme aleatoire
Posté le 02/08/2012 20:14
salut a tous je m'appel Tom j'aime le volley la gym le trial et la programmation
donc j'ai découvert récemment le plaisirs de la programmation sur casio et après quelque programme réussi avec succée 8) je bloque sur un programme tout simple
j'aimerer crée un programme qui place un mot aléatoirement sur l’écran donc je remplis aléatoirement de variable (A et B) avec la commande ran# (avec A compris entre 1 et 7 et b compris entre 1 et 16 (mon mot a 5 lettre donc il serrer inutile de le placer a la 21em colonne et qu'on ne voie que la première lettre))
mais et il y a un mais
je ne peux pas ecrire locate A,B,"salut"
donc je doit tester toute les variable de A et de B
int 7ran# +1 ->A
int 16ran# +1 ->B
if B=1
then goto 1
...
if B=16
then goto 16
lbl 1
if A=1
then goto a
...
if A=7
then goto g
lbl a
locate 1,1,"salut"
...
lbl g
locate 1,7,"salut"
...
mais le problème c'est que ça ne marche pas :/
quelque question ???
ou dois je mettre le ifend (tout a la fin ???)
si je met plusieurs adresse A (goto lbl) il n'ira pas dans l'ordre ? sa ne marchera pas ?
voila merci beaucoup de vos réponse et excusez moi des faute d’orthographe
on ne peux pas être parfait
Citer : Posté le 02/08/2012 21:56 | #
Oula ...
Tu sais, la fonction Locate ne prend pas obligatoirement des nombres écrits en dur dans le code source comme coordonnées. Les coordonnées peuvent être des variables, des résultats de calcul, des valeur de retour d'autres fonctions, etc.
Ton programme peut simplement s'écrire :
De plus, dans ton code tu ne fermes aucun If, ce qui est une grosse erreur. Lorsque la condition d'un If est fausse, la calculatrice saute au IfEnd correspondant. Il faut donc systématiquement fermer un If par un IfEnd. Seul le Else est facultatif dans la structure conditionnelle.
Pour tes futurs programmes, lorsque tu n'as qu'une seule instruction à exécuter en fonction d'une condition, utilises une double flèche plutôt qu'un If, c'est plus court et plus lisible :
Citer : Posté le 02/08/2012 22:32 | #
Alors, je te parie que tu as un "Argument Error" lors de l'essai de la première fonction.
En effet, la fonction Ran# retourne un nombre décimal entre 0 et 1, 1 exclu (je crois). La fonction Locate ne prend comme argument (valeur d'entrée) qu'un nombre entier comme coordonée. Or, 16Ran# + 1 peut être un décimal. Il faut donc convertir ce nombre en entier avant de l'envoyer à la fonction Locate.
Pour cela, la fonction Int (OPTN => F6 => F3 (NUM) => F2 (Int) ) retourne la partie entiere d'un nombre. Pour affecter un entier entre 1 et 16 à A, il faudra donc écrire "Int 16Ran# + 1 -> A".
Ensuite, pour en revenir aux If/IfEnd, voici la syntaxe correcte:
If Condition (A=1, par exemple)
Then Action(s) à faire si la condition est vraie
Else Action à faire si la condition n'est pas vraie cette instruction n'est pas obligatoire
IfEnd Pour clore la condition
Pour finir, si tu n'as qu'une action à exécuter si une condition est vraie, utilise le saut conditionnel:
Then 2->B
IfEnd
équivaut à
J'espère que tu as compris, et n'hésite pas à faire un tour dans la partie "Programmation" de ce site
Citer : Posté le 02/08/2012 23:41 | #
Tu dois aussi avoir une erreur dans le Lbl 16 car il me semble que les labels vont de 1 à 9 et de A à Z.
=>A confirmer
Citer : Posté le 03/08/2012 00:37 | #
@Dark storm : il a utilisé Int
@Ray : exact, plus r et [TETA]
Citer : Posté le 03/08/2012 00:38 | #
Je fais ma petite promo, voici une série de cours récemment faite. Ils sont idéaux pour apprendre la programmation :
lien
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 03/08/2012 10:14 | #
C'est juste que le Int est prioritaire. Il s'adresse au 7.
Il suffit de mettre une parenthese après le Int
Mais il existe une fonction qui fait ca : RanInt(MIN,MAX)
elle renvoie un entier
Citer : Posté le 03/08/2012 10:53 | #
Tu m'a coupé l'herbe sous le pied avec RanInt 9*
Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Citer : Posté le 03/08/2012 13:46 | #
donc merci a tous pour vos réponse
maintenan mon programme marche
je vous redemandrer surment autre chose pour un autre programme qui ne marche pas
a bientot