• Martes 16 de Abril de 2024, 09:44

Autor Tema:  Uso De Delay  (Leído 6022 veces)

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Uso De Delay
« en: Lunes 19 de Mayo de 2008, 22:32 »
0
hola, necesito usar la funcion delay que da la libreria winbgim, pero el  problema es que estoy trabajando co la libreria conio.h en el dev c++.

lo que necesito es algo asi cono escribir el nombre Gerardo, pero que cada letra salga cada 2 segundos.

por favor si alguien me puede ayudar para hacerlo con la libreria conio.h en dev c++.


desde ya muchas gracias, sludos

Riskz

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Uso De Delay
« Respuesta #1 en: Lunes 19 de Mayo de 2008, 23:36 »
0
Con conio ni idea, con time seria algo asi:

1) Creas dos variables time_t
2) Creas una variable int para almacenar el numero de letra a imprimir
3) En un ciclo for (que aumenta en 1 el valor de letra y comprueba que sea menor a 7)
   - Le asignas la hora actual a ambas variables time_t (funcion time)
   - En la condicion de un while compruebas que la diferencia entre ambas horas obtenidas sea menor que 2 (funcion difftime). Mientras sea menor, vuelves a asignarle la hora actual a una de las variables
   - Mediante un switch escribes la letra correspondiente (0=G,1=e,2=r...)

Te lo puse asi para que intentes hacerlo tu... Si no sabes como hacer algo o no es lo que necesitas avisame, que yo lo tengo hecho

Saludos

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Uso De Delay
« Respuesta #2 en: Lunes 19 de Mayo de 2008, 23:50 »
0
gracias por tu respuesta, pues aun no nos enseñan el uso de la libreria time.h esto es mas que nada algo que quiero aprender por mi cuenta, te aghradeceria si me puedieras enviar ese ejemplo por mensaje privado o dejandolo aqui y asi veo como integro esa funcion en el trabajo que me pidieron.

pd: te pido esto por que no tengo inet en mi casa aun, y me tomaria mucho tiempo probar y depues volver a la u para responder xD


desde ya muchas gracias por tu ayuda.

y si sabes donde puedo conceguir algun tutorial para aprender a usar la libreria winbgim te estaria muy agradecido:

bye   :comp:  :comp:

Riskz

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Uso De Delay
« Respuesta #3 en: Martes 20 de Mayo de 2008, 01:19 »
0
Aca te dejo el codigo, fijate si es lo que te sirve. Yo lo probe y anda
(cabe aclarar que no tengo mucho conocimiento de time.h, asi que quizas hay alguna forma mas facil de hacerlo)

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <time.h>
  4.  
  5. main() {
  6.        time_t hora_obtenida, hora_actual;
  7.        int letra;
  8.        
  9.        for(letra=0;letra<7;letra++) {
  10.                                     hora_actual=time(NULL);
  11.                                     hora_obtenida=time(NULL);
  12.                                     while(difftime(hora_actual,hora_obtenida)<2) {
  13.                                                                                  hora_actual=time(NULL);
  14.                                                                                  }
  15.                                     switch(letra) {
  16.                                                   case 0:printf("G"); break;
  17.                                                   case 1:printf("e"); break;
  18.                                                   case 2:printf("r"); break;
  19.                                                   case 3:printf("a"); break;
  20.                                                   case 4:printf("r"); break;
  21.                                                   case 5:printf("d"); break;
  22.                                                   case 6:printf("o"); break;
  23.                                                   }
  24.                                     }
  25.        getch();
  26.        return 0;
  27. }
  28.  
  29.  

De winbgim no se nada, y en google me cuesta encontrarte un tutorial o algo
Si lo que queres es dibujar en pantalla o cosas parecidas tenes allegro, una biblioteca que en realidad es para hacer videojuegos, tiene funciones de dibujado, timer (de hecho este ejemplo es mas facil en allegro).

Si queres agregame a feedeee@ y te ayudo a aprender allegro o lo q sea
(no puedo mandarte MP pq no sos miembro activo creo)

Saludos =)

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Uso De Delay
« Respuesta #4 en: Martes 20 de Mayo de 2008, 09:37 »
0
Hola,
¿no existe la función Sleep?  la verdad es que no tengo ni idea si existirá o no (programo con Visual Studio bajo windows), pero hay una gran diferencia entre un sleep o un delay y una espera por código como explica el amigo Riskz.
Me explico, un proceso que retrasa su ejecución mediante una espera activa tipo sleep, es un proceso que no consume recursos, es un proceso que es sacado literalmente de la cpu a la espera de que pase ese tiempo para volverlo a meter en la CPU... Una espera tipo bucle, es un proceso mal diseñado, que consume recursos continuamente sin necesidad alguna... Supongamos que ese proceso se ejecuta con prioridad 32 (máxima) bajo windows y que tienes otro proceso con similar código de espera también ejecutándose en paralelo y con prioridad 32 (o que ese mismo proceso tiene dos hilos que heredan la prioridad 32 y haces la espera por código), en ese momento dejarías tu sistema totalmente colgado a la espera de que ambos terminen su espera....

En fin, te recomiendo que sigas buscando...
Un saludo,
 :lightsabre:
No hay tonto más molesto que el ingenioso.

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Uso De Delay
« Respuesta #5 en: Martes 20 de Mayo de 2008, 18:44 »
0
Cita de: "Riskz"
Aca te dejo el codigo, fijate si es lo que te sirve. Yo lo probe y anda
(cabe aclarar que no tengo mucho conocimiento de time.h, asi que quizas hay alguna forma mas facil de hacerlo)

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <time.h>
  4.  
  5. main() {
  6.        time_t hora_obtenida, hora_actual;
  7.        int letra;
  8.       
  9.        for(letra=0;letra<7;letra++) {
  10.                                     hora_actual=time(NULL);
  11.                                     hora_obtenida=time(NULL);
  12.                                     while(difftime(hora_actual,hora_obtenida)<2) {
  13.                                                                                  hora_actual=time(NULL);
  14.                                                                                  }
  15.                                     switch(letra) {
  16.                                                   case 0:printf("G"); break;
  17.                                                   case 1:printf("e"); break;
  18.                                                   case 2:printf("r"); break;
  19.                                                   case 3:printf("a"); break;
  20.                                                   case 4:printf("r"); break;
  21.                                                   case 5:printf("d"); break;
  22.                                                   case 6:printf("o"); break;
  23.                                                   }
  24.                                     }
  25.        getch();
  26.        return 0;
  27. }
  28.  
  29.  

De winbgim no se nada, y en google me cuesta encontrarte un tutorial o algo
Si lo que queres es dibujar en pantalla o cosas parecidas tenes allegro, una biblioteca que en realidad es para hacer videojuegos, tiene funciones de dibujado, timer (de hecho este ejemplo es mas facil en allegro).

Si queres agregame a feedeee@ y te ayudo a aprender allegro o lo q sea
(no puedo mandarte MP pq no sos miembro activo creo)

Saludos =)
muchas gracias, esto es exactamente lo que estaba buscando, aunque me dijo la profe que solo puedo usar la lib conio el trabajo que ya entregue (esto era solo para hacer mas bonito mi trabajo).


de todos modos muchas gracias, ya le encontrare alguna aplicacion en mi ramo a este ejemplo que me has dado.

gracias, y apenas tenga inet en mi casa te agrego para me des una ayuda en lo que es dibujar en c++.


saludos

fdxx

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Uso De Delay
« Respuesta #6 en: Miércoles 21 de Mayo de 2008, 16:03 »
0
Probaste la funcion "sleep()" ?

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Uso De Delay
« Respuesta #7 en: Jueves 22 de Mayo de 2008, 09:57 »
0
Citar
Probaste la funcion "sleep()" ?
Está claro que no.
Utz si me haces una espera así y soy tu profesor te pongo el cero más grande que nunca hayas visto...  Sigue mi consejo, no detengas la ejecución de tus programas con ese método.

Un programa que está en constante ejecución y que no usa eventos para detenerse es un programa que necesita pausas... Incluso una pausa de Sleep(0) es bien recibida por el SO para deshaogar un poco la gestión de procesos, pues aunque no lo parezca un Sleep(0) saca a tu proceso de la CPU para permitir que otro de igual prioridad entre...  Además el SO te lo va a agradecer favoreciendo a tu proceso pues es un programa que no acapara la CPU y Windows te va a dar un empujoncito.  :D
En fin, lo único que quiero que tengas claro es que un Sleep() es mucho más que una simple espera...

Un saludo,
 :lightsabre:
No hay tonto más molesto que el ingenioso.

utz

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Uso De Delay
« Respuesta #8 en: Jueves 22 de Mayo de 2008, 18:40 »
0
gracias por tu consejo carmamezo, aunque ahora no entiendo mucho (soy nuevo en esto de la programacion), pero se que tu comentario me servira en un futuro proximo.

saludos