Ayuda con la vida de una variable.

nigger
02 de Agosto del 2004
Hola.
Tengo un problemilla en C. Resulta que necesito hacer un programa que mantenga viva una variable durante cierto tiempo.
El objetivo del programa es simular una cadena de Markov y funciona así:
Yo tengo un vector que contiene datos aleatorios que representan tiempos de ejecución. Entonces necesito por ejemplo que para el primer valor digamos 15 se encienda la variable P0. P0 tiene un tiempo medio de vida de 20. Cuando el tiempo de 15 sea cumplido P0 vuelve a cero.

Ahora lo que tengo es P0,P1,P2,P3,P4 entonces supongase que la entrada a P0 fue en t=0, pero en t=10 se da otra entrada como el tiempo de ejecucion de la primera entrada es 15 esta nueva entrada debera encender a P1 ya que P0 esta siendo usada. El sistema continua asi sucesivamente.

Lo que necesito entonces es hacer que Pi sea 1 duarante el tiempo de ejecución de cada entrada y luego vuelva a cero para que si se da otra entrada mientras Pi esta en uno entonces ponga en uno a Pi+1.

Gracias.

juanin
02 de Agosto del 2004
En cadenas de Markov estoy un poco oxidado, pero si no entiendo mal lo que necesitas es un temporizador que te controle el tiempo que ha de permanecer cada variable activada. Si estas con Visual tienes la funcion SetTimer que te pone en marcha el temporizador con la duracion que quieras y te avisa cuando pase el tiempo. Lo malo, que tienes que usar la clase CWnd, mensajes y toda la pesca. Ademas solo vale para windows.
Si lo quieres hacer para consola, o que siga el estandar o simplemente que sea mas sencillo, lo mejor que puedes hacer es usar la libreria <ctime> (time.h). http://www.cplusplus.com/ref/ctime/
Esta te proporciona la funcion time y la difftime que te permitiran controlar los tiempos. Aunque eso si, tendras que poner un bucle comprobando constantemente el tiempo que ha transcurrido.