FUNCOES ESTATISTICAS

DJSTRONG 03/12/2010 17:18:24
#358753
Boa tarde pessoal!

Mais uma vez preciso da vossa ajuda!

Tenho de desenvolver uma aplicação em C# que inserindo N valores numéricos permita calcular:

- Média

- Moda

- Mediana

- Desvio Padrão

- Maior Valor

- Menor Valor

Muito obrigado pela vossa ajuda, estou aprendendo muito aqui neste forum!

PAVILLION 04/12/2010 13:56:58
#358792
Resposta escolhida
DJSTRONG...

Dá uma olhada:

A Computational Statistics

Acho que é o que precisa, o link mostra uma classe com várias funções estatísticas..
Precisando de ajuda, é só falar..
DJSTRONG 06/12/2010 12:56:50
#358905
PAVILLION mto obrigado pela tua resposta, mas isto é um trabalho que tenho de fazer para a escola e o professor não quer q a gente utilize essa classe, ou seja, temos de ser nós a fazer os métodos.

Por exemplo: na Média temos de utilizar um array que leia os N valores numéricos inseridos, somá-los e dividir por N.

A minha dificuldade é como fazer esses métodos usando arrays...

Tenho de fazer a Média, a Moda, a Mediana, o Desvio Padrão, o Maior Valor, o Menor Valor!

Se alguém m puder ajudar agradecia mto!
PAVILLION 06/12/2010 13:44:55
#358909
DJStrong...

Estes métodos que você vai precisar criar, terão que receber como parâmetro arrays...Como?

   - Console Application -

static void Media(params int[] values)
{
for (int i = 0; i <= values.Length - 1; i++)
{
Console.WriteLine(values[i]);
}
}


Você pode usar esse esboço de método para o método que calcula a média por exemplo, algo assim:

   - Console Application -

static int Media(params int[] values)
{
//Variavel que armazena o resultado da soma dos valores do array;
int result = 0;

for (int i = 0; i <= values.Length - 1; i++)
{
//Obs: i <= values.Lengt -1, porque é a posição final do array;
result += values[i];
}

//Por fim, é só você fazer o cálculo da média: Dividir a soma dos valores pela
//quantidade de valores;
return result / values.Length;
}


Os métodos que darão mais trabalho, serão os outros...Porque você precisa organizar o array...
Não estou em casa, então não dá para testar muita coisa...Mas tenta pesquisar por [Ô]SortedList[Ô]
e dá uma olhada se não te serve...Se precisar de ajuda é só falar...
Chegando em casa dou mais uma olhada para você..

EDIT:

DJStrong...

Estive olhando na internet e achei um algoritmo que pode te ajudar a criar o método que ordene os
valores do array em crescente ou decrescente para você poder achar os valores máximos e mínimos...
Segue o link:
[C#] Algoritmo de ordenação Bolha (Bubble Sort)
DJSTRONG 07/12/2010 15:32:21
#359008
Olá pessoal!

Muito obrigado por tudo, mas ainda me falta calcular a Moda e o Desvio Padrão de um Array.

Tenho de fazer uma função para a Moda e uma função para o Desvio Padrão.

Alguém pode me ajudar?

Muito obrigado!
GREGO 08/12/2010 12:51:41
#359084
desculpe

mas o que pe função para moda?
DJSTRONG 13/12/2010 19:44:06
#359481
Ola Grego!
Eu preciso criar um método que me devolve a Moda de um array, ou seja, devolve o valor que está contido no array o maior numero de vezes!
Sabe como fazer o método?
Obrigado!
PAVILLION 13/12/2010 22:19:13
#359487
DJSTRONG...

Bom, sobre o método da Moda...Andei tentando criar algo simples e funcional, não sei se é o melhor jeito...Mas cheguei nisso:

   Método - Calcular Moda

public Hashtable Mode(params int[] values)
{
Hashtable hshTable = new Hashtable();
BubbleSort sortValues = new BubbleSort();

sortValues.Sort(values);

for (int i = 0; i <= values.Length - 1; i++)
{
if (i != values.Length - 1)
{
if (values[i] == values[i + 1])
{
hshTable[i] = values[i];
}
}
}

return hshTable;
}



Para exibir os resultados do método, faço o seguinte...

  - Chamada do método -

if (myHshTable.Count != 0)
{
foreach (DictionaryEntry newValues in myHshTable)
{
int elementIndex = (int)newValues.Key;
int elementValue = (int)newValues.Value;

Console.WriteLine([Ô]Index: {0} and Value: {1}[Ô], elementIndex, elementValue);
}
}
else
{
Console.WriteLine([Ô]Index: null and Value: null[Ô]);
}


Isso é só um teste, precisa de alterações...Mas a lógica está ai...
Se precisar tirar dúvidas, é só falar..

Obs: O tal do [Ô]BubbleSort[Ô] é um algoritmo de ordenação que estou usando para outras coisas,
no cálculo da moda, acho que não precisa dele...Se precisar, é só falar também..
Tópico encerrado , respostas não são mais permitidas