• Jueves 14 de Noviembre de 2024, 17:03

Autor Tema:  Como creo un cronometro  (Leído 13078 veces)

goyo05

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Como creo un cronometro
« en: Domingo 9 de Mayo de 2010, 04:51 »
0
hola ...quisiera saber si alguien conoce alguna función para crear un cronometro en c++ por que tengo que hacer programa que tome el tiempo que tarda los distintos algoritmos de ordenamiento, es decir cuando comienza a ordenar le doy play y cuando termina lo pongo en stop. Gracias

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Como creo un cronometro
« Respuesta #1 en: Lunes 10 de Mayo de 2010, 19:11 »
0
ya buscaste en internet
http://cmasomenos.blogspot.com/2008/03/ ... utina.html
http://plagatux.es/2009/02/tip-c-medir- ... ejecucion/

eso te dara una idea de implementarlo como lo necesitas

rock_neurotiko

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Como creo un cronometro
« Respuesta #2 en: Miércoles 12 de Mayo de 2010, 00:52 »
0
¿Has probado con un bucle con un sleep de un segundo, que si se pulsa una tecla para y te muestra el numero?

Código: C
  1.  
  2. int segundos;
  3. for(segundos=0, segundos <=10000, segundos++){
  4. Sleep(1);
  5. printf("%dn", segundos);
  6. /* Aqui tendría que ir algun modo de pulsar una tecla y la recibiese el bucle para parar, y eso que sin pulsar ninguna siga, eso se lo dejo a los gurús, ya que a mi también me acaba de entrar la duda*/
  7.  
  8.  
  9.  



Seguramente no sirva, o haya un metodo más facil, pero sabiendo lo que se es lo unico que se me ocurre y queria intentar ayudar ;)

rock_neurotiko

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Como creo un cronometro
« Respuesta #3 en: Miércoles 12 de Mayo de 2010, 17:08 »
0
Buscando por google mientras intentaba crearlo porque tenía un error, ya que lo tenia todo bien, salvo que me pedia pulsar una tecla todo el rato, cuando yo lo unico que quería era que si yo alguna vez lo pulsase se parase.

Este es mi código, por si algun maste puede decirme que podría sustituir al while((a=getch) != 'P')  ya que, yo funciono en Linux y no tengo la libreria conio, y por tanto la funcion getchar ni ninguna asi.

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <ncurses.h>
  4. #include <unistd.h>
  5.  
  6. int d=0;
  7.  
  8. int main()
  9. {
  10.   char a;
  11.   initscr();
  12.   echo();
  13.   printw("Cronometro en segundos, pulse P  para parar:n");
  14.  
  15.   do{
  16.     cronometro();
  17.     refresh();
  18.   }while ((a=getch()) != 'P');
  19.  
  20.   printw("nPulse un tecla para salir.");
  21.   getch();
  22.   endwin();
  23.  
  24.   return 0;
  25. }
  26.  
  27. int cronometro()
  28. {
  29.   int e=d;
  30.  
  31.   for (d; d < e+1 ; ++d){
  32.   printw("%dn", d);
  33.   sleep(1);
  34.   refresh();
  35.   }
  36.   return 0;
  37.   }
  38.  
  39.  
  40.  




Y este es el código que deberia funcionarte (con la libreria windows.h):

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #define LIMIT 36000 /*10 horas*/
  5. #define DXG(a) ((a) / 60)
  6.  
  7. int main()
  8. {
  9. unsigned it, b = 0;
  10.    
  11.     for(it = 0; it < LIMIT; )
  12.     {
  13.       Sleep(1000);
  14.      
  15.       b += GetAsyncKeyState(VK_LSHIFT);
  16.       if(b == 1) continue;        
  17.      
  18.       printf("%02d:%02d:%02dn", DXG(it)/60, DXG(it)%60, it % 60 );
  19.      
  20.       it++;
  21.       b = 0;
  22.     }
  23.  
  24. return 0;
  25. }
  26.  
  27.  

P.D: Este código no es mío, lo encontre un Google, un tal cheroky.

goyo05

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Como creo un cronometro
« Respuesta #4 en: Miércoles 12 de Mayo de 2010, 18:01 »
0
Gracias...A todos por su colaboracion fueron de mucha utilidad para darme una idea como hacerlo....Saludos