π
<-

Entrer une réponse dans un temps imparti

Entrer une réponse dans un temps imparti

Unread postby PiR » 10 Mar 2015, 21:02

Bonjour, (oui c'est encore moi :p )
Je voudrais savoir comment faire pour que quelqu'un rentre une réponse (un nombre) dans un temps imparti.
J'ai trouvé une solution mais je pense qu'on peut mieux l'optimiser mais comment ?
Code: Select all
1->H
0->X
"1234567890"->Str1
" "->Str3
Repeat K=105
0->K
getKey->K
If K=102
Then
Output(1,H,0)
92üN
End
If K>=92 and K=<94
Then
Output(1,H,K-91
91->N
End
If K>=82 and K=<84
Then
Output(1,H,K-78
78->N
End
If K>=72 and K=<74
Then
Out>put(1,H,K-65
65-N
End
If K!=105 and K!=0
Then
sub(Str1,K-N,1)->Str2
Str3+Str2->Str3
H+1->H
End
X+1->X
If X=200
Disp "TROP TARD
End
Str3

Auriez-vous une idée pour l'optimiser ou alors avez-vous une autre solution ?
Merci d'avance
Mes programmes (tous en basic) sont ici
User avatar
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 46.9%
 
Posts: 45
Joined: 25 Feb 2015, 18:33
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SI

Re: Entrer une réponse dans un temps imparti

Unread postby Epharius » 11 Mar 2015, 17:53

Déjà, je ne pense qu'il y ai besoin d’initialiser K avant le getkey, c'est automatique ;)
Ensuite le k!=0 peut être simplifié en k c'est-à-dire : If K!=105 and k

Mais sinon je ne vois pas trop comment tu pourrais faire autrement, c'est déjà pas mal optimisé...
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Entrer une réponse dans un temps imparti

Unread postby Wistaro » 11 Mar 2015, 20:04

Tu peux toujours gagner quelques octets en enlevant les " et) finaux.

Code: Select all
Output(1,H,0)



Devient

Code: Select all
Output(1,H,0



Ou encore

Code: Select all
"1234567890"->Str1



Devient

Code: Select all
"1234567890->Str1

.
Ce ne sont que des exemples, il y en a encore d'autres dans ton programme.

Ah, oui, aussi. Ceci:

Code: Select all
DelvarK
//Ou plus haut dans ton programme
DelvarX


Au lieu de

Code: Select all
0->K
//et plus haut dans ton programme
0->X

(mais ici, comme dit Ptirageur, c'est inutile pour le K).

Au final, ton début de code ça donne cela:

Code: Select all
1->H
DelvarX"1234567890->Str1


Enfin,

Ceci:

Code: Select all
If K>=72 and K=<74


Peut devenir :
Code: Select all
If (K>=72)(K=<74


Et pareil pour tes autres conditions. Je sais pas si tu gagnes quelques octets, mais c'est plus propre je trouve :)

Aussi:

Code: Select all
sub(Str1,K-N,1)->Str2
Str3+Str2->Str3


Peut devenir :
Code: Select all
Str3+sub(Str1,K-N,1->Str3


Voilà je pense que j'ai fait le tour!
Last edited by Wistaro on 11 Mar 2015, 20:13, edited 1 time in total.
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Unread postby Epharius » 11 Mar 2015, 20:11

Enfin,

Ceci:

Code: Select all
If K>=72 and K=<74



Peut devenir :

Code: Select all
If (K>=72)+(K=<74



Et pareil pour tes autres conditions. Je sais pas si tu gagnes quelques octets, mais c'est plus propre je trouve :)


Par contre wistaro, il faudrait remplacer ton If (K>=72)+(K=<74 par un If (K>=72)(K=<74 parce que sinon ça remplace le Or et non le And ;)
Last edited by Epharius on 11 Mar 2015, 20:14, edited 1 time in total.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Entrer une réponse dans un temps imparti

Unread postby Wistaro » 11 Mar 2015, 20:13

Ah flûte merci de l'avoir signalé :)

PS: Je viens d'éditer mon message à l'instant
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Unread postby PiR » 11 Mar 2015, 20:16

ok super merci les gars
Mes programmes (tous en basic) sont ici
User avatar
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 46.9%
 
Posts: 45
Joined: 25 Feb 2015, 18:33
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SI

Re: Entrer une réponse dans un temps imparti

Unread postby Wistaro » 11 Mar 2015, 20:27

Pas de souci !
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Unread postby grosged » 24 Mar 2015, 20:27

Au sujet du
Code: Select all
If (K≥72)(K≤74

On peut encore grapiller 4 octets avec
Code: Select all
If 1≥abs(73-K
;)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Entrer une réponse dans un temps imparti

Unread postby Wistaro » 27 Mar 2015, 11:01

Hein? Tu peux expliquer ?
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3191
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: Entrer une réponse dans un temps imparti

Unread postby grosged » 27 Mar 2015, 14:02

K est-il entre 72 et 74 ?
Code: Select all
If (K≥72)(K≤74

qu'on peut formuler aussi "K est-il dans les parages de 73 ? (c'est-à dire =73 ou juste à côté)"
avec K=72, 73 ou 74 , (73-K) nous donnera respectivement 1,0,-1
d'où la simplification en passant en absolu:
Code: Select all
If abs(73-K)≤1

et en optimisant un chouïa (histoire de retirer une parenthèse)
Code: Select all
If 1≥abs(73-K


On pourrait même étendre cette façon de faire au pavé numérique (sauf le zéro)
Si l'on veut juste savoir si l'une des 9 touches à été pressée :
On prend la valeur de la touche centrale, en l'occurence la touche
5
(dont le getKey=83)
Avec (83-K) on aura les résultats:
11,10,9
1,0,-1
-9,-10,-11
en passant en absolu, abs(83-k) nous donnera soit 0,1,9,10,11
là, on remarque que pour les 3 dernières valeurs possibles, il nous suffirait de soustraire 10 pour de nouveau arriver à une valeur -1,0 ou 1
Ce qui nous fait:
Code: Select all
Repeat 1≥Ans or 1≥abs(Ans-10
getKey→K:Abs(83-K
End
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
777 utilisateurs:
>734 invités
>36 membres
>7 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)