GARANTIR DESCONTO

Fórum Calcular o desvio padrao de varias datas de um dataset #344463

13/08/2007

0

Olá pessoal, preciso de uma ajuda.

Preciso calcular o desvio padrão de várias datas que estão em um dataset e não estou conseguindo.

A media até já consegui, mas o desvio padrão está complicado.

Segue o calculo da media entre datas e espero que me ajudem com o desvio padrão:

Caso alguem tenha alguma ideia melhor quanto a media tb agradeço.

dmRELATORIOS.ClISTA1.Prior;
WHILE NOT dmRELATORIOS.CLISTA1.EOF DO
BEGIN
CALCULO_media:=CALCULO_media+DMRELATORIOS.clista1DATA.Asdatetime;
i:=i+1;
media:=calculo_media/i;
media:=media/360;
DMRELATORIOS.CLISTA1.NEXT;
end;

Obrigado


Frostlost

Frostlost

Responder

Posts

13/08/2007

Emerson Nascimento

na unit Math do Delphi existe a função MeanAndStdDev() que deve retornar o que você precisa.

a sintaxe é:
MeanAndStdDev(array de Double, var Media, DesvioPadrao);

aplicando ao seu código...
var
  Media, DesvioPadrao: extended;
  Datas: array of double;
begin
  {posiciona o ponteiro da tabela no primeiro registro}
  dmRelatorios.CLista1.First;

  {preenche o array com as datas da tabela}
  while not dmRelatorios.CLista1.Eof do
  begin
    SetLength(Datas, Length(Datas)+1);
    Datas[High(Datas)] := dmRelatorios.CLista1DATA.AsDateTime;

    dmRelatorios.CLista1.Next;
  end;

  {calcula a média e o desvio padrão}
  MeanAndStdDev(Datas, Media, DesvioPadrao);

  {exibe o resultado}
  ShowMessage(´Media: ´+FormatFloat(´0.000´,Media)+
               13´Desvio padrão: ´+FormatFloat(´0.000´,DesvioPadrao));
end;
veja se atente à sua necessidade


Responder

Gostei + 0

13/08/2007

Frostlost

Muito obrigado, funcionou redondo.

Grande abraço e conte comigo para o que precisar.

Claudio

na unit Math do Delphi existe a função MeanAndStdDev() que deve retornar o que você precisa. a sintaxe é: MeanAndStdDev(array de Double, var Media, DesvioPadrao); aplicando ao seu código...
var
  Media, DesvioPadrao: extended;
  Datas: array of double;
begin
  {posiciona o ponteiro da tabela no primeiro registro}
  dmRelatorios.CLista1.First;

  {preenche o array com as datas da tabela}
  while not dmRelatorios.CLista1.Eof do
  begin
    SetLength(Datas, Length(Datas)+1);
    Datas[High(Datas)] := dmRelatorios.CLista1DATA.AsDateTime;

    dmRelatorios.CLista1.Next;
  end;

  {calcula a média e o desvio padrão}
  MeanAndStdDev(Datas, Media, DesvioPadrao);

  {exibe o resultado}
  ShowMessage(´Media: ´+FormatFloat(´#0.000´,Media)+
               13´Desvio padrão: ´+FormatFloat(´0.000´,DesvioPadrao));
end;
veja se atente à sua necessidade



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar