Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » probleme programme aleatoire
Tom35prgm Hors ligne Membre Points: 6 Défis: 0 Message

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


Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

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 :
Locate Int 16Ran# +1,Int 7Ran# +1,"SALUT"

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 :
A=5=>1->B

Dark storm Hors ligne Labélisateur Points: 11578 Défis: 176 Message

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:

If A>=1
Then 2->B
IfEnd

équivaut à
A>=1=>2->B



J'espère que tu as compris, et n'hésite pas à faire un tour dans la partie "Programmation" de ce site
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Ray Hors ligne Membre Points: 1338 Défis: 18 Message

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
Projets que je soutiens
Masquer
Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 03/08/2012 00:37 | #


@Dark storm : il a utilisé Int
@Ray : exact, plus r et [TETA]
Totoyo Hors ligne Membre d'honneur Points: 16076 Défis: 102 Message

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
Ninestars Hors ligne Membre Points: 2456 Défis: 24 Message

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
Tsuneo Hors ligne Membre Points: 973 Défis: 51 Message

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
Tom35prgm Hors ligne Membre Points: 6 Défis: 0 Message

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



LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 60 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd