calcolo di media

esci algebraturbo.htm

 

Program media4;
(* elaborazione statistica e indice di correlazione di Bravais.*)
uses crt;
const k=20;
VAR
a,valori:integer;
n1:array[1..k] of real;
n2:array[1..k] of real;
s1:array[1..k] of real;
s2:array[1..k] of real;
s1a:array[1..k] of real;
s1q:array[1..k] of real;
s2a:array[1..k] of real;
s2q:array[1..k] of real;
somma1,somma2,media1,media2,scarto1,scarto2,
scarto1q,scarto2q,ps,sigma1,sigma2,indice,
varianza1,varianza2,sommaps:real;


procedure cancella;
begin
clrscr;
end;

procedure pausa;
begin
write('premi ENTER ');readln;
end;

procedure dati;
begin
clrscr;
writeln('prova prima con dati indicati:');
writeln('numero valori:prova 8 ');
writeln('serie valori per X:prova 4,5,5,6,6,7,7,8 ');
writeln('serie valori per Y:prova 5,6,6,5,7,6,8,9 ');
writeln;
end;

procedure testo;
begin
writeln('per calcolare il coefficiente di correlazione di BRAVAIS');
writeln('si richiedono due serie di valori da elaborare:serie X,serie Y');
writeln('si calcola la media aritmetica per le due serie mx,my');
writeln('si calcolano gli scarti semplici dalle medie x-mx,y-my');
writeln('si calcolano i quadrati degli scarti semplici (x-mx)^2 , (y-my)^2');
writeln('si esegue il prodotto degli scarti semplici di (x-mx)(y-my)');
writeln('si esegue la somma dei prodotti degli scarti S[x-mx)(y-my)]');
writeln('si calcolano gli scarti quadratici medi:sigmaX,sigmaY ');
writeln('si calcola indice di correlazione con la formula :');
writeln('somma prodotti scarti/numero dati*sigmaX*sigmaY ');
writeln;
writeln('valore di INDICE compreso tra -1,0,+1 ');writeln;
writeln('se INDICE = 1 ....massima correlazione diretta,concorde');
writeln('se INDICE = -1....massima correlazione inversa,discorde');
writeln('se INDICE = 0 ....nessuna correlazione ');
writeln('se INDICE < 0.....correlazione inversa +- debole ');
writeln('se INDICE > 0.....correlazione diretta +- debole ');
writeln;
pausa;
clrscr;
end;

procedure pro1; (* inserimento dati *)
begin
dati;
writeln('inserire prima serie valori per X');
somma1:=0;media1:=0;somma2:=0;media2:=0;
for a:=1 to valori do
begin
write('scrivi valore da elaborare ');readln(n1[a]);
somma1:=somma1+n1[a];
end;
media1:=somma1/valori;
clrscr;
dati;
writeln('inserire seconda serie valori per Y');
for a:=1 to valori do
begin
write('scrivi valore da elaborare ');readln(n2[a]);
somma2:=somma2+n2[a];
end;
media2:=somma2/valori;
clrscr;
end;



procedure pro2; (* calcolo valori statistici vari *)
begin
scarto1:=0;varianza1:=0;sommaps:=0;
writeln('datox':10,'x-M':10,'|x-M|^2':10,
'datoy':10,'y-M':10,'|y-M|^2':10,'prodotto':10);writeln;
for a:=1 to valori do
begin
s1[a]:=n1[a]-media1;
s1a[a]:=abs(s1[a]);
s1q[a]:=(s1[a])*(s1[a]);
scarto1:=scarto1+s1a[a];
varianza1:=varianza1+s1q[a];
s2[a]:=n2[a]-media2;
s2a[a]:=abs(s2[a]);
s2q[a]:=(s2[a])*(s2[a]);
scarto2:=scarto2+s2a[a];
varianza2:=varianza2+s2q[a];
ps:=s1[a]*s2[a];
sommaps:=sommaps+ps;
writeln(n1[a]:10:3,s1[a]:10:3,s1q[a]:10:3,n1[a]:10:3,
s2[a]:10:3,s2q[a]:10:3,ps:10:3);

end;

scarto1:=scarto1/valori;
varianza1:=varianza1/valori;
scarto1q:=sqrt(varianza1);
writeln('scarto quadratico medioper X =',scarto1q:10:3);

scarto2:=scarto2/valori;
varianza2:=varianza2/valori;
scarto2q:=sqrt(varianza2);
writeln('scarto quadratico medio per Y =',scarto2q:10:3);
indice:=sommaps/(valori*scarto1q*scarto2q);
writeln('indice di correlazione:',indice:0:3);

end;


begin
clrscr;
writeln('determinazione valori statistici');
testo;
dati;
write('indicare numero di dati da inserire < 21 ');readln(valori);
pro1;pausa;pro2;pausa;
end.