Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gustavoo

algoritmo que calcule a media e o desvio padrão (visualg)

Recommended Posts

O desvio-padrão é uma medida do espalhamento das medidas; quanto maior o desvio-padrão,

mais espalhados serão os elementos do conjunto de dados em relação à média. Seu valor é

definido pela expressão

S=Raiz((N somatorio xi^2 - (somatorio xi)^2/N(N-1)) ,xi=1..N

Implemente um algoritmo que leia um conjunto de N medidas e calcule a média e o desviopadrão

do conjunto de dados de entrada.

Me ajudem na logica

 

var

medidas: vetor (1..N) de real
soma, media, desvio, N : real
i: inteiro
inicio
// Seção de Comandos
i<- 1
soma<-0
escreva("Informe as quantidade de medidas",)
leia(N)
enquanto i<= N faca
escreva("Informe as medidas")
leia(medidas)
soma<- soma + medidas
i<-i +1
fimenquanto
media<-soma/N
i<-1
desvio<-0
enquanto i<=N faca
desvio<- ????
i<- i+1
fimenquanto
desvio<-???
escreva("A media das medidas :", media)
escreva("O desvio padrao :", desvio)
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://pt.wikipedia.org/wiki/Desvio_padr%C3%A3o
(Veja "desvio padrão amostral")
Você tem duas opções de cálculo:

1 - Se você armazenar os dados lidos em um array, de cada elemento lido (que compõe a média) você subtrai a média (que você só conhece depois de ler todos os elementos)

 

* Números lidos: 5, 39, 4

Média = 16

Somatorio_desvio = (5-16)^2 + (39-16)^2 + (4-16)^2 = 121 + 529 + 144 = 794

desvio = sqrt(somatorio_desvio/ (n-1)) = sqrt(794/2) = sqrt(397) = 19,9248

 

2- Se você não sabe a média (nesse caso você quer calcular durante a leitura dos números):

 

* Leitura do primeiro número: 5

soma_media = 5

termo_A_desvio = 5*5 = 25

 

* Leitura do segundo número: 39

Soma_media = 5 + 39 =44

termo_A_desvio = 25 + 39 * 39 = 1546

 

* Leitura do terceiro número: 4

Soma_media = 5 + 39 + 4 = 48

termo_A_desvio = 25 + 39* 39 + 4*4 = 1562

 

termo_B_desvio = soma_media * soma_media/n = 48*48/3 = 768

numerador_desvio = termo_A_desvio - termo_B_desvio = 1562 - 768 = 794

desvio = sqrt(numerador_desvio/(n-1)) = sqrt(794/2) = sqrt(397) = 19,9248

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, que você vai ler via teclado. E se não souber quantos são, defina uma flag e conte os números enquanto não for digitada a flag.

 

Implemente um algoritmo que leia um conjunto de N medidas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Depois de ler ou enquanto estiver lendo os números faça as contas. Não estou entendendo qual é o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pare, leia e processe o que escrevi no meu primeiro post. Já te deram a fórmula do desvio padrão. É só colocar os elementos nos lugares certos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isis segui um exemplo do professor mas na hora de calcular o desvio no visual g da sintaxe errada,

algoritmo "semnome"
// Função :
// Autor :
// Data : 09/06/2015
// Seção de Declarações
var
i,N:inteiro
x,somax,somaxq,desvio,media:real
inicio
// Seção de Comandos
escreva("Informe a quantidade de medidas?")
leia(N)
somax<-0
somaxq<-0
media<-0
para i DE 1 ate N faca
escreva("Medida",i,"=")
leia(x)
somax<-somax+x
somaxq<-somaxq+x^2
fimpara
media<-somax/N
desvio<-raizq((somaxq-somax^2/N)/(n-1)
escreva("A Media é =",media)
escreva("O Desvio Padrão =",desvio)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.