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 - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » [Astuce Inutile] Goto, Str et Deux points
Laghal Hors ligne Banni Points: 24 Défis: 0 Message

[Astuce Inutile] Goto, Str et Deux points

Posté le 27/02/2016 22:00

Ce qu'il faut savoir en quelques mots :

Ce qui est entre guillemets sur Calculatrice est exécutable.

On peut y accéder par un Goto, mais uniquement si c'est situé après un => : il faut que l'interpréteur croit qu'on n' arrive pas au milieu d'une instruction (sinon bam, erreur saut) mais bien au début d'une nouvelle.

Le => permet de bypasser la vérif' de l'interpréteur, qui grosso modo va se dire "oh un => !", et va chercher l'instruction qui vient juste après l'instruction qui suit => sans plus réfléchir au contenu qu'il a sauté... C'est d'ailleurs pour ça qu'il faut commencer la chaîne de caractère par deux points : l'interpréteur est persuadé que c'est ce qui vient après la conséquence.

Après on peut enchaîner les instructions en sautant des lignes, ou en utilisant les deux points (ce qui laisse la chaîne sur une ligne, c'est un peu plus joli)

Un exemple simple :

1[b]->[/b]A
[b][blue]While[/blue][/b] [maroon]1[/maroon]
[b][brown]Locate[/brown][/b] [maroon]1[/maroon],[maroon]1[/maroon],A
Not A⇒[gray]":[red]Lbl[/red] [maroon]1[/maroon]:[b][blue]Isz[/blue][/b] A:[b][blue]WhileEnd[/blue][/b]:"[/gray]
[red]Goto[/red] [maroon]1[/maroon]


Et après on peut s'amuser :
Ici, un coup le code est un string, un autre coup il est exécuté....etc

1[b]->[/b]A
[b][blue]While[/blue][/b] [maroon]1[/maroon]
-A[b]->[/b]A
A>0⇒[red]Goto[/red] [maroon]1[/maroon]
A<0⇒StrRotate([gray]":[red]Lbl[/red] [maroon]1[/maroon]:[b][blue]Isz[/blue][/b] A:[b][brown]Locate[/brown][/b] [maroon]1[/maroon],(A Rmdr [maroon]7[/maroon])+1,Str [maroon]1[/maroon]:[b][blue]WhileEnd[/blue][/b]:"[/gray],A[b]->[/b]Str [maroon]1[/maroon]
[b][blue]WhileEnd[/blue][/b]


Vous noterez le double WhileEnd 8)

C'est magnifique, et complètement inutile.

Allez, la bise.


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

Citer : Posté le 27/02/2016 22:01 | #


Bien mieux
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Totoyo Hors ligne Membre d'honneur Points: 16103 Défis: 102 Message

Citer : Posté le 27/02/2016 22:13 | #


C'est magnifique, et complètement inutile.

Inutile, donc indispensable.

Dark storm a écrit :
Bien mieux

+1
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 27/02/2016 22:39 | #


On pourrait limite écrire du code via un programme grâce a ça
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

Citer : Posté le 28/02/2016 08:41 | #


Oups, j'ai cru un instant qu'on pouvait exécuter une Str avec ça ^^' (je crois pas que Exp() fonctionne si ?)

Sympa comme astuce cependant, ça montre bien à quel point l'interpréteur n'a pas sécurisé les sauts inconditionnels
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Matt36230 Hors ligne Membre Points: 1888 Défis: 0 Message

Citer : Posté le 28/02/2016 09:24 | #


Exp() ne fonctionne qu'avec un calcul
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 28/02/2016 14:23 | #


Qu'est-ce que tu appelles "une conséquence" ?
Laghal Hors ligne Banni Points: 24 Défis: 0 Message

Citer : Posté le 28/02/2016 14:59 | #


Une conséquence, une implication, un double flèche quoi
=>
Sur un terrain clos, l'ingéniosité est requise.
Je suis allé acheter du pouvoir au Super-U mais il ne restait que du Cajoline.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 28/02/2016 15:07 | #


Laghal a écrit :
Une conséquence, une implication, un double flèche quoi
=>

C'est quand-même pas tout à fait pareil. Une double flèche est une commande Basic, une conséquence est le résultat logique d'une action. Quand tu écris pour être lu, tu fais en sorte que tout le monde partage ton langage, on se fiche de savoir si tu te comprends toi-même.
Fabcvlr Hors ligne Membre Points: 2275 Défis: 41 Message

Citer : Posté le 01/03/2016 08:12 | #


ça permet de mettre plus d'une instruction après la double flèche ! J'adore cette astuce !
L'expérience des autres, c'est comme une chandelle que l'on tient allumée dans son dos par une nuit de tempête !
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 19/09/2016 17:48 | #


Soit dit-en passant, c'est cool pour obfusquer son code
1337
Thebigbadboy Hors ligne Maître du Puzzle Points: 455 Défis: 16 Message

Citer : Posté le 09/11/2020 19:44 | #


Cette astuce, est-elle toujours valable pour les Graph 35+EII?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 24673 Défis: 170 Message

Citer : Posté le 09/11/2020 19:46 | #


Oui.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

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