Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1473 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] calcul d'un intervalle de temps

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] calcul d'un intervalle de temps

n°124001
Aricoh
gentil mais fo po pousser
Posté le 10-04-2002 à 08:21:26  profilanswer
 

Hello,
 
je cherche un moyen en C de calculer un intervalle de temps entre 2 opérations. Le résultat devrait m'afficher le temps avec les secondes MAIS AUSSI avec les dixièmes et les centièmes
 
Quelqu'un a-t-il une idée (avec un little example si bleussipo) ?
 
Merci !


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
mood
Publicité
Posté le 10-04-2002 à 08:21:26  profilanswer
 

n°124008
Cherrytree
cn=?
Posté le 10-04-2002 à 08:42:19  profilanswer
 

Ben, je dirais (mais je suis pas spécialiste du C) que le temps de calcul entre deux opérations ne peut se faire qu'en récupérant la date système avant, puis la date système après. Reste à faire la soustraction. Problème est-ce que ces opérations ne vont sensiblement dégrader les perf...

n°124011
Aricoh
gentil mais fo po pousser
Posté le 10-04-2002 à 08:46:10  profilanswer
 

J'apporte qq précisions supplémentaires.
 
C'est un pote qui doit réaliser un programme calculant le temps de réponse moyen d'un utilisateur.
 
Genre printf("question posée" ), puis scanf de ce que le user retourne et entre ces deux expressions, il doit calculer le temps qui s'est écoulé entre l'affichage (printf) de la question et la réponse (scanf).
 
Il a essayé avec la fonction difftime() mais avec cette fonction, il ne récupère semble-t-il que les secondes alors que lui cherche aussi à récupérer un résultat + précis


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°124012
Cherrytree
cn=?
Posté le 10-04-2002 à 08:48:02  profilanswer
 

Il doit y avoir moyen de récupérer un équivalent du TIMESTAMP comme en SQL. Je peux pas mieux te dire, mais il doit y avoir moyen. Pourquoi est-ce que voulez mieux que la seconde comme unité de temps ?

n°124014
Aricoh
gentil mais fo po pousser
Posté le 10-04-2002 à 08:50:17  profilanswer
 

Cherrytree a écrit a écrit :

Pourquoi est-ce que voulez mieux que la seconde comme unité de temps ?  



C'est un exo qu'il a à rendre cette semaine, le sujet est de calculer le temps moyen de réponses posées à un utilisateur lambda. Précision du retour = en secondes + centièmes


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°124017
HelloWorld
Salut tout le monde!
Posté le 10-04-2002 à 08:54:18  profilanswer
 

T'es sous quel OS ?
Sous Windows, tu peux utiliser GetTickCount();
Tu fais comme l'as dit Cherrytree : un premier GetTickCount(), tu executes ton code, puis un second GetTickCount() auquel tu soustrait le premier. Tu obtiens le nombre de millisecondes ecoulees.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°124018
Cherrytree
cn=?
Posté le 10-04-2002 à 08:54:34  profilanswer
 

Ouais, mais la précision porte sur la moyenne, je ne pense pas que votre prof vous réclame les centièmes pour chaque requête, a priori sur des printf, scanf la précision est plutôt de l'ordre de la seconde.

n°124022
Aricoh
gentil mais fo po pousser
Posté le 10-04-2002 à 09:03:22  profilanswer
 

Mon pote est sous Windows
la fonction GetTickCount() appartient à quelle librairie ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°124024
HelloWorld
Salut tout le monde!
Posté le 10-04-2002 à 09:11:26  profilanswer
 

C'est dans windows.h
Mais si c'est un exo du prof alors je pense pas que ce soit une bonne idee
d'utiliser cette fonction
Essaie de te depatouiller avec les fonction standard ;)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°124085
Carbon_14
Posté le 10-04-2002 à 10:38:51  profilanswer
 

Et en essayant GetTime() (issu du (bon)vieux DOS) ?
Syntax
 
#include <dos.h>
void gettime(struct time *timep);
 
Description
 
Gets the system time.
gettime fills in the time structure pointed to by timep with the system's current time.
 
The time structure is defined as follows:
 
struct time {
   unsigned char ti_min;      /* minutes */
   unsigned char ti_hour;     /* hours */
   unsigned char ti_hund;     /* hundredths of seconds */
   unsigned char ti_sec;      /* seconds */
};

mood
Publicité
Posté le 10-04-2002 à 10:38:51  profilanswer
 

n°124121
ITM
Avatar peint à la main
Posté le 10-04-2002 à 12:15:57  profilanswer
 

NON TESTE mais ca devrait marcher quand même :
----------------------------------------------
 
#include <time.h>
#include <stdio.h>
 
void main(void) {
  clock_t start; //le chrono pour le début
  double the_time;
 
  start = clock(); //on lance le compteur
 
  LA_FONCTION_QUI_PREND_UN_CERTAIN_TEMPS();
 
  //on recupere le temps mainenant!
  the_time = (double)(clock()-start)/(double)(CLOCKS_PER_SEC);
   
  //the_time contient maintenant le temps en secondes!
  printf("Temps : %lf", the_time);
 
  return;
}

 

[jfdsdjhfuetppo]--Message édité par ITM--[/jfdsdjhfuetppo]


---------------
iteme.free.fr | Mon feedback
n°124131
Carbon_14
Posté le 10-04-2002 à 12:40:09  profilanswer
 

Le point à vérifier sera (faut voir avec chaque fonction "temps" ) la granularité des infos. :fou:  
 
Les fonctions qui se basent sur les ticks de l'horloge du 8253 font des bonds de 53 et qq millisecondes (sais plus exactement). On trouve donc 53, 106, 159, .. millisec. Les affichages avec des "tas de décimales" sont le résultat d'une division.
Si les durées sont longues, ça gène moins.
 
Faut tester avec boucles en faisant croître le nombre de tours. Ca permet de voir si ça semble réaliste, puis l'adopter. :love:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] calcul d'un intervalle de temps

 

Sujets relatifs
Demarrer plusieurs programmes en même tempsCALCUL UN NOMBRE ALEATOIRE
[c++] temps d'executionCréation emploi du temps sous oracle - ki a fait?????????????
[C++] Calcul automatique de pointsou trouver un prog pour stopper le temps ds un jeu (java)?
[ Perl, DBI, MySQL ] temps de validité de la methode connect de DBI[VB] Ecrire sur 3 tables a la fois et en même temps ?
logiciel temps réelDelphi / DirectPlay ! Aidez moi j'ai plus beaucoup de temps !
Plus de sujets relatifs à : [C] calcul d'un intervalle de temps


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR