Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 7955
Réponses : 32
Type : discussion
Etat : réponses autorisées

Un chrono, un vrai

ld le 06/10/2010 à 11:44
Un Chrono encore plus précis en 154 octets !
Entrer : Start/Pause
Annul : Stop
Flèche du bas : Affichage successif des temps (NOUVEAU)
Suppr : Étalonnage *

Code
:0->T:0->M
:Disp "","","","","","",""           ---- ( 7 x "" )
:Output(7,13,"Min
:Output(7;7,"Sec
:Repeat K=45
:T+N->T
:Output(7,11,M
:output(7,2,arrondi(T,1
:CodeTouche->K
:if K=23:30N/T->N
:if K=34:Disp ""
:if K=105:Pause
:if T=60:Then:M+1->M:0->T:end
:end


* Pour étalonner, lancer le prgm, le conteur tourne. Puis appuyez exactement 30 sec après sur Suppr. Faites Annul. Le chrono est étalonner.

Pour ma part j'ai une seconde de décalage au bout de 9 minutes.
(Essai sur 2 calto).
Sangohan38 le 06/10/2010 à 12:07
Ton chrono est forcément pas bon vu que la vitesse du programme dépend de la mémoire disponible sur la calto et des fonctions utilisées.

Sangohan38

PS: Utilise la balise code dans tes programmes et aère les plus sinon ça pique rapidement les yeux.
tarken le 07/10/2010 à 18:53
Il n'y aura jamais de vrai chrono en basic et sur ti82. : )
Sangohan38 le 07/10/2010 à 19:04
Je suis pas d'accord, il faudrait que pour un programme donné on sache l'influence de la mémoire sur la vitesse de la calto et rajouter un terme correctif d'une boucle infinie.

Sangohan38
Rézus le 07/10/2010 à 19:43
Ben t'as trouvé un sujet pour ta thèse,sans oublier que si tu rajoutes une boucle,tu ralentis le programme,et en plus l'effet s'accroît parce que la boucle prend de la mémoire,du coup ça te fait des calculs compliqués dans ta boucle qui ralentissent encore le prog... bon courage godgrace.gif
1ege1 le 07/10/2010 à 23:07
Il est l'heure de s'acheter une montre ( avec chrono ).
bikerdars le 08/10/2010 à 18:23
j'ai installé ton programme sur ma calculette, l'intervalle de temps entre les différentes secondes ne correspond pas à la réalité
linkakro le 08/10/2010 à 20:20
Cela dépend de la calculatrice et de la mémoire. Alors ne fait pas de généralité.
Kelmass le 03/01/2011 à 20:14
Si tu veux que sa ressemble a 1 chrono modifie le t=60 en t=120 et le t+(1/12.5 en t+(1/5.6 cela ressemblera deja plus a 1 chrono.
Sangohan38 le 03/01/2011 à 23:23
Comme je l'ai déjà expliqué, c'est pas parce que sur ta calto ça marche que sur les autres ça va à la même vitesse puisque la mémoire disponible et les autres fonctions des autres programmes influent sur la vitesse d'exécution d'un prog.

Sangohan38
perimgui le 14/01/2011 à 22:33
Avec une Ti-84 SE, le chrono fonctionne à la seconde près, chapeau !
linkakro le 15/01/2011 à 00:28
C'est très certainement un composant à part (timer) qui gère l'horloge.
C'est dans l'air du temps, les timers sont jeunes comparés aux aïeux de TI.
perimgui le 15/01/2011 à 19:07
Par contre, j'aimerais savoir comment tu as-fais pour trouver cet algorithme ?
Par exemple le ":T+(1/12,5)-)T", quel rapport existe-t-il entre cela est les secondes ?"
metallica le 15/01/2011 à 20:06
Il faut soi-même l'ajuster car cela diffère de la mémoire (comme Sangohan38 l'a souvent répété) et ne pourra jamais être très précis.
perimgui le 15/01/2011 à 20:10
Donc comment je fais pou l'ajuster, je change ce 12.5 en une valeur plus ou moins grande, c'est ça ?
patate007 le 15/01/2011 à 20:53
Ouaip winkle.gif Enfin 1/12.5 entièrement winkle.gif
perimgui le 15/01/2011 à 21:42
Je peux essayer quelles valeurs car toutes les valeurs que j'ai essayé, ça me donne un nombre avec beaucoup de décimal.
metallica le 15/01/2011 à 22:11
rajoute:
-un int( si ta TI est en Anglais
-un ent( si ta TI est en Français
devant
Code
:T+(1/12,5)-)T

ainsi, tu obtiens:
Code
En Anglais:
:int(T+(1/12,5)-)T
En Français:
:ent(:T+(1/12,5)-)T
perimgui le 15/01/2011 à 22:23
Tu vas rire mais maintenant, dès que je met un nombre autre que 12.5, les secondes (et par conséquent les minutes) restent à 0 moodforlove.gif
perimgui le 15/01/2011 à 22:27
Mais par exemple, pour les TI-82 stats, n' a-t-il pas une valeur commune qui marche pour toutes les calculatrice ou ça dépend uniquement de quelque chose d'interne ?
Sangohan38 le 16/01/2011 à 00:25
Ca dépend de la mémoire de la calculatrice cad des programmes installés et des variables et des listes en mémoire.

Sangohan38
Natars le 11/01/2012 à 14:32
Il faudrait arriver à créer une instruction qui calcule l'incrémentation en fonction de la mémoire mais je pense pas que ça existe
sandro le 11/01/2012 à 17:22
Il faudrait en tout cas utiliser de l'assembleur pour tester la contité de mémoire libre (et aussi teser l'état des piles, il parrait que ça influance aussi).

Sandro
ld le 14/01/2012 à 16:35
Puisqu'on ne peut savoir ni l'espace utilisé dans la mémoire ni la charge des piles et que la vitesse d’exécution du prgm dépend de ces paramètres.
Je propose un système permettent de résoudre l'équation, pour un temps donné en fonction de la vitesse, et d'ainsi obtenir la valeur à mettre dans N pour d’étalonner la calto de chacun.

Programme Chrono par Davin.
252 Ko
Touches:0="remise à zéro",Annul=Stop,Entre="Marche/Pause"
Code

:Menu("CHRONO","GO !",2,"ETAL",1)
:Lbl 1
:Disp "15 Sec"
:0->T:0->N
:While non(K:codeTouche->K:N+1->N:End
:12.4+(12.4-N/67.6)->N:Stop
:Lbl 2
:EffEcr:0->T:0->M
:Output(4,13,"Min"):Output(4;7,"Sec") *
:While 1
:T+(1/N)->T
:Output(4,11,M):output(4,2,arrondi(T/2))
:CodeTouche->K
:if K=102:Then:0->T:0->M:Output(4,2,"    "):end *
:if K=105:Pause:if K=45:Stop
:if T=60:Then:M+1->M:0->T:end
:end

* Pour les lettre en minuscule aller dans "var","(5)Statistique"
ou le catalogue...
* (4 espaces)...

Pour étalonner, choisissez ETAL dans le menu en pressant Entrer, puis rappuiez sur cette même touche exactement 15 Sec plus tard en vous aidant d'une montre.
Voilà. Pis c'est tout. moodforlove.gif
Sangohan38 le 15/01/2012 à 01:37
Balise code?
Pourquoi mettre 15 sec au lieu d'une minute par exemple car je rappel que plus la mesure est grande, plus l'imprécision liée à la mesure est négligeable.

Par exemple, un écart d'une seconde sur une mesure de 15 secondes représente 1/15*100=6.67% d'écart alors qu'une seconde sur 60 secondes n'est plus que 1/60*100=1.67% d'écart.

Sangohan38
ld le 09/10/2012 à 16:10
Un Chrono encore plus précis en 154 octets !
Entrer : Start/Pause
Annul : Stop
Flèche du bas : Affichage successif des temps (NOUVEAU)
Suppr : Étalonnage *

Code
:0->T:0->M
:Disp "","","","","","",""           ---- ( 7 x "" )
:Output(7,13,"Min
:Output(7;7,"Sec
:Repeat K=45
:T+N->T
:Output(7,11,M
:output(7,2,arrondi(T,1
:CodeTouche->K
:if K=23:30N/T->N
:if K=34:Disp ""
:if K=105:Pause
:if T=60:Then:M+1->M:0->T:end
:end


* Pour étalonner, lancer le prgm, le conteur tourne. Puis appuyez exactement 30 sec après sur Suppr. Faites Annul. Le chrono est étalonner.

Pour ma part j'ai une seconde de décalage au bout de 9 minutes.
(Essai sur 2 calto).
ld le 10/10/2012 à 17:52
Quelqu'un l'a essayer ? Il n'est pas long...
blg_flg le 10/10/2012 à 18:15
Il y a un problème: au début, on dit que T et M égalent 0, puis on divise par T. Cela provoque donc logiquement une erreur "DIV PAR 0". J'ai l'impression que je n'ai pas bien compris comment utiliser ton programme. minied.gif

Ps: c'est un peu inutile pour moi, compte tenu de la présence de l'horloge sur la 84+SE. godgrace.gif
Cytropus le 10/10/2012 à 18:54
je croit qu'il manque une valeur à affecter à N

Ps : pareil pour ma 89tita godgrace.gif
ld le 10/10/2012 à 19:52
Tu te trompe Le Grec. Lorsque :30N/T->N est exécutée, la commande T+N->T a déjà était réalisée plusieurs fois. T n'est donc pas nul.
Mais Cytropus a raison. Il faut mettre un valeur quelconque dans N au début.
blg_flg le 10/10/2012 à 19:58
Alors c'est bien ce que je dis: j'ai pas compris comment l'utiliser, parce que moi ça me met "erreur div par 0".
Cytropus le 11/10/2012 à 07:58
@Le Grec: t'as lu la réponse de ld, j'ai raison godgrace.gif
met un 1->N après le 0->M et ça marchera glasses.gif
Indô le 17/04/2015 à 21:21
J'avais trouvéun code hexa qui permettait de mettre la valeur du nmbre d'o dispos dans la RAM dans Rep