π
<-

Stopper un programme tant qu'aucune touche n'est activée

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Stopper un programme tant qu'aucune touche n'est activée

Messagede motojeremy » 03 Juin 2019, 19:10

Bonjour j'ai un problème sur un programme que je fait actuellement, afin de stopper mon programme tant qu'aucune touche n'est activée j'utilise ceci :
Code: Tout sélectionner
Lbl K
GetKey->K
If k≠0
then
goto S (la suite du programme)
else
goto K
End

Mais du coup la calculatrice effectue cette boucle sans s'arrêter tant qu'une touche n'est pas pressée et le programme ralentit de plus en plus jusqu'à crash (erreur mémoire)
J'aimerai donc savoir comment résoudre ma situation. Merci d'avance !
Avatar de l’utilisateur
motojeremy
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 5
Inscription: 04 Mai 2019, 21:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

En ligne

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede Hamza.S » 03 Juin 2019, 19:12

ça ne fonctionnera pas, Getkey n'attends pas que tu saisis une touche
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 29.3%
 
Messages: 4513
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede edgar13 » 03 Juin 2019, 19:15

remplace par

While 1:
getkey -> K
if K≠0:goto s
end
Mes programmes sont ici: archives_cat.php?auteur=201254
Avatar de l’utilisateur
edgar13Modo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 97.9%
 
Messages: 589
Images: 24
Inscription: 04 Jan 2019, 20:31
Localisation: Sur TI-Planet voyons
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2eme annee de medecine
YouTube: Non
Twitter/X: Non
Facebook: Non
GitHub: Non

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede critor » 03 Juin 2019, 19:23

Il faut éviter de mettre un Goto dans un bloc, que ce soit un If ou un While.
Cela explique l'erreur de mémoire, sur la première version du code, le contexte du bloc courant n'étant pas nettoyé dans le cadre d'une sortie par Goto, et en prime on rentre alors dans un nouveau bloc.

Une version propre sans Goto :
Code: Tout sélectionner
0->K
While non(K
getkey->K
End

C'est également plus court, et donc plus rapide à évaluer dans le cadre d'un langage interprété.

Ce qui est à faire à l'appui sur une touche est à saisir directement à la suite.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.4%
 
Messages: 42489
Images: 17332
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede motojeremy » 03 Juin 2019, 19:27

D'accord merci beaucoup une dernière chose cependant ou je trouve le non (ou no ?) sur la calculatrice ?
Avatar de l’utilisateur
motojeremy
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 5
Inscription: 04 Mai 2019, 21:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

En ligne

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede Hamza.S » 03 Juin 2019, 19:28

dans test puis logic
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 29.3%
 
Messages: 4513
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede motojeremy » 03 Juin 2019, 19:31

D'accord merci !
Avatar de l’utilisateur
motojeremy
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 5
Inscription: 04 Mai 2019, 21:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede edgar13 » 03 Juin 2019, 19:34

De rien :D
Mes programmes sont ici: archives_cat.php?auteur=201254
Avatar de l’utilisateur
edgar13Modo
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 97.9%
 
Messages: 589
Images: 24
Inscription: 04 Jan 2019, 20:31
Localisation: Sur TI-Planet voyons
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2eme annee de medecine
YouTube: Non
Twitter/X: Non
Facebook: Non
GitHub: Non

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede UnCurieux » 04 Juin 2019, 20:50

critor a écrit:Il faut éviter de mettre un Goto dans un bloc, que ce soit un If ou un While.
Cela explique l'erreur de mémoire, sur la première version du code, le contexte du bloc courant n'étant pas nettoyé dans le cadre d'une sortie par Goto, et en prime on rentre alors dans un nouveau bloc.

Une version propre sans Goto :
Code: Tout sélectionner
0->K
While non(K
getkey->K
End

C'est également plus court, et donc plus rapide à évaluer dans le cadre d'un langage interprété.

Ce qui est à faire à l'appui sur une touche est à saisir directement à la suite.


Dans ce genre de situation j'utilise
Code: Tout sélectionner
0->K
Repeat K≠0
getkey->K
End


A quoi sert/comment fonctionne "non(K" ?
Maths, fractales, géométrie, packs de levels Oiram, jeux, physique, ... : ici

ImageImage
Avatar de l’utilisateur
UnCurieuxProgrammeur
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 23.7%
 
Messages: 367
Images: 2
Inscription: 19 Mai 2017, 18:20
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Prépa scientifique 1A

Re: Stopper un programme tant qu'aucune touche n'est activée

Messagede critor » 04 Juin 2019, 22:27

On peut alors simplifier en :
Code: Tout sélectionner
0->K
Repeat K
getkey->K
End


En fait, une valeur non nulle est considérée comme vraie, et une valeur nulle comme fausse.
Donc K et K≠0, c'est pareil.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 54.4%
 
Messages: 42489
Images: 17332
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Suivante

Retourner vers Problèmes divers / Aide débutants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2256 utilisateurs:
>2241 invités
>8 membres
>7 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)