Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Petit problème... [Résolu]
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Petit problème... [Résolu]

Posté le 21/12/2016 16:41

Bonjour chers lecteurs.

Je vais aller droit au but parce que sinon cette page n'aurait pas d'intérêt : j'ai récemment programmé un sous-programme de menu tout bête, et certainement pas très optimisé, qui me contrarie quelque peu depuis hier.
En effet, lorsque l'une des touches utilisées (soit les flèches directionnelles, [EXIT] et [EXE]) est pressée, ma calculatrice (une 35+ USB) affiche "Erreur syntaxe". Je cherche depuis hier la cause de cette dernière, sans succès, alors je m'en remets à vous.

D'ailleurs, j'en profite pour poser une autre question (désolé si elle l'a déjà été mais... vu le nombre de sujets du forum, j'ai pu la manquer ) : comment faire pour transférer un fichier depuis sa calculatrice jusqu'ici ? J'ai téléchargé FA 124, et je ne rencontre pas de problème pour transférer mes programmes de l'un à l'autre, mais je n'ai aucune idée de comment coller proprement un programme, voire une partie de programme sur le site à partir du logiciel... J'ai joint un fichier, mais je ne pense pas que ça fonctionnera.

Ça fonctionne si l'on a FA 124, mais ça déforme quelque peu le programme, et ce n'est pas très confortable...

Merci d'avance !

EDIT : Ah voilà j'ai réussi, c'était pas bien compliqué en fait...

Voici mon programme
Soyez indulgents, on est tous passés par là
StrLen(Str 1)>7⇒StrLeft(Str 1,7→Str 1Ù
ClrText:3→C:0→DÙ
For 1→A To 21Ù
Locate [green][b][u]A[/u][/b][/green],1,"=":Next:DoÙ
Locate 1,1,"======="Ù
Locate 15,1,"======="Ù
Locate 8,1,Str 1Ù
Locate 3,3,"Nouvelle partie"Ù
Locate 3,4,"Continuer"Ù
Locate 3,5,"Crédits"Ù
Locate 15,7,"Quitter"Ù
Do:GetkeyÙ
LpWhile Ans≠0Ù
Do:Getkey→AÙ
LpWhile A≠27 And A≠37 And A≠47 And A≠28 And A≠31 And A≠38Ù
If A=31Ù
Then C=3⇒1→DÙ
C=2⇒2→DÙ
If C=1:Then ClrTextÙ
Locate 5,3,"Programmé par"Ù
Locate 8,5,"Starven"Ù
Do:GetkeyÙ
LpWhile Ans≠0Ù
Do:GetkeyÙ
LpWhile Ans≠31Ù
IfEnd:IfEndÙ
For 2→B To 7Ù
Locate 1,B," ":NextÙ
Locate 13,7," "Ù
If A=28:Then If C<1Ù
Then 1→C:Else Isz CÙ
IfEnd:IfEndÙ
If A=37:Then If C<1Ù
Then 3→C:Else C-1→CÙ
IfEnd:IfEndÙ
If (A=47 Or A=31) And C<1Ù
Then ClrTextÙ
Locate 6,3,"Voulez-vous"Ù
Locate 2,4,"vraiment quitter ??"Ù
Locate 1,6,"<- Oui"Ù
Locate 17,6,"Non →"Ù
Do:GetkeyÙ
LpWhile Ans≠38 And Ans≠27:If Ans=38Ù
Then ClrText:StopÙ
IfEnd[green][b][u]:IfEnd[/u][/b][/green]Ù
(A=27 Or A=47) And C<1⇒C*4→CÙ
A=38 And C<1⇒4C→CÙ
C>3⇒0.25→CÙ
C=3⇒Locate 1,3," :here: "Ù
C=2⇒Locate 1,4," :here: "Ù
C=1⇒Locate 1,5," :here: "Ù
C<1⇒Locate 13,7," :here: "Ù
LpWhile D≠1 And D≠2


Fichier joint


Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 21/12/2016 18:40 | #


If (A=47 Or A=31) And C<1
Then ClrText
Locate 6,3,"Voulez-vous"
Locate 2,4,"vraiment quitter ??"
...

Ce If n'est fermé nulle part.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 21/12/2016 18:43 | #


C'est bien ça, !
Comme quoi, les erreurs les plus bêtes sont les plus discrètes...

Je ne sais pas s'il y a une case "résolut" à cocher quelque part, mais le cœur y est !
Dieu créa l'homme ; l'homme créa la connerie.
Donc, Dieu créa la connerie. CQFD
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 21/12/2016 18:44 | #


Il faut bien avouer que les erreurs annoncées par l'interpréteur Basic ne sont ni explicites ni pertinentes la plupart du temps... ça ne nous facilite pas vraiment la tâche.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 21/12/2016 18:46 | #


D'ailleurs j'ai oublié de dire qu'après avoir appuyé sur [EXIT] le curseur s'était placé sur la dernière ligne... Mais en l’occurrence, ça n'aurait servi à rien.

Merci encore !

PS : Je suis fan de ton avatar !
Dieu créa l'homme ; l'homme créa la connerie.
Donc, Dieu créa la connerie. CQFD
Et7f3 Hors ligne Membre Points: 176 Défis: 1 Message

Citer : Posté le 21/12/2016 18:48 | #


Ça, c'est normal : PRGM s'arrête là où il ne comprend plus, et il a cru que tout le reste était dans le If.
"l'impossible n'est pas français", Je suis français je suis donc capable de tout.
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 21/12/2016 18:49 | #


Oui, c'est bien l'une des quelques parcelles de programmation que j'ai à peu près compris !
Dieu créa l'homme ; l'homme créa la connerie.
Donc, Dieu créa la connerie. CQFD
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 21/12/2016 18:52 | #


À vrai dire, le comportement de l'interpréteur de la calto n'est ni standard ni vraiment un modèle

J'en profite pour signaler d'autres choses dans ton code :
For 1→A To 21
Locate Int (A+0.5),1,"=":Next

Pourquoi arrondir alors que A est entier ? Au fond ça ne change rien.

If A=28:Then If C<1
Then 1→C:Else Isz C
IfEnd:IfEnd
If A=37:Then If C<1
Then 3→C:Else C-1→C
IfEnd:IfEnd

Il existe aussi une commande Dsz qui fait l'exact opposé de Isz. Attention, ces deux commandes sont connues pour sauter l'instruction suivante si le résultat de l'incrémentation/décrémentation est 0. C'est fait pour être placé devant un WhileEnd, par exemple.

(Thx ! )
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Et7f3 Hors ligne Membre Points: 176 Défis: 1 Message

Citer : Posté le 21/12/2016 18:52 | #


À l'avenir, utilise le debuggeur de programmes Basic (merci Lephenixnoir).
"l'impossible n'est pas français", Je suis français je suis donc capable de tout.
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 21/12/2016 19:29 | #


Ah oui merci pour A (je pensait que For générait tous les réels entre A et B... ).
Je n'ai pas utilisé Dsz justement parce qu'il peut arriver que C soit égal à 1.

Je ne connaissais pas le debugger, désolé...
Dieu créa l'homme ; l'homme créa la connerie.
Donc, Dieu créa la connerie. CQFD
Lephenixnoir En ligne Administrateur Points: 24670 Défis: 170 Message

Citer : Posté le 21/12/2016 19:38 | #


Générer tous les réels entre A et B ? Oh, elle est pas mal celle-là
(Il y en a une belle infinité en fait, une infinité dite indénombrable ; en gros, on ne peut pas numéroter les réels, donc impossible de les générer avec une boucle For !)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Starven Hors ligne Membre Points: 12 Défis: 0 Message

Citer : Posté le 21/12/2016 19:45 | #


Ben ouai je me disais bien aussi...
Dieu créa l'homme ; l'homme créa la connerie.
Donc, Dieu créa la connerie. CQFD
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 22/12/2016 23:01 | #


J'ai modifié le titre, j'ai failli perdre la vue à plusieurs reprises.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 139 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