Forum

Catégorie : Programmes
Forum : Aide à la programmation
Vues : 2334
Réponses : 4
Type : discussion
Etat : réponses autorisées

Faire attendre quelques secondes le programme ?

ST4LK3|ER le 07/12/2014 à 10:01
Salut a tous !
Voila je souhaite mettre "un mot de passe" sur ma ti82 stat fr.
Pour le moment tout le programme marche a merveille : si on donne le bon mot de passe, "bienvenue !" apparait, sinon c'est "Faux, dégage" qui apparait. J'aimerais faire attendre la calculatrice pendant 15/20secondes si le mdp est faux, c'est possible ?
Merci d'avance
Mingerton le 07/12/2014 à 10:08
Salut ST4LK3|ER happy.gif

Il est possible de faire attendre une durée déterminée en TI-Basic en effectuant des calculs assez longs :
Code
//code faux :
69!:69!                 // ajouter cette commande autant de fois que voulu pour le temps
...

Le point d'exclamation est le signe de la factorielle, et la factorielle de 69 est la plus grande et la plus longue à calculer à pouvoir être affichée par la calculatrice.

Si le but est que le message soit lu, il est aussi possible de mettre une Pause dans le code
Code
//code faux :
Pause
...

La Pause stoppera le code et l'affichage jusqu'à ce que l'utilisateur appuie sur Enter.

Si tu as des questions où si tu veux des techniques différentes ou plus avancées, demande moi ! winkle.gif
linkakro le 07/12/2014 à 12:52
Temporiser un certain temps est possible en ocupant la calculatrice : elle exécute quelque chose et pendant ce temps elle n'exécute pas le reste.
Le calcul de factorielle 69! est assez efficace, mais pour des dizaines de secondes une boucle est un meilleur choix pour les réglages et le poids du code.
Code
For(W,0,1000):End
Augmente la valeur 1000 pour augmenter la durée. Ou le contraire.

Mais la calculatrice peut être plus ou moins rapide selon le modèle et sa mémoire vive disponible.
La ti84plus a une horloge. Les précédentes n'en ont pas. Donc il est impossible d'imposer une durée précise avant la ti84plus.
ST4LK3|ER le 07/12/2014 à 14:25
Merci beaucoup pour vos réponses, ici 1000= 10sec environ ? J'ai pour le moment 25795o de mémoire. Sinon pour la première méthode le 69! est de 1sec/ligne ?
linkakro le 07/12/2014 à 15:31
Non. Tu devras tester toi même la durée.
Une 82statsfr virtuelle a exécuté 3000 itérations en 9 secondes à une seconde près.

Je n'ai pas averti à propos de la variable compteur : n'utilise pas W pour autre chose. Choisis une lettre pas utilisée au même moment.

Pour être un peu plus précis sur le critère mémoire vive, sache que la calculatrice réorganise les variable à chaque création, suppression ou redimensionnement de variable, donc plus il y a de variables et plus cela peut prendre de temps.

Quand je parle de mémoire vive, je pense aussi à la mémoire empilée à chaque ouverture de bloc algorithmique ou routine.
Si tu ne vois pas ce que je veux dire, testes simplement un programme A qui contient un affichage et prgmA : tu verras le programme ralentir et tu auras une erreur mémoire qui mettra fin au programme. C'est un concept dangereux mais une calculatrice TI retourne justement un message par sécurité en TI-Basic.

La tension des piles a aussi la réputation d'influer, mais je ne l'ai pas constaté.