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

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Tester plusieurs valeurs pour Getkey
Ninestars Hors ligne Membre Points: 2449 Défis: 24 Message

Tester plusieurs valeurs pour Getkey

Posté le 16/02/2013 23:54

Voici une petite astuce qui permet d'éviter des suites de conditions pour savoir si plusieurs touches ont été pressées :
While Prod ({A,B,C}!=Getkey)

WhileEnd

Avec A,B,C, ... le code de chaque touche

Ce code évite
While G!=A And G!=B And G!=C
Getkey->G

WhileEnd


Elle fait pas gagner grand chose, mais je la trouve plus "belle"


Ninestars Hors ligne Membre Points: 2449 Défis: 24 Message

Citer : Posté le 20/02/2013 20:47 | #


Justement c'est ça l'optimisation ! On travail pas deux fois sur une liste mais une fois sur une liste puis une fois sur un nombre

Par contre l'ancien est faux, celui là est correct :
For 1->A To 1000
Prod ({1,2,3})=1->B
Next

Après il existe certaines combinaisons notamment avec les négatifs qui font bugger le code :/
Siapran Hors ligne Membre Points: 3248 Défis: 17 Message

Citer : Posté le 20/02/2013 21:15 | #


...
Prod ({1,2,3}) est égal à 6
donc si tu fait Prod ({1,2,3})=1 tu teste juste si 6=1
alors que Prod ({1,2,3}=1) tu teste si tous les nombres de la liste sont égaux à 1

Pour ce qui est de la place prise en fait l'astuce permet d'économiser 1 octet par valeur de liste à partir de 4 valeurs

Ajouté le 20/02/2013 à 21:23 :
l\'éventuel avantage supplémentaire de l\'astuce est sa malléabilité: on les valeurs à tester ne sont pas figées comme pourraient l\'être celles sur des conditions and.

{1,2,3 -> List 1
Prod (List 1!=42)->A
{34,42,63,69,256,1337,9001-> List 1
Prod (List 1!=42)->B

On peut ainsi changer le nombre de valeurs à tester dans une même condition de façon bien plus dynamique.
Ninestars Hors ligne Membre Points: 2449 Défis: 24 Message

Citer : Posté le 20/02/2013 21:50 | #


Siapran a écrit :
donc si tu fait Prod ({1,2,3})=1 tu teste juste si 6=1

Oui mais pour que Prod ({A,B,C}=1), il faut que A=B=C=1
Après ca foire si A=0.5 B=2 C=1 ou A=-1 B=-1 C=1 :/ et puis ça fonctionne que pour =1 donc c'est vraiment nul.

Oui dans ce cas ça peut être pratique, même si je n'ai aucune idée du moment où ça pourrait me servir Mdr

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 - 2022 | Il y a 50 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