Ir ao conteúdo

Programa Pascal


Masterlolz

Posts recomendados

Postado

Olá pessoal,

Estou com uma dúvida. Preciso fazer um programa em pascal seguindo o seguinte enunciado:

Implementar um programa para ler um vetor contendo "N" números reais e que imprima o desvio o padrão dos elementos.

Att,

996236

Postado

Olá amigo,

a recomendação deste setor do fórum é que você tente resolver primeiro e depois poste suas dúvidas, e os trechos de código que podem estar com problemas.

Postado

Certo estou me esforçando. Assim que conseguir uma base retornarei com ele pedindo auxílio. Grato

Program trabalho;
uses crt;
constant
N = 20;
var
numero : array[1..N];
r, x : integer;

begin
clrscr;
Writeln('Digite a quantidade de números a ser calculado o desvio padrão?');
readln(x);
if x>20 then
writeln('Digite um número entre 1 e 20');
else
begin
soma:=0;
contador:=0;

for r:= 1 to x
begin
writeln('Entre com um valor');
readln(valores);
soma:= soma+valores;
contador:= contador+1;
media:= soma/contador;
end;

Agora estou em duvida pois agora eu teria q calcular o desvio padrão.

como segue a fórmula: ∑ (xi – Média) / x

xi = valores

x= quantidade de valores

No entanto não sei como fazer o somatório, alguém poderia me dar uma ajuda e se o programa está indo tudo conforme?

  • 2 semanas depois...
Postado

Program trabalhovetor;
uses crt;

var
vetor : array[1..20] of real;
r, x, soma, contador, valor : integer;
media, vari, dp : real;

begin
clrscr;
Writeln('Digite a quantidade de numeros a ser calculado o desvio padrão?');
readln(x);



soma:=0;
vari:=0;
for r:=1 to x do
begin
Writeln('Digite o valor: ');
read(valor);
soma:=soma+valor;
media:= soma/x;
vari:= vari+ (valor - media)*(valor - media);
dp:= sqrt(vari/x);
end;
Writeln(' O desvio padrão dos numeros e ‚: ',media:4:4);
readkey;
end.

Tentei de tudo, mas os resultados não estão dando certo a partir da fórmula vari(variância) consequentemente o desvio padrão também estará errado. Alguem pode me dar uma luz?

  • Membro VIP
Postado


uses crt;

var
vetor : array[1..20] of real;
r, x, soma, contador, valor : integer;
media, vari, dp : real;

begin
clrscr;
Writeln('Digite a quantidade de numeros a ser calculado o desvio padrão?');
readln(x);



soma:=0;
vari:=0;
for r:=1 to x do
begin
Writeln('Digite o valor: ');
read(valor);
soma:=soma+valor;
media:= soma/x;
vari:= vari+ (valor - media)*(valor - media);
dp:= sqrt(vari/x);
end;
Writeln(' O desvio padrão dos numeros e ‚: ',media:4:4);
readkey;
end.
Program trabalhovetor;

Tentei de tudo, mas os resultados não estão dando certo a partir da fórmula vari(variância) consequentemente o desvio padrão também estará errado. Alguem pode me dar uma luz?

Olá Masterlolz

  • 1) Nunca use read;, use somente readln;;
  • 2) Existe uma incoerência na hora de calcular a média.
    media:= soma/x;
    Fórmula da média:
    MEDIA = "Total" / "Quantidade"
    Onde o "total" é soma dos valores e a "quantidade" é a quantidade de elementos somados.
    Ex.:
    Total = 3+5+7+5 = 20
    Quantidade = 4
    Media = Total/Quantidade = 20/4 = 5
    Neste caso você está calculando a média a cada loop!!!


    begin
    Writeln('Digite o valor: ');
    read(valor);
    soma:=soma+valor;
    media:= soma/x;
    vari:= vari+ (valor - media)*(valor - media);
    dp:= sqrt(vari/x);
    end;
     for r:=1 to x do


    O correto seria "somar tudo" para depois calcular.

No caso, você tem que obter todos os valores e somá-los; calcular a média; e fazer os cálculos.

Seu código com alguns comentários


uses
crt;

var
vetor :array[1..20] of real;
r,
x,
soma,
contador,
valor :integer;
media,
vari,
dp :real;

begin
clrscr;
Writeln('Digite a quantidade de numeros a ser calculado o desvio padrão?');
readln(x);
soma:=0;
vari:=0;
for r:=1 to x do
begin
Writeln('Digite o valor: ');
{read(valor);} //NUNCA USE READ, SÓ READLN;
readln(valor)
soma:=soma+valor;
{A MEDIA DEVE SER CALCULADA FORA DO LAÇO..}
media:= soma/x;
vari:= vari+ (valor - media)*(valor - media);
dp:= sqrt(vari/x);
end;
Writeln(' O desvio padrão dos numeros e ‚: ',media:4:4);
readkey;
end.
Program trabalhovetor;

Abraços

Postado

Fiz um trabalho de Estatística na faculdade e o professor mandou fazer um programa que calculava o desvio-padrão. Para calcular o desvio padrão é preciso calcular a média, desvio-medio, variancia e depois é calculado o desvio-padrão.


Program Pzim ;
const
max=99999;
var
soma,dp,media,soma1,variancia:real;
valor:array[1..max] of real;
d:array[1..max] of real;
i,a:integer;
Begin
soma:=0;
writeln('Quantidade de amostras'); // ler a quantidade de amostras
readln(a);
writeln;

for i:=1 to a do
begin
write('valor ',i,':');
read(valor[i]);
soma:=soma+valor[i];
end;
writeln;

media:=soma/a;
writeln('A média é:', media); // calcula a média
writeln;

for i:=1 to a do // calcula desvio-medio
begin
write('Desvio-medio',i,':');
d[i]:=valor[i]-media;
writeln(d[i]);
end;
soma1:=0;
for i:=1 to a do
begin
soma1:=soma1+sqr(d[i]);
end;
writeln;
variancia:=soma1/a; //calcula variancia
writeln('Variancia:',variancia);
writeln;
dp:=sqrt(variancia); // calcula desvio-padrão
writeln('Desvio-padrão:',dp);

End.



Postado

Obrigado EstilingueAtomico e pablo_spfc por suas dicas, estarei reajustando o meu programa para adequá-lo. Até mais, postarei como me sucedi...

valeu

att

masterlolz

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!