Duvida em Calculo de Media

E ae galera…sou iniciante em Java e tava precisando resolver um exercicio aqui:

Crie uma classe Média contendo um método calculaMédia(int n) que devolve a média dos valores 1,
2, 3, …, n, onde n é o valor absoluto de um número fornecido ao método.
Adicione o método testaCalculaMédia() que testa o método calculaMédia(int n) para diferentes
valores de n.

Nao estou conseguindo montar a logica =/…Sei que tenho que usar o Laço While pra resolver…

Alguma ajuda?!
Vlw

Mas e o valor para calcular a média de onde vem? Esse valor absoluto é p/ ser divido ou é o dividendo? Não entendi.

O valor eu atribuo depois…
Quero montar um método “genérico”…
Olha soh um que eu fiz pra calcular o fatorial de um numero:

class Fatorial
{
double calculaFatorial (int x)
{
int a = 1;
int b = x;

while ((x-a)>0)
{
  if (x>0)
    b = b*(x-a);
  a++;
}

if (x<=0)
  System.out.println("Erro. Não foi possível realizar a operação!");
else
  System.out.println("O fatorial deste número é: " + b);
return b;

}

void testaCalculaFatorial (int x, int saida)
{
Fatorial fat = new Fatorial();
fat.calculaFatorial(x);

if (fat.calculaFatorial(x)!=saida)
  System.out.println("O programa está incorreto.");
else
  System.out.println("O programa funcionou corretamente.");

}
}

Quero montar algo do tipo…soh que calculando a Media

Ora, a média dos valores de 1 a n é (n + 1) / 2.

Mas acho que você quer calcular a somatória “no braço” para calcular a média, não?

Entao kra…eu tava querendo tipo assim:
(1+2+3)/3
(1+2+3+4)/4
(1+2+3+4+5)/5
e por ai vai… ate n…

Só que nao estou conseguindo montar isso…

Lizin,

Veja se este código lhe ajuda

public class Main {   
  
    public static void main(String[] args) {
        String aValor = JOptionPane.showInputDialog("Insira um número:");        
        double aMedia = 0.0;
        for (int i=0; i <= Integer.parseInt(aValor); i++) {
            aMedia = aMedia + i;            
        }
        aMedia = aMedia / Integer.parseInt(aValor);        
        JOptionPane.showMessageDialog(null, String.valueOf(aMedia), "", JOptionPane.INFORMATION_MESSAGE);                
    }
    
}

Espero ter ajudado.

Um for de 1 a N fazendo a soma e depois divide a soma por N !

Eu usaria Varargs…

Passa um array de inteiros, vai somando e no fim divide pelo tamanho do array… :wink: