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

Dumb3r3r

Ajuda

1 mensagem neste tópico

O enunciado do trabalho e o mesmo que está neste topico

    http://www.portugal-a-programar.pt/index.php?showtopic=24573

Nao sei como poderei por o passageiro "d" a aparecer no piso 0 nem como que me apareca o passageiro primeiro fora do elevador e so no instante seguinte dentro do elevador.

Preciso de ajuda tambem para retirar os passageiros no piso 1 de dentro do elevador e envialo para baixo caso existam passageiros em fila de espera.

Agradecia alguma ajuda com urgencia

import java.util.Scanner;

public class SimuladorElevador {

public static void main(String[] args) {

int t;//tempo aleatorio

int tempoSimulacao;// tempo total de simulacao

String str1="";//momentos de simulacao

String str2="";//passageiros dentro do elevador

String str3="";//passageiros fora do elevador

int proximo; //proximo passageiro

int startchar=96;// caracter tabela ascii a-1

int contaPasseiros =0;//conta passageiros no elevador

int tempoVisualizacao = 1; // tempo de Visualização

int aux; // 30% do tempo de simulação

int veloElevador = 3; // Velocidade do elevador

int aux1;

t=(int)Math.floor(Math.random()*10+1);//t inicial

proximo=t;//primeiro passageiro

int soma=0;//total de passageiros

//input e condições tempo simulação

do {

Scanner teclado = new Scanner(System.in);

System.out.println("tempo de simulacao? ");

tempoSimulacao=teclado.nextInt();

if ((tempoSimulacao < 60) || (tempoSimulacao > 86400))

System.out.println ("Tempo de simulação invalido");

}

while ((tempoSimulacao < 60) || (tempoSimulacao > 86400));

// input e condições tempo visualização

do {

Scanner teclado1 = new Scanner (System.in);

System.out.println("Tempo de visualização? ");

tempoVisualizacao=teclado1.nextInt();

aux = ((tempoSimulacao * 30)/100); // Calculo 30% tempo simulação

if ((tempoVisualizacao < 1) || (tempoVisualizacao > aux))

System.out.println("Tempo de visualização invalido");

}

while ((tempoVisualizacao < 1) || (tempoVisualizacao > aux));

//input e condições velocidade elevador

do {

Scanner teclado2 = new Scanner(System.in);

System.out.println ("Velocidade do elevador? ");

veloElevador = teclado2.nextInt();

if ((veloElevador <1 ) || (veloElevador > 3))

System.out.println("Velocidade do Elevador invalida");

}

while ((veloElevador <1 ) || (veloElevador > 3));

for(int i=0;i<=tempoSimulacao;i++){//ciclo de simulacao

str1=i+":";//gerar string momentos de simulacao

if(i==proximo){//gerar novo t e calcular proximo

t=(int)Math.floor(Math.random()*10+1);//novo t

proximo=i+t;//calcular proximo passageiro

soma++;//clacula total de passageiros

if(startchar==122){//chegou a letra z

startchar=96;//posicionar em a-1

}

startchar++;//move-se na tabela ascii

if (contaPasseiros<4)//verifica limite do elevador

{

contaPasseiros++;//adiciona passageiro ao elevador

str2=str2+(char)startchar;//passageiros dentro do elevador

//System.out.println(str1+"[E] piso_0 ("+str2+")"+str3+ ", piso_1 ("+")");//output de simulacao

}

else

{

str3=str3+(char)startchar;//passageiros fora do elevador

//System.out.println(str1+"[E] piso_0 ("+")"+str3+ ", piso_1 ("+str2+")");//output de simulacao

}

}

if (contaPasseiros < 4){

System.out.println(str1+"[E] piso_0 ("+str2+")"+str3+ ", piso_1 ("+")");}

else{

System.out.println(str1+"[E] piso_0 ("+")"+str3+ ", piso_1 ("+str2+")");}

//System.out.println(str1+"[E] piso_0 ("+str2+")"+str3+ ", piso_1 ("+str2+")");//output de simulacao

}//fim ciclo simulacao

System.out.println("Total Entradas = "+soma);//output total passageiros

System.out.println(contaPasseiros);

}

}

0

Partilhar esta mensagem


Link 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