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 » petit bug de Dsz
Darkjura Hors ligne Membre Points: 389 Défis: 0 Message

petit bug de Dsz

Posté le 02/07/2020 17:16

Bonjour !
Il y a peu, j'ai eu un problème qui m'a beaucoup soulé...
Considérez ce code :
1→A
Do
Getkey=37►Dsz A
LpWhile 1

(j'ai pas trouvé de double flèche...)
...Et bien, il renvoie une erreur syntaxe en pressant la touche du bas !
J'ai fait plein de test, et j'ai finalement découvert qu'il faut remplacer ça
Dsz A

par ça
A-1→A

Ce qui équivaut à la même chose, en fait.
Quelqu'un saurait-il pourquoi ce bug existe ?
C'est sur ma 35+E (avec OS Graph 75) que j'ai testé ce programme
Merci d'avance et à tout de suite !


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

Citer : Posté le 02/07/2020 17:18 | #


It's not a bug, it's a feature.

Si le résultat de l'opération vaut 0, la ligne suivante est ignorée.

De la même manière, Isz a le même comportement.

Pourquoi par contre, à ma connaissance personne ne le sait vraiment…
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Zezombye En ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 02/07/2020 17:18 | #


Dsz A n'est pas équivalent à A-1->A : https://www.planet-casio.com/Fr/reference_basic_casio/commande_basic.php?fonc=13

Comme tu sautes le LpWhile, ça crée une erreur syntaxe, il y a un Do mais pas de Lpwhile.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir En ligne Administrateur Points: 22892 Défis: 149 Message

Citer : Posté le 02/07/2020 17:20 | #


Pourquoi par contre, à ma connaissance personne ne le sait vraiment…

Pour pouvoir sortir des boucles en sautant l'instruction qui ramène au début.
Darkjura Hors ligne Membre Points: 389 Défis: 0 Message

Citer : Posté le 02/07/2020 17:22 | #


Oki, merci !
(mais c'est bizarre quand même...)
Dark storm Hors ligne Labélisateur Points: 11579 Défis: 176 Message

Citer : Posté le 02/07/2020 17:22 | #


Pour pouvoir sortir des boucles en sautant l'instruction qui ramène au début.

Ce qui provoque des Syntax Error si tu fais les choses proprement sans utiliser des labels…
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Darkjura Hors ligne Membre Points: 389 Défis: 0 Message

Citer : Posté le 02/07/2020 17:25 | #


Et pourquoi le programme voudrait sortir d'une boucle ?
Lephenixnoir En ligne Administrateur Points: 22892 Défis: 149 Message

Citer : Posté le 02/07/2020 17:29 | #


Dark storm a écrit :
Ce qui provoque des Syntax Error si tu fais les choses proprement sans utiliser des labels…

T'es sûr que ça compte pas la sortie ? :o
Breizh_craft Hors ligne Modérateur Points: 1118 Défis: 7 Message

Citer : Posté le 02/07/2020 17:30 | #


Lephenixnoir a écrit :
Pourquoi par contre, à ma connaissance personne ne le sait vraiment…

Pour pouvoir sortir des boucles en sautant l'instruction qui ramène au début.


Pour être plus précis, c'est un héritage des vieilles calculatrices Casio où les boucles était faites avec des Goto/Lbl. Un Isz ou Dsz devant permettait de faire un for. De même, juste avant une instruction quelconque cela permet de faire une incrémentation ou décrémentation puis une condition sur 0 de façon très optimisée (la mémoire était limitée à l'époque).
Breizh.pm – Un adminsys qui aime les galettes.
Hackcell Hors ligne Maître du Puzzle Points: 1495 Défis: 11 Message

Citer : Posté le 02/07/2020 17:30 | #


je pencherai sur le fait qu'il saute une ligne alors qu'il n'y en a plus derriére..
Lephenixnoir En ligne Administrateur Points: 22892 Défis: 149 Message

Citer : Posté le 02/07/2020 17:30 | #


Aaah oui merci, ça y est. J'avais retenu que la moitié de l'histoire, c'est fait pour sauter les Goto.
Dark storm Hors ligne Labélisateur Points: 11579 Défis: 176 Message

Citer : Posté le 02/07/2020 17:36 | #


Lephenixnoir a écrit :
Dark storm a écrit :
Ce qui provoque des Syntax Error si tu fais les choses proprement sans utiliser des labels…

T'es sûr que ça compte pas la sortie ? :o

Ben non, c'est même le problème que décrit Darkjura dans son topic
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Darkjura Hors ligne Membre Points: 389 Défis: 0 Message

Citer : Posté le 02/07/2020 17:43 | #


Hé, oui !

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 71 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