O programa deve ser capaz de calcular a média aritmética simples de um conjunto de números fornecidos como parâmetro. Observação: não há quantidade definida de valores de entrada, portanto o programa deve considerar a possibilidade de receber nenhum ou diversos números.
Obs.: a implementação deve utilizar-se de List e ArrayList
import java.util.Arrays;
public class Principal {
public static void main(String[] args) {
Integer[] numeros = {4, 5, 6, 7};
Media calcularMedia = new Media();
double resultado = calcularMedia.mediaSimples(Arrays.asList(numeros));
}
}
import java.util.List;
public class Media {
public static void main(String[] args) {
public double mediaSimples(List<Integer> valoresEntrada) {
return 0;
}
}
}
import java.util.List;
public class Media {
public double mediaSimples(List<Integer> valoresEntrada) {
double soma = 0.0;
if (valoresEntrada.isEmpty()) {
return 0.0;
}
for (Integer numero : valoresEntrada) {
soma += numero;
}
return soma / valoresEntrada.size();
}
}
1 curtida
na classe principal como devo fazer ?
A principal fica como está, ou se quiser deixar dinâmico usa um Scanner para ler valores a partir do teclado e depois calcular!
Se quiser fazer da segunda forma dá uma pesquisada em como fazer isso e conforme forem surgindo dúvidas vai postando!
1 curtida
import java.util.Arrays;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
int numeros;
Scanner in = new Scanner(System.in);
System.out.println(" Informe os numeros para calcular a média simples \n");
numeros = in.nextInt();
// fazer o cálculo usando a classe Media
Media calcularMedia = new Media();
double resultado = calcularMedia.mediaSimples(Arrays.asList(numeros));
System.out.println("A média simples de LISTA_VALORES é RESULTADO. " + resultado);
}
}
dessa forma que add o scanner ?
Exato, porém dessa forma ele só irá fazer a leitura de um único número, para ler mais de um você pode incluir um laço de repetição.
Exemplo:
int y = 0;
List<Integer> numeros = new ArrayList<>();
Scanner in = new Scanner(System.in);
while (y == 0) {
System.out.println("Digite um número inteiro: ");
int numero = in.nextInt();
numeros.add(numero);
System.out.print("Deseja informar mais valores? Digite: 0 para Sim / 1 para Não");
y = in.nextInt();
}
1 curtida