Ir para o conteúdo
  • 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

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.