Mesurer le temps de réaction.
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Mesurer le temps de réaction.



  1. #1
    invite4c038c24

    Unhappy Mesurer le temps de réaction.


    ------

    Bonjour!

    Je suis débutant dans le C++ (je compile avec dev-C++) et j'ai quelques questions a poser...
    Assez courtes ne vous inquiétez pas....

    Comment créer une boucle qui ne sera interrompue que quand l'opérateur du logiciel va appuyer sur entrée?

    Dans mon cas, je programme un mesureur de reflexes...
    J'ai crée un chronomètre, qui n'est en faite qu'une boucle faisant afficher des nombres successifs avec sauts de ligne a chaque fois.
    Je voudrais qu'elle s'interrompe quand l'opérateur appuie sur entrée, mesurant son temps de réaction.

    Le projet final devra avoir: Un générateur de variables aléatoires pour faire commencer le chrono au bout d'un nombre de secondes aléatoir (entre 10 et 25 par exemple)... la aussi j'ai du mal, le générateur de variables alétatoires ne devrait pas poser de problèmes mais comment associer a ces valeurs un certain nombre de secondes?
    Y a t'il des fonctions deja existantes comme "Attendre i secondes"
    ou déclencher un chronomètre?

    Merci d'avance, et désolé pour ces questions qui paraitront evidentes a beaucoups... .

    Je conseille ce projet a tous les programmeurs débutants il est vraiment sympa a faire et doit faire beaucoups progresser.

    Kaz

    -----

  2. #2
    g_h

    Re : Mesurer le temps de réaction.

    Il ne me semble pas qu'il existe une fonction en C++ standard qui attende que l'utilisateur appuie sur une touche pour continuer.
    Ceci dit je n'en suis pas sur à 100%. En C standard ça n'existe pas. En C++ ça m'étonnerai.

    Si quelqu'un peut confirmer, alors il faudra que tu utilises au choix :
    - un extension non standard (regarde si Dev-C++ te propose getch(), kbhit()... ), attention si tu veux faire du code portable.
    - une librairie (curses ?)


    Pour générer des nombres aléatoires compris entre 0 et x :

    #include <cstdlib>
    using namespace std;

    Et pour récupérer une valeur (tu peux en faire une fonction) :
    (unsigned)((double)rand()/((double)RAND_MAX+1)*x);

    Note que cette notation assez compliquée est faite pour avoir des valeurs un peu plus aléatoires que si tu avais utilisé rand plus simplement.

    Ne pas oublier le
    srand(time(NULL)); en début de programme pour initialiser le générateur.

    et le #include <ctime> qui va avec

    Pour "attendre i secondes" tu as
    - sleep dans unistd.h si tu fais du C (parametre en secondes)
    - Sleep dans Windows.h (parametre en millisecondes) mais seulement si tu es sous Windows donc

    Les spécialistes du C++ te diront peut-être si il existe une fonction sleep propre au C++.
    Si tu ne trouves pas tu peux très bien utiliser les 2 que j'ai citées.

    Et quelque chose qui n'engage que moi : je pense que le C est plus simple que le C++ sur bien des points (une fois qu'on maîtrise le C on peut bien mieux apprécier les ajouts du C++)

Discussions similaires

  1. chronometre capable de mesurer plusieurs temps
    Par invited3729a0c dans le forum Électronique
    Réponses: 0
    Dernier message: 17/11/2007, 14h51
  2. Temps de réaction
    Par invitefa165ff8 dans le forum Chimie
    Réponses: 4
    Dernier message: 21/03/2007, 22h04
  3. mesurer-calculer le temps de réponse d'un relais avec un compteur
    Par invite8958b497 dans le forum Électronique
    Réponses: 5
    Dernier message: 24/05/2006, 18h58
  4. 1 appareil pr mesurer 1 temps
    Par invite03934d84 dans le forum TPE / TIPE et autres travaux
    Réponses: 2
    Dernier message: 22/04/2006, 00h14
  5. mesurer la déformation de l'espace-temps
    Par Seirios dans le forum Physique
    Réponses: 67
    Dernier message: 27/10/2005, 19h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.