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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Reloj en C
« en: 25 Septiembre 2010, 18:31 pm »

Bueno el caso es que creeo que esta bien, el problema es que no e consegido que el reloj deje de mostrar sus horas y minu y segundos anteriores, en la maldita shell haber si alguien me puede echar una manita.




Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5.  
  6.  
  7. void reloj(int h,int m,int s){
  8.  
  9. int i,a;
  10.  
  11.  
  12.  
  13.  
  14. for (; ;){  
  15.  
  16. for (a=0; a<=61; a++){
  17.  
  18. sleep(1000);
  19. s++;
  20.  
  21.  
  22. if (s==60){
  23.  
  24. m++;
  25. s = 0;          
  26.  
  27. }
  28.  
  29.  
  30. if (m==60){
  31.  
  32. m = 0;
  33. h++;          
  34.  
  35.  
  36.  
  37. }
  38.  
  39. if (h==24){
  40.  
  41. h = 0;
  42.  
  43. }
  44. printf("\n");
  45. printf(" H ");
  46. printf("M ");
  47. printf("S\n\n ");
  48. printf("%i %i %i\n",h,m,s);
  49.  
  50.  
  51.  
  52. }
  53.  
  54.  
  55. }
  56. }  
  57.  
  58.  
  59.  
  60.  
  61. main()
  62. {
  63.  
  64. reloj(23,59,45);
  65.  
  66.  getch();
  67.  
  68. }
  69.  
  70.  


En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: Reloj en C
« Respuesta #1 en: 25 Septiembre 2010, 19:45 pm »

hola
indeta un poco tu codigo no se entiende nada
sino me equivoco la funcion sleep esta en windows.h? como te funciona?

para borrar pantalla puedes incluir la biblioteca conio.h y usar la funcion clrscr()
lo unico malo de esta solucion es que no es portable te funcionara solo bajo windows
tambien puedes usar system("cls")

y para linux puedes usar system("clear"), creo que por esto te funciona sleep sin la biblioteca porque lo usas en linux


saludos


« Última modificación: 25 Septiembre 2010, 19:47 pm por Ari-Slash » En línea

Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Re: Reloj en C
« Respuesta #2 en: 25 Septiembre 2010, 19:54 pm »

getch esta en conio.h. pero es mejor usar getchar (); que esta en stdio.h
sleep  no esta en stdlib? o en windows?


for (a=0; a<=61; a++)

aca deberia ser a<61 o a<=60  

PD: la hora no va a ser la correcta, mas q nada vas a ver el tiempo q el el programa esta corriendo.
« Última modificación: 25 Septiembre 2010, 20:02 pm por Sr.Blanco » En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Reloj en C
« Respuesta #3 en: 25 Septiembre 2010, 20:02 pm »

sleep() es no es standard.

Saludos :P
En línea

sinsombra_666

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Reloj en C
« Respuesta #4 en: 25 Septiembre 2010, 20:12 pm »

umm me estays liando con las librerias, el codigo se copila y ejecuta perfectamente con esas librerias, pruevenlo en devc++9.9.2, lo de clrscr ya lo e provado, ya veo que no se entiende bien el codigo :

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6.  
  7.  
  8. void reloj(int h,int m,int s){  // aqui declaro la funcion con tres var tipo int hora, minuto y segundo
  9.  
  10. int i,a;  // declaro var locales para mi funcion, que se utilizan en los bucles
  11.  
  12.  
  13.  
  14.  
  15. for (; ;){  // creeo un bucle infinito como padre
  16.  
  17. for (a=0; a<=61; a++){
  18.  
  19. sleep(1000); // hasta que no pase 1 segundo s o segundo no aumentara en 1
  20. s++;
  21.  
  22.  
  23. if (s==60){  // cuando s o segundo sea 60 aumenta m, minuto y s, segundo vuelve a cero, infinitamente
  24.  
  25. m++;
  26. s = 0;          
  27.  
  28. }
  29.  
  30.  
  31. if (m==60){  // cuando m, minuto llege a 60 vuelve a 0 y aumenta en 1 h, hora
  32.  
  33. m = 0;
  34. h++;          
  35.  
  36.  
  37.  
  38. }
  39.  
  40. if (h==24){ // mas de lo mismo, ya si se comprende no
  41.  
  42. h = 0;
  43.  
  44. }
  45. printf("\n");
  46. printf(" H ");
  47. printf("M ");
  48. printf("S\n\n ");
  49. printf("%i %i %i\n",h,m,s);
  50.  
  51.  
  52.  
  53. }
  54.  
  55.  
  56. }
  57. }  
  58.  
  59.  
  60.  
  61.  
  62. main()
  63. {
  64.  
  65. reloj(23,59,45); // invoco a la funcion h, hora m, minuto s, segundo
  66.  
  67.  getch();
  68.  
  69. }
  70.  
  71. // Creo que ya quedo claro
  72.  


mas sobre el borrado de pantalla;

El problema con estas funciones es que al hacerlo en tiempo real (es obligatorio no se puede pausar) printf si que manda las var por pantalla, pero no se ven.


ejemplo;

Código
  1.  
  2. clrsrc();
  3.  
  4. printf("\n");
  5. printf(" H ");
  6. printf("M ");
  7. printf("S\n\n ");
  8. printf("%i %i %i\n",h,m,s);  // no se veria nada
  9.  
En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: Reloj en C
« Respuesta #5 en: 25 Septiembre 2010, 20:17 pm »

no le has asignado ningun valor a la variable i

edito: perdon por este comentario, me confundi estaba pensando en php xD
« Última modificación: 26 Septiembre 2010, 00:51 am por Ari-Slash » En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Reloj en C
« Respuesta #6 en: 25 Septiembre 2010, 20:39 pm »

Es que el código tiene montones de fallos que tu compilador nunca te dirá que están mal, porque el que usas es una birria.

Saludos :P
« Última modificación: 25 Septiembre 2010, 20:43 pm por Horricreu » En línea

sinsombra_666

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Reloj en C
« Respuesta #7 en: 26 Septiembre 2010, 00:23 am »

Citar
no le has asignado ningun valor a la variable i

noo, el codigo en principio no se parecia nada a este, vamos con el que empeze por eso tal vez deje hay la var i que antes se utilizava en otro bucle for.


Citar
Es que el código tiene montones de fallos que tu compilador nunca te dirá que están mal, porque el que usas es una birria.

Explicate a mi no me vale que me digas que tiene montones de errores y que el copilador que lleva dev es malo, si no explicas porque ?¿?¡
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Reloj en C
« Respuesta #8 en: 26 Septiembre 2010, 00:42 am »

A ver, por ejemplo:

  • Declaras main() en vez de int main(). En los compiladores antiguos no te dará error pero en los actuales, y buenos, sí. Recuerda que debe retornar un entero.
  • No sé porque incluyes la librería stdlib. No la necesitas.
  • Utilizas una función de la librería conio sin haber declarado dicha librería.
  • Tampoco sé porque no te da error en la función sleep().

Saludos :P
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Reloj en C
« Respuesta #9 en: 26 Septiembre 2010, 00:46 am »

No se pero te recomiendo que leas un tuto o un libro porque al parecer fuiste recogiendo codigo... es bien extraño que alguien añada una libreria que no va a utilizar y deje fuera otra que si necesita.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reloj - Móvil
Dispositivos Móviles (PDA's, Smartphones, Tablets)
ANDREAS10 0 1,710 Último mensaje 1 Junio 2011, 13:29 pm
por ANDREAS10
El reloj sólo va de las 13:30 a las 14:30
Dudas Generales
Azhag_el_Carnicero 3 3,705 Último mensaje 28 Diciembre 2011, 19:23 pm
por Azhag_el_Carnicero
[Batch] Reloj « 1 2 »
Scripting
Geormarsch 13 7,644 Último mensaje 19 Enero 2012, 09:25 am
por $Edu$
El reloj de los 10 millones
Noticias
wolfbcn 1 2,039 Último mensaje 10 Septiembre 2012, 21:12 pm
por Martin-Ph03n1X
Reloj checador
Programación Visual Basic
_vicho_ 0 1,898 Último mensaje 10 Mayo 2013, 20:02 pm
por _vicho_
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines