Galera seria possível algum de vocês me darem uma ajuda de como eu posso realizar o código para essas informações abaixo.?
Já tentei de varias maneiras!
Estou em uma linguagem simples ainda (While, for, do-while), (String, float, int doblue char).
Agradeço desde já!
[quote]Faça um Programa que leia o peso das pessoas que querem entrar em um elevador. A capacidade
máxima do elevador é de 15 pessoas ou 800 Kg, o que ocorrer primeiro. O programa deve ler o peso da pessoa
que deseja entrar, se a sua entrada não fizer com que seja ultrapassado qualquer um dos limites, deverá escrever:
?PODE ENTRAR?, caso contrário, ou seja, ultrapassando os limites, deverá escrever: ?NÃO PODE ENTRAR:
ELEVADOR LOTADO? e encerrar o programa, mostrando o número de pessoas transportadas e o peso total
transportado.[/quote]
Bem vindo ao fórum…
Bom, aqui nós não fazemos o exercício para os outros e sim ajudamos a pensar. (Tá…, as vezes tem as respostas prontinhas)
Temos que saber o que você fez até agora, pra podermos ajudar a partir daí. Caso você não tenha conseguido fazer nada, é melhor aprender um pouco mais, ser mais persistente e tentar um mais, afinal é quando tentamos, forçamos nossa cabeça a pensar, é que aprendemos.
[quote=igor_ks]Bem vindo ao fórum…
Bom, aqui nós não fazemos o exercício para os outros e sim ajudamos a pensar. (Tá…, as vezes tem as respostas prontinhas)
Temos que saber o que você fez até agora, pra podermos ajudar a partir daí. Caso você não tenha conseguido fazer nada, é melhor aprender um pouco mais, ser mais persistente e tentar um mais, afinal é quando tentamos, forçamos nossa cabeça a pensar, é que aprendemos.[/quote]
Eu sei que não responde exercícios li as regras.
Minha publicação é apenas me ajudar a desembolar a lógica!
Já esquentei tanto o juízo ao tentar hum lógica para isso e que estou achando que deve ser a lógica mais ridícula de java!
Não estou conseguindo fazer o laço para que ele informe que ainda cabe gente ou se já excedeu por limite de peso ou de gente!
Obrigado e agradeço desde já a ajuda!
Fique tranquilo por ter dificuldade em ter a logica de programacao, também tive dificuldades no comeco, e de coisas bem bestas, e achei que nao ia me dar bem com isso, mas depois vi que é só treino, e com o tempo sua cabeca pensa de uma forma melhor.
Bom, quanto ao exercício…
Pense nesse exemplo como se fosse uma fila para entrar no cinema por exemplo, onde você não sabe o tanto de gente que vai entrar. (Quando sabemos a quantidade, usamos o laço de repetição “for”, quando não sabemos, usamos “while”). Na fila, é atendida de pessoa em pessoa, ou seja, um de cada vez. Para entrar no cinema, a pessoa precisa do ingresso
Um algoritimo para isso seria
Inicio do laço de repeticao
Se a pessoa tem o ingresso, então {
Se o cinema não está lotado {
Pode entrar
}
Senão (se estiver lotado) {
Cai fora do laço, afinal não precisa mais verificar as próximas pessoas
}
}
Senão (se não tem o ingresso) {
Não pode entrar
}
Fim do laço de repetição
Bom vamos lá!!
Não irei postar códigos…
[code]
do{
int peso = Digite seu peso antes de entrar no elevador:
int contPessoas++ ou contPessoas = contPessoas + contPessoas;
int pesoTotal = pesoTotal + peso;
?PODE ENTRAR?
while(pesoTotal <= 500 && contPessoas <= 15);
?NÃO PODE ENTRAR: ELEVADOR LOTADO?
Numero de pessoas: contPessoas
Peso Total: pesoTotal[/code]
Aprimora o que passei que você consegue resolver.
[quote=michetti]Bom vamos lá!!
Não irei postar códigos…
[code]
faça{
int peso = Digite seu peso antes de entrar no elevador:
int contadorPessoas++ ou contadorPessoas = contadorPessoas + contadorPessoas;
int pesoTotal = pesoTotal + peso;
?PODE ENTRAR?
enquanto(pesoTotal <= 500 && contadorPessoas <= 15);
?NÃO PODE ENTRAR: ELEVADOR LOTADO?
Numero de pessoas: contPessoas
Peso Total: pesoTotal[/code]
Aprimora o que passei que você consegue resolver.[/quote]
[quote=michetti][quote=michetti]Bom vamos lá!!
Não irei postar códigos…
[code]
faça{
int peso = Digite seu peso antes de entrar no elevador:
int contadorPessoas++// ou contadorPessoas = contadorPessoas + contadorPessoas;
int pesoTotal = pesoTotal + peso;
?PODE ENTRAR?
enquanto(pesoTotal <= 500 && contadorPessoas <= 15);
?NÃO PODE ENTRAR: ELEVADOR LOTADO?
Numero de pessoas: contPessoas
Peso Total: pesoTotal[/code]
Aprimora o que passei que você consegue resolver.[/quote][/quote]
Vou esquentar meus neurônios aqui!
Esses exemplos me ajudaram a clarear um pouco a mente.
Vou verificar e colocar em código aqui no IDE.
Qual quer coisa voltarei aqui com mais dúvidas!
De acordo com as dúvidas tiradas por vocês consegui resolver…
public static void main(String [] args){
int qntPessoa=0;
double pesoPessoa, TotalPeso=0;
Scanner sc = new Scanner(System.in);
while (qntPessoa <= 15 || TotalPeso <= 800){
System.out.print("Qual o peso: ");
pesoPessoa = sc.nextDouble();
qntPessoa++;
TotalPeso += pesoPessoa;
if (qntPessoa >= 15 || TotalPeso >= 800){
System.out.println("Não pode entrar: limite esgotado!");
return;
}
else {
System.out.println("Pode entrar!");
}
}
}
}
Good! Muito bom…
Mas tem um bug ae! está deixnado 14 e não 15, o 15º deve poder entrar também e da pra corrigir isso sem precisar fazer essas verificações duas vezes, como vc fez no while (qntPessoa <= 15 || TotalPeso <= 800) e depois dentro do while (qntPessoa >= 15 || TotalPeso >= 800)
A solução para isso, o michetti disse em seu post anterior
No caso em IF eu tenho que colocar:
if (qntPessoa > 15 || TotalPeso > 800)
Ai eu vou corrigir o bug né?
[quote]Good! Muito bom…
Mas tem um bug ae! está deixnado 14 e não 15, o 15º deve poder entrar também e da pra corrigir isso sem precisar fazer essas verificações duas vezes, como vc fez no while (qntPessoa <= 15 || TotalPeso <= 800) e depois dentro do while (qntPessoa >= 15 || TotalPeso >= 800)
A solução para isso, o michetti disse em seu post anterior[/quote]
Está corrigido Igor.
Muito obrigado pelas dicas. 
[code]
public static void main(String [] args){
int qntPessoa=0;
double pesoPessoa, TotalPeso=0;
Scanner sc = new Scanner(System.in);
while (qntPessoa <= 15 || TotalPeso <= 800){
System.out.print("Qual o peso: ");
pesoPessoa = sc.nextDouble();
qntPessoa++;
TotalPeso += pesoPessoa;
if (qntPessoa > 15 || TotalPeso > 800){
System.out.println("Não pode entrar: limite esgotado!");
return;
}
else {
System.out.println("Pode entrar!");
}
}
}
}[/code]
Bom, na verdade não era essa solução que estava me referindo…
Repare no que o michetti disse:
faça{
int peso = Digite seu peso antes de entrar no elevador:
int contadorPessoas++// ou contadorPessoas = contadorPessoas + contadorPessoas;
int pesoTotal = pesoTotal + peso;
?PODE ENTRAR?
enquanto(pesoTotal <= 500 && contadorPessoas <= 15);
ou seja,
do {
} while (condicao)
Essa solução que vc fez, seria uma certa gambiarra, tampar o erro com corretivo. Isso no mercado de trabalho não é bem visto
. Temos que fazer com as melhores práticas
Mais quando eu coloco na condição ali o “&&” ela só vai ser verdadeira se as duas estiverem verdadeiras, mas na questão me diz que se chegar em uma delas é para parar né verdade?
Então teria que ser no “||”, que é quando uma ou a outra for falsa o programa finalizar!
A Gambiarra é porque eu também ainda não cheguei a vê "do while.