elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con temporizador en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con temporizador en C++  (Leído 13,423 veces)
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #10 en: 7 Julio 2013, 01:30 am »

Si prefieres un for aquí lo tienes a lo ansi. XD
Código
  1. #include <iostream>
  2. void funcionEspera(int);
  3. int segundosEspera = 3;
  4. void funcion1(void);
  5. void funcion2(void);
  6. void funcion3(void);
  7.  
  8. int main()
  9. {
  10. funcion1();
  11. funcionEspera(2);
  12. funcion1();
  13. funcionEspera(segundosEspera);
  14. funcion2();
  15. funcionEspera(segundosEspera);
  16. funcion3();
  17. funcionEspera(3);
  18. return 0;
  19. }
  20. void funcionEspera(int segundosEspera)
  21. {
  22.      for(time_t i = (time(NULL) + segundosEspera); time(NULL) != i;);
  23. }
  24. void funcion1(void)
  25. {
  26. std::cout << "Asi te servira, espera..." <<std::endl;
  27. }
  28. void funcion2(void)
  29. {
  30. std::cout << ":)";
  31. std::cout <<std::endl << "introduce un numero para esperar por ultima vez el tiempo que indiques:";
  32. std::cin >> segundosEspera;
  33. }
  34. void funcion3 (void)
  35. {
  36. std::cout << std::endl << "Chau SrCooper xDDD";
  37. }


En línea

I like to test things.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #11 en: 7 Julio 2013, 01:37 am »

¿? Eso es como si pusieras un rest(3000) pero más complicado y con mucho peor rendimiento xD.

Pero sí, es muy imaginativo  ;)


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #12 en: 7 Julio 2013, 01:41 am »

¿? Eso es como si pusieras un rest(3000) pero más complicado y con mucho peor rendimiento xD.

Pero sí, es muy imaginativo  ;)
¿rest de que librería es? Así lo implemento en un par de códigos. :P
Lo bueno es que así el usuario puede seleccionar el tiempo a esperar (en caso de que se necesitara).
En línea

I like to test things.
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #13 en: 7 Julio 2013, 01:47 am »

¿rest de que librería es? Así lo implemento en un par de códigos. :P
Lo bueno es que así el usuario puede seleccionar el tiempo a esperar (en caso de que se necesitara).
rest es de Allegro pero tiene su equivalente en cualquier librería/SO:

- Windows API:

Código
  1. #include <windows.h>
  2.  
  3. Sleep(milisegundos); // duerme unos milisegundos

- Linux:

Código
  1. #include <pthread.h>
  2.  
  3. sleep(milisegundos); // La S aqui es minuscula

- SDL:

Código
  1. SDL_Delay(milisegundos);


Manejar el tiempo durmiendo es mucho más eficiente que contar el tiempo, al dormir el SO puede usar el procesador en otras cosas  ;)
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #14 en: 7 Julio 2013, 01:50 am »

rest es de Allegro pero tiene su equivalente en cualquier librería/SO:

- Windows API:

Código
  1. #include <windows.h>
  2.  
  3. Sleep(milisegundos); // duerme unos milisegundos

- Linux:

Código
  1. #include <pthread.h>
  2.  
  3. sleep(milisegundos); // La S aqui es minuscula

- SDL:

Código
  1. SDL_Delay(milisegundos);


Manejar el tiempo durmiendo es mucho más eficiente que contar el tiempo, al dormir el SO puede usar el procesador en otras cosas  ;)
Cierto! Para Sdl me viene bien. ;)
Saludos y gracias! 
En línea

I like to test things.
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Duda con temporizador en C++
« Respuesta #15 en: 7 Julio 2013, 02:21 am »

http://c.conclase.net/librerias/index.php?ansilib=time#inicio aquí tienes !
Espero que te sirva, creo que es mejor que usar una libreria que puede que incluya cosas no necesaría digo yo.



La verdad es que no entiendo muy bien todo eso de DWORD, LPVOID y lpParam. ¿Qué significan exactamente?
Creo que son typedef de VS en plan;

typedef unsigned int Uint
Uint x=5;//Bien
Uint x= -1; Mal solo acepta positivos.
« Última modificación: 7 Julio 2013, 02:25 am por Xafi » En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #16 en: 7 Julio 2013, 04:55 am »

typedef unsigned int Uint
Uint x=5;//Bien
Uint x= -1; Mal solo acepta positivos.
No. La ultima asignación es valida (operaciones de ese tipo pueden causar un verdadero dolor de cabeza).

Ello porque si un valor esta fuera del rango valido (tipo entero sin signo) a este se le suma (o resta, dependiendo del caso) MAX + 1 hasta que este en el rango valido.

Por cierto el ejemplo que pones es la forma usual para calcular el valor máximo sin tener que utilizar el encabezado <limits.h>. Un ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4.  
  5. int main(void)
  6. {
  7.   /* Imprime el valor maximo para el tipo unsigned int */
  8.   printf("%u\n", (unsigned) -1);
  9.   printf("%u\n", UINT_MAX);
  10.  
  11.   /* Imprime el valor maximo para el tipo unsigned long */
  12.   printf("%lu\n", (unsigned long) -1);
  13.   printf("%lu\n", ULONG_MAX);
  14.  
  15.   return EXIT_SUCCESS;
  16. }

Otro escenario problemático son las expresiones donde se utilizan valores de tipo signed y unsigned. Por ejemplo este programa en C:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.   int a = -1;
  7.   int b = 0;
  8.   unsigned x = 0;
  9.  
  10.   printf("%d < %d  ? %s\n", a, b, a < b ? "Si" : "No");
  11.   printf("%d < %uU ? %s\n", a, x, a < x ? "Si" : "No");
  12.  
  13.   return EXIT_SUCCESS;
  14. }

Genera la salida:
Código:
-1 < 0  ? Si
-1 < 0U ? No

Ello porque los operandos de un operador binario deben ser del mismo tipo, en este caso el valor -1 de tipo signed int se convierte automáticamente al tipo unsigned int resultando en el valor mencionado (el máximo) y solo entonces se realiza la comparación.

Y si bien un compilador en modo estricto puede generar un mensaje de advertencia al compilar ese programa (o uno similar) ello no esta garantizado (y a veces uno las desactiva al saber que son inocuas).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
SrCooper

Desconectado Desconectado

Mensajes: 137


Bazinga!


Ver Perfil
Re: Duda con temporizador en C++
« Respuesta #17 en: 7 Julio 2013, 12:29 pm »

Si prefieres un for aquí lo tienes a lo ansi. XD

Está bien el código, pero como dice amchacon, hace exactamente lo mismo que un rest(). Y el rest es completamente inútil en un videojuego, porque para todo el bucle y es imposible jugar :D

Al final me he decantado por aprender hilos y poner el rest en segundo plano.

Un saludo
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] Assemebler Temporizador
Electrónica
julyos 0 2,110 Último mensaje 20 Junio 2005, 02:16 am
por julyos
Temporizador en BATCH
Scripting
zhynar_X 8 14,246 Último mensaje 8 Mayo 2007, 15:34 pm
por nhaalclkiemr
Temporizador
Programación C/C++
Bledniss 4 4,974 Último mensaje 29 Abril 2011, 03:39 am
por Destro-
Temporizador en C
Programación C/C++
PeKiN 2 5,473 Último mensaje 9 Junio 2011, 21:51 pm
por PeKiN
temporizador
PHP
kakashi20 1 2,841 Último mensaje 15 Marzo 2012, 19:31 pm
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines