Programación General > C/C++

 Como creo un cronometro

(1/1)

goyo05:
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:
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:
¿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 --- int segundos;for(segundos=0, segundos <=10000, segundos++){Sleep(1);printf("%dn", segundos);/* 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*/   


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:
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 --- #include <stdio.h>#include <ncurses.h>#include <unistd.h> int d=0; int main(){  char a;  initscr();  echo();  printw("Cronometro en segundos, pulse P  para parar:n");   do{    cronometro();    refresh();  }while ((a=getch()) != 'P');   printw("nPulse un tecla para salir.");  getch();  endwin();   return 0;} int cronometro(){  int e=d;   for (d; d < e+1 ; ++d){  printw("%dn", d);  sleep(1);  refresh();  }  return 0;  }   



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


--- Código: C --- #include <stdio.h>#include <windows.h>#define LIMIT 36000 /*10 horas*/#define DXG(a) ((a) / 60) int main(){unsigned it, b = 0;       for(it = 0; it < LIMIT; )    {      Sleep(1000);           b += GetAsyncKeyState(VK_LSHIFT);      if(b == 1) continue;                    printf("%02d:%02d:%02dn", DXG(it)/60, DXG(it)%60, it % 60 );           it++;      b = 0;     } return 0;}  
P.D: Este código no es mío, lo encontre un Google, un tal cheroky.

goyo05:
Gracias...A todos por su colaboracion fueron de mucha utilidad para darme una idea como hacerlo....Saludos

Navegación

[0] Índice de Mensajes

Ir a la versión completa