Poster un nouveau sujet Poster une réponse
Goto ou quitter
Auteur Message
Vavas
Invité
Posté le : Jeu 14 Jui 2012, 11:49   Citer 

Bonjour.

Lorsqu'une boucle est en cours entre un lbl et un goto, comment faire en sorte qu'avec une précision de 2nd et mode (quitter) le programme se quitte.
Car l'arrêt avec ON est un peu.. moyen.

  Haut de page Bas de page 
 
Vavas
Invité
Posté le : Jeu 14 Jui 2012, 11:50   Citer 

préssion*

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Jeu 14 Jui 2012, 11:59   Citer 

Tu rajoute en première ligne du programme un 0 -> L
puis juste après le Lbl tu rajoute:

Code
CodeTouch -> K
If K=21
non(L -> L
If KL=22
Stop



ça devrait marcher
Stop est dans le menu prgm/ctl ; CodeTouch dans le menu prgm/ E/S ; non( dans le menu test/logique

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 14 Jui 2012, 13:29   Citer 

ce serait pas K+L plutôt que KL ?

 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 14 Jui 2012, 18:02   Citer 

Non, il me semble que c'est bien KL puisque le but est d'appuyer sur 2nde puis mode (quitter). Par contre, avec ça, je crois qu'à partir du moment ou il aura appuyé une seule fois sur 2nde, il n'aura plus qu'à appuyer sur mode même si ce n'est pas la touche appuyée immédiatement après.

Je propose donc ça :

Code
CodeTouch -> K
If K=21
non(L -> L
If KL=22
Stop
If min(K[différent de]{21,22
EffVar L



----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 14 Jui 2012, 19:29   Citer 

Ah non ! là, ta ligne de code elle sert a rien puisque le programme s'arrête avant de l'avoir lue !


Code
CodeTouch -> K
If K=21
non(L -> L
If min(K[différent de]{21,22
EffVar L
If KL=22
Stop



Dans ce cas, OK.

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Jeu 14 Jui 2012, 20:49   Citer 

Il y a aussi la méthode simple : tu quittes pas.

Parce qu'à l'origine c'est pas prévu pour xD

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL

Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Jeu 14 Jui 2012, 21:56   Citer 


Citer
Ah non ! là, ta ligne de code elle sert a rien puisque le programme s'arrête avant de l'avoir lue !



Je comprend pas bien ce que tu veux dire, parce que si K=21, alors le programme ne va pas s'arrêter (KL=21). Ensuite, dans le deuxième tour de boucle, si K=22 alors KL=22 et donc le programme s'arrête. Par contre s'il réappuie sur 2nde, rien ne va se passer mais s'il appuie sur une autre touche, il faudra recommencer l'opération (2nde puis quitter), non ?

Du coup, c'est vrai qu'avec ce raisonnement on peut supprimer le If K [différent de 22] :


Code
CodeTouch -> K
If K=21
non(L -> L
If KL=22
Stop
If K-21
EffVar L



----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 15 Jui 2012, 9:41   Citer 

Ben... si !

Si il appuie une fois sur la touche [2nde], puis, beaucoup plus tard, peut être en ayant pressé d'autres touches avant, il appuie sur [mode], ça quittera...

 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Ven 15 Jui 2012, 10:43   Citer 

Bon, cet fois ci j'ai essayé et ça ne marche que s'il appuie sur 2nde et que la touche pressé après est mode (quitter) :

Code

EffVar L
LBL 0
CodeTouche -> K
If K=21
non(L -> L
If KL=22
Stop
If min(K[différent de]{0,21
EffVar L
Goto 0



----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 16 Jui 2012, 16:39   Citer 

Je trouve cela bien compliqué (à première vue, sans certitude), je pense qu'il suffirait d'une variable intermédiaire.
Et pour cela on a pas forcément besoin d'utiliser la commande non().

Code
DelVar L
Repeat L=21 and K=22
If K
K->L
getKey->K
End
"OK

EDIT: j'ai ajoûté le If K

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 16 Jui 2012, 17:50   Citer 

clown.gif Waw

:pwned:

 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 18:26   Citer 

Je ne dirai qu'une chose.

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 16 Jui 2012, 21:10   Citer 

Je viens de remarquer que mon code est faux lui aussi ! frozen.gif
En effet il faudrait appuyer sur les touches plus vite que la lecture du programme.
J'ai édité mon message précédent en réglant ce problème.

De façon secondaire, remarquons que cette méthode ne permet pas d'avoir plusieurs sorties différentes. Il faudrait donc utiliser d'autres types boucles et sûrement des goto.
Je pense à :
Code
Lbl 0
...
If K
K->L
getKey->K
...
If K=22 and L=21
Goto 1
If K=... and L=...
Goto 2
...
Goto 0

Lbl 1
...
Goto 3
Lbl 2
...
Lbl 3

Ici le Lbl 0 pourrait être un While 1, seulement je me méfie du conflit goto/end.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 21:51   Citer 

Certes, mais le sujet original c'était d'arrêter le programme avec la touche quitter entre un LBL et un Goto donc c'est tout simplement :

Code
Lbl 0
If K
K->L
codeTouche->K
If K=22 et L=21
Goto 0




Citer
Ici le Lbl 0 pourrait être un While 1, seulement je me méfie du conflit goto/end.


Je ne vois pas de quel conflit tu parles, il suffit de mettre un End au début de chaque LBL vers lesquels nous renvoie les Goto compris dans la boucle, non ?

Code
While 1      //ou Repeat 0
...
If K
K->L
getKey->K
...
If K=22 and L=21
Goto 1
If K=... and L=...
Goto 2
...
End

Lbl 1
End
...
Goto 3
Lbl 2
End
...
Lbl 3



Ah, et sinon: "..."

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 16 Jui 2012, 22:38   Citer 

Vous me faites plaisir avec vos "If K" ^^

Bon sinon je vous signale que vous êtes en train de discuter d'un morceau de code plutôt inutile et dont l'auteur (enfin celui qui l'a demandé) ne donne plus suite.

Voilà, post K-rrément inutile du jour winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL

Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 22:42   Citer 

Enfin, peut-être qu'il va répondre parce que ça fait que 2 jours qu'il a posté donc on sait jamais... même si tu as probablement raison. cry.gif

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 16 Jui 2012, 22:55   Citer 

Ce que tu viens d'écrire empêche de lire le contenu des Lbl ! (par un retour au début) C'est précisément le conflit dont je parle.
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=2757

Cependant tu viens de soulever quelque chose de très intéressant, sans le savoir.
Voir le chapitre suivant du tutoriel de mdr1 sur le sdz : https://web.archive.org/web/20121218002930/http://www.siteduzero.com/tutoriel-3-407869-amusons-nous-avec-les-end.html
Si les séquences se terminent par un retour au début, on peut exploiter volontairement le bug.
Code
While 1
...
If K
K->L
getKey->K
...
If K=22 and L=21
Goto 1
If K=... and L=...
Goto 2
...
End
Lbl 1
...
End // retour au début !
Lbl 2
...
End // retour au début !



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 16 Jui 2012, 23:02   Citer 

Mouais ... T'as pas tort.
Mais ça marche pas toujours. J'ai essayé avec un End conditionnel une fois ça a pas marche sad.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL

Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
F-BVXT



Autorisation : Membre
Nb de messages : 177
Inscrit le : Dim 27 Mai 2012, 20:38
Posté le : Sam 16 Jui 2012, 23:11   Citer 

Ah oui autant pour moi il faut dans ce cas ne pas mettre While 1 mais While I par exemple et faire EffVar I au début de chaque LBL.

----------------------
Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire et celles qui ne le comprennent pas.
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes