Besoin d'aide pour une incompréhension de bug sur un chrono |
Auteur |
Message |
Nacki
Invité
|
Posté le : Mer 05 Oct 2011, 17:18
|
|
|
Bonjours, alors voilà en se moment je cherche à créer un chronomètre pour ti82 mais cherchant toujours plus à optimiser mon programme, je voudrais savoir qu'elle est l'erreur sur se morceau de programme :
Code |
EffEcr
0→V
0→Q
Output(4,7,"SEC"
Output(4,13,"MIN"
Output(4,5,V)
Output(4,11,Q)
codeTouche→R
If R=105
Then
Lbl W
Goto W
V+1→V
BinAléat(29,1
If V=60
Then
Q+1→Q
0→V
Goto V |
Voilà merci pour les future réponse !
PS : Merci de faire preuve d'indulgence, je suis débutant dans le domaine^^
|
|
|
|
Nacki
Invité
|
Posté le : Mer 05 Oct 2011, 17:21
|
|
|
Excuser pour l'erreur de script "→", c'est chiffre/symbole sont des flèche. →
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 05 Oct 2011, 17:39
|
|
|
Je doit avouer ne pas trop avoir compris ton code (le problème vient propablement soit des Goto/Lbl, soit d'un manque de End).
Voici un chornomètre que je te propose :
Code | EffEcr
0 -> S //0 secondes (les minutes sont aussi inclues là dedans)
Output(4,7,"SEC"
Output(4,13,"MIN"
Pause //attand que l'on appuie sur [entrer] pour commencer
Reapeat codeTouche //répéter jusqu'à ce que l'on appuit sur une touche
For(T,1,20 //ralentit (remplacer 20 par le nombre qui fait la plus haute
précision)
End
S+1 -> S //ajoute un au nombre de secondes
Output(4,5,60partDec(S/60 //nombre de secondes
Output(4,11,60ent(S/60 //nombre deminutes
End //Fin de la boucle du reapeat |
Sandro
PS : évite d'utiliser des If pour un chronomètre : selon que la condition est vraie ou fausse, le temps d'execution est différent. évite aussi de metre un Goto qui sort d'un If ou d'une boucle : à chaque execution, le programme va ralentir un tout petit peu.
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
programmathss
Invité
|
Posté le : Mer 05 Oct 2011, 17:46
|
|
|
Code |
If R=105
Then
Lbl W
Goto W
|
Javoue cette phrase ma choqué ^^'
Un label est toujours ouvert quoique il arrive
il manque un end de la boucle If/then/end
et, ce programme va tourner en rond entre label W, rien et revenir au label W, rien et revenir au label W etc...
|
|
|
|
Nacki
Invité
|
Posté le : Mer 05 Oct 2011, 18:30
|
|
|
Merci pour ton code sandro, comme je le disais, je suis très nouveau en programmtation ^^'
Citer : programmathss |
Code |
If R=105
Then
Lbl W
Goto W
|
Javoue cette phrase ma choqué ^^'
Un label est toujours ouvert quoique il arrive
il manque un end de la boucle If/then/end
et, ce programme va tourner en rond entre label W, rien et revenir au label W, rien et revenir au label W etc... |
Excuse moi je me suis tromper quand j'ai recopier mon code, j'ai inverser les deux
|
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 05 Oct 2011, 18:34
|
|
|
Même dans ce cas, ça ne sert à rien vue que tu ne saute que une ligne vide.
D'ailleur, il est où ton Lbl V ?
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|
Nacki
Invité
|
Posté le : Mer 05 Oct 2011, 19:55
|
|
|
Il n'y en a pas. Je l'ai mis au hasard, je n'ai pas trop eu de cours comme tu as sans doute pu le comprendre^^
|
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Mer 05 Oct 2011, 21:04
|
|
|
sandro : ta méthode avec des divisions est bourrin mais originale.
Et Heureusement que les erreurs d'arrondits sont très négligeables.
Pour éviter des soucis futurs :
La vitesse de ta calculatrice dépend de son modèle et de sa mémoire libre.
Ainsi, un chrono parfait sur ta calculatrice ne le sera sûrement pas sur une autre.
(sinon il faut utiliser une TI84+ avec horloge intégrée)
---------------------- 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 |
|
|
|
sandro
Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Mer 05 Oct 2011, 21:12
|
|
|
C'est le seul moyen que je vois d'afficher en minutes secondes en prenant le même temps à chaque itération : si on utilise un if, à chaque passage de minute, on prend du retard. Et comme de toute façon il faut ralentir, autant bien utiliser une partie de la vitesse en trop pour augmenter la précision.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
|
|
|