Alguém sabe como resolver esse problema usando uma estrutura de repetição?

18 respostas
javasó-o-enunciado
B

Faça um programa em Java que leia o nome, idade e peso de 5 jogadores
diferentes de um time. Faça de forma correta a classe Jogador para responder a
questão. Calcule e mostre:
a) A quantidade de jogadores com idade < 18.
b) A média das idades dos jogadores
c) A percentagem de jogadores com mais de 80 quilos

OBS.: Tem que ser em duas classes, uma classe jogador com os atributos e uma classe com método main para criar os objetos usando os métodos get e set

18 Respostas

R

Já fez pelo menos a classe Jogador?

B

Sim! Fiz a classe Jogador com os atributos e os métodos set e get para cada um deles.

R

Agora faça um for, de 0 a 5, no seu método main:

for (int i = 0; i < 5; i++) {
     //aqui você vai pedir os dados do jogador usando a classe Scanner
    
}

Se não souber usar a classe Scanner eu passo um exemplo.

B

Não sei se vc não entendeu muito bem, se eu não soube explicar direito o problema ou se eu não entendi sua resposta. O problema pede pra eu criar um classe jogador(o qual eu fiz como falei) e outra classe para mostrar o itens a, b e c( uma classe com o método main).
Na classe com o método o main eu instanciei o 5 objetos do tipo jogador como pedido no problema e usando o método set, eu dei valores aos atributos citados pelo enunciado sem usar nenhum tipo de loop. Agora eu preciso pegar a 5 idades idades dos 5 jogadores e calcular a media de idades. Minha dúvida é: como eu vou armazenar/usar/calcular a média?
Detalhe: não pode usar arrays(essa é a dificuldade).

B
No método main:

Jogador j1 = new Jogador();

Jogador j2 = new Jogador();

Jogador j3 = new Jogador();

Jogador j4 = new Jogador();

Jogador j5 = new Jogador();

sets e gets para todos
R

No seu exercício diz “leia”. Isso geralmente significa receber dados que o usuário digitou no console, por isso a sugestão da classe Scanner.

B

Isso eu peguei, sei usar a classe. O problema é calcular a media dos 5 objetos sem armazenar em array

R
int idades = 0;
for (int i = 0; i < 5; i++) {
     //digite a idade
    idades = idades + scanner.nextInt();
}

//média das idades
System.out.println(idades / 5.0);

Não pode usar array, né? E Collections?

L

Acho que no problema não pede para instanciar 5 objetos do tipo jogador diretamente, mas para ler os dados (nome, idade e peso) de 5 jogadores. Com isso, vc irá obter os dados usando a classe Scanner para, assim, ir criando as instâncias da classe jogador, e poder fazer os cálculos dos itens A, B e C.

Também não diz para não usar loop. Com loop seu código faria mais sentido (até mesmo para o seu aprendizado, pois o uso de loop é amplamente utilizado no dia-a-dia do nosso trabalho).

B

Também não

B

Essa é justamente a minha dúvida: como armazenar os dados e resolver as questões usando um loop e sem usar array?

L

Se não pode usar array, então ignora minha resposta tb. Nesse caso tu deve declarar todos os jogadores em variáveis separadas para cada um (como tu mencionou que já fez) e ler os dados instanciando cada variável:

DECLARA Jogador j1, j2, j3, j4, j5;
DECLARA nome, idade, peso

LEIA nome, idade, peso
CRIA j1 com os dados lidos (algo assim: "j1 = new Jogador(nome, idade, peso)"

LEIA nome, idade, peso
CRIA j2 com os dados lidos (algo assim: "j2 = new Jogador(nome, idade, peso)"

LEIA nome, idade, peso
CRIA j3 com os dados lidos (algo assim: "j3 = new Jogador(nome, idade, peso)"

LEIA nome, idade, peso
CRIA j4 com os dados lidos (algo assim: "j4 = new Jogador(nome, idade, peso)"

LEIA nome, idade, peso
CRIA j5 com os dados lidos (algo assim: "j5 = new Jogador(nome, idade, peso)"

Com as variáveis dos jogadores instanciados, vc consegue recuperar, por exemplo, todas as idades e fazer a media numa boa.

obs.: Vc pode reaproveitar as variáveis nome, idade e peso para na criação das instâncias de cada jogador (para não precisar ficar criando nome1, nome2, etc.)

obs2.: Se jogar a criação do jogador num método separado, seu código vai ficar bem mais enxuto.

B

Agora vc entendeu a questão. Mas o ponto é: eu, obrigatoriamente tenho que usar alguma estrutura de repetição e não sei nem onde e nem como usar

L

Uai, agora ficou a dúvida: vc pode ou não usar estrutura de repetição. Pois a resposta do @RoinujNosde te mostra como usar. Só que vc disse que não pode usar, mas agora está falando que pode. Estou confuso.

B

Pode. Na verdade é obrigatório o uso, o que não se pode usar é array

O

como não está armazenado isso em um array ou lista:
Você deve buscar esses valores de cada jogador para isso vc pode na Class Main,
System.out.println ((j1.getPeso() + j2.getPeso () + j3.getPeso ()…etc)/ 5);

vc utiliza o get que vc criou para o peso, ai vc soma todo os pesos e divide pela quantidade de jogador.
obs: na soma escreva os ( ) matemáticamente correto: (a+b)/2

B

Tenho que usar uma estrutura de repetição obrigatoriamente em algum lugar do código

R
Média com estrutura de repetição:

<aside class="quote" data-post="9" data-topic="417234">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/user_avatar/www.guj.com.br/roinujnosde/40/100807_2.png" class="avatar">
    <a href="https://www.guj.com.br/t/alguem-sabe-como-resolver-esse-problema-usando-uma-estrutura-de-repeticao/417234/9">Alguém sabe como resolver esse problema usando uma estrutura de repetição?</a> <a class="badge-wrapper  bullet" href="/c/programacao/java">Java</a>
  </div>
  <blockquote>
    int idades = 0;
for (int i = 0; i < 5; i++) {
     //digite a idade
    idades = idades + scanner.nextInt();
}

//média das idades
System.out.println(idades / 5.0);

Não pode usar array, né? E Collections?
  </blockquote>
</aside>
Criado 5 de maio de 2021
Ultima resposta 10 de mai. de 2021
Respostas 18
Participantes 4