Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

AnaCal

Ciclo que intercala tempos, nao da para todos os casos

Recommended Posts

AnaCal

O programa que estou a tentar fazer com base em tempos random cria utilizadores e atribui aos mesmos um tempo de espera para depois leva los a caixa.

Se o tempo random for 4, dai a 4 segundos ele cria um utilizador. Todas as instancias dos clientes estou a guarda las num vector dinamico. Este ciclo em baixo (um das ultimas tentativas) tenta ver se enquanto esta a decorrer o tempo de criaçao de um cliente, o tempo de espera de outro, anteriormente criado, acabou para coloca lo na caixa (metodo fimespera da classe Eventos)


for(int i=0; i< vector_Clientes.size(); i++){
				if(r_criacaocliente1 >= r_temporecolha){
					aux_tempocriacao = r_criacaocliente1;					// aux
					aux_tempocriacao -= r_tempoespera;
					Eventos::wait(r_tempoespera);
					Eventos::fimespera();
					Eventos::wait(aux_tempocriacao);
					clientesquesairam++;
					break;
				}else if(r_criacaocliente1 < r_tempoespera){
					Eventos::wait(r_criacaocliente1);
					//aux_tempoespera = r_tempoespera;
					aux_tempoespera -= r_criacaocliente1;
					Eventos::fimespera();
				}
			}
             inst_cliente= new Cliente();									// Cria um cliente			
             vector_Clientes.push_back(inst_cliente);						// Guarda no vector dinamicamente

sei que esta confuso e mal programado mas alguem me pode ajudar?

Share this post


Link to post
Share on other sites
falk0n

Por acaso tens o vector ordenado pelo menor tempo ?

Se tiveres é só verificar qual o tempo do menor elemento.

Podes criar uma thread para verificar qual o que tem menor tempo.

Como não conheço essa parte de eventos que mostraste não tenho uma ideia correcta de como estás a controlar o fluxo de criação e de dispatch dos eventos.

Boas programações

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.