Artigo Para quem está inciando em Java usando as aulas do Prof Nélio Alves como referência para os estudos.
Código do Exercíco 4 DesafioAtletas.java
Olá rede, é um prazer poder estar se unindo a mais uma família de desenvolvedores, meu nome é Marcus Vinícius Passos dos Santos, tenho 40 anos e estou em transição de carreira para esta área. Confesso a vocês que não tem sido fácil a caminhada, e meu maior desejo aqui com vocês é poder compartilhar o que tenho aprendido na programação, ou como gosto de dizer pra minha esposa mostrar minhas gambiarras da programação. Hoje quero compartilhar com vocês um dos exercícios que fiz recentemente, no qual pude experimentar muitos desafios.Minha principal motivação para isso foi perceber a ausência de referências na internet para a solução dos problemas propostos pelo professor Nélio, porque querendo ou não fica aquela dúvida , não é porque o código está funcionando que signfica que ele não possa ser melhorado, e eu não encontrava nenhum código na internet com esses exercícios compartilhado, eu tenho a versão do curso do professor Nélio Alves pela plataforma Udemy, infelizmente ainda não tenho condições para pagar o curso dele de DevModerno o qual custa uma pequena fortuna kkkk, e por essa razão não conto com o suporte técnico. Então tive a ideia de compartilhar tudo que faço para aprender com vocês, tudo o que vocês puderem acrescentar será bem vindo aos meus posts. Espero que possamos trocar bastante conhecimentos.
Código.
`
import java.util.Locale;
import java.util.Scanner;
public class DesafioAtletas {
public static void main(String[] args) {
Locale.setDefault(Locale.US);
Scanner dado = new Scanner(System.in);
String nome, sexo;
String aux = null;
double homem = 0;
double mulher = 0;
double altura;
double peso = 0;
double acumulador = 0;
double mediaPeso = 0;
double atletaMaisAlto = 1.0;
double mediaMulher = 0.0;
double auxF = 0.0;
System.out.print("Qual a quantidade de atletas? ");
int quantidadeAtletas = dado.nextInt();
for (int i = 1; i <= quantidadeAtletas; i++) {
System.out.printf("Digite os dados do %d º atleta: ", i);
dado.nextLine();
nome = dado.nextLine();
System.out.print("Sexo: ");
sexo = dado.next();
if ((!sexo.equalsIgnoreCase("F")) && (!sexo.equalsIgnoreCase("M"))) {
System.out.print("Valor inválido! Favor digitar F ou M: ");
sexo = dado.next();
}
if (sexo.equalsIgnoreCase("M")){
homem = homem + 1;
}
if (sexo.equalsIgnoreCase("F")){
mulher = mulher + 1;
}
System.out.print("Altura: ");
altura = dado.nextDouble();
while (altura <= 0) {
System.out.print("Valor inválido! favor digitar um valor positivo: ");
altura = dado.nextDouble();
}
if (altura > atletaMaisAlto){
atletaMaisAlto = altura;
aux = nome;
}else if(altura < atletaMaisAlto){
nome = aux;
}
if (sexo.equalsIgnoreCase("F")){
auxF = auxF + 1;
mediaMulher = mediaMulher + altura;
}
System.out.print("Peso: ");
peso = dado.nextDouble();
while (peso <= 0) {
System.out.print("Valor inválido! favor digitar um valor positivo: ");
peso = dado.nextDouble();
}
acumulador = acumulador + peso;
}
mediaPeso = acumulador / quantidadeAtletas;
double porcentagemHomem = (homem * 100) / quantidadeAtletas;
double porcentagemMulher = (mulher * 100) / quantidadeAtletas;
System.out.println();
System.out.println("RELATÓRIO: ");
System.out.printf("Peso médio dos atletas: %.2f%n", mediaPeso);
System.out.printf("Atleta mais alto: %s%n " ,aux);
System.out.printf("Porcentagem de homens: %.1f %%%n ",porcentagemHomem);
System.out.printf("Porcentagem de mulheres: %.1f %%%n ",porcentagemMulher);
if (mediaMulher != 0) {
mediaMulher = mediaMulher / auxF;
System.out.printf("Altura média das mulheres: %.2f%n ",mediaMulher);
}else
System.out.println("Não há mulheres cadastradas.");
dado.close();
}
}
`
O código também pode ser visto no meu Git.
https://github.com/marcuspassos013/desafios-java/blob/main/DesafioAtletas.java
Bom pessoal eu não sou escritor, eu tentei deixar o código o mais óbivio possível para não ter que ficar espalhando comentários pelo código e assim acabar poluindo visualmente o código, ele está funcionando de acordo com o que foi pedido no desfio, com apenas um acréssimo que coloquei para também mostrar a porcentagem referente a quantidade de mulheres. Para eu poder separar essas informações eu usei um contador e uma estrutura IF e ELSE para me devolverem as informações que eu queria e embutir na variável nome tudo que ficava armazenado na variável de auxilio que criei, auxF e também auxM, para resolver este problema eu criei uma solução de cada vez, e testava para ver se funcionava, para quem é mais experiente poderia transformar grande parte deste código em classes, e assim estanciar a partir dos modelos, mas como eu ainda estou estudando esse assunto não quis complicar mais a minha vida, então se você quiser sinta-se a vontade para estudar esse código e aplicá-lo a suas necessidades de estudo e melhorá-lo, só não esquece de compartilhar porque só assim aprendemos. Um abraço e até a próxima.