{ SCRITTO DA: IL: DESCRIZIONE: Questo programma - legge un certo numero di elementi (di tipo integer) da terminale - restituisce valore medio (mu) e scarto quadratico medio (sigma) } const MAX=100; type vett = array[1..MAX] of integer; var elem: vett; {contiene gli elementi} n:integer; {lunghezza del vettore elem} {AI: 1<=n<=MAX} {AF: e[1..n] contiene n elementi letti da terminale} procedure leggi (var e:vett; n:integer); var i:integer; begin for i:=1 to n do {1<=i<=n+1, e[1..i-1] letto da terminale} begin write('elemento ',i,':'); readln(e[i]); end; end; {AI: 1<=n<=MAX, x[1..n] e' inizializzato} {AF: restituisce mu = (x[1]+...+x[n]) / n} function mu (x:vett, n:integer):real; var i:integer; s:longint; begin s:=0; for i:=1 to n do {1<=i<=n+1, s=e[1]+...+e[i-1]} s:=s+e[i]; mu:=s / n; end; {AI: 1<=n<=MAX, x[1..n] e' inizializzato} {AF: restituisce sigma = sqrt( ( (x[1]-mu(x,n))^2+...+(x[n]-mu(x,n))^2 ) / n ) } function sigma (x:vett, n:integer):real; --COMPLETARE LA FUNZIONE begin writeln('+--------------------------------------+'); writeln('| Calcolo di mu e sigma di n>=1 interi |'); writeln('+--------------------------------------+'); writeln; --COMPLETARE end.
x[1]*f[1]+...+x[n]*f[n] mu = ----------------------- f[1]+...+f[n] _ ____________________________________ \ / \ / (x[1]-mu)^2*f[1]+...+(x[n]-mu)^2*f[n] sigma = \ / ------------------------------------- \ / f[1]+...+f[n] \/
Suggerimento, memorizzare i dati in una coppia di vettori:
elem: vett; {contiene gli elementi} freq: vett; {contiene le frequenze}e usate le seguenti intestazioni per le procedure e funzioni:
procedure leggi (var e,f:vett; n:integer); function mu (x,f:vett, n:integer):real; function sigma (x,f:vett, n:integer):real;ATTENZIONE: