Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Program pag104_30(output);
(* const *)
var
n: longint; (* Input: lunghezza della sequenza di numeri reali *)
v: real; (* Input: valori della sequenza in ingresso, uno per volta! *)
scartoMax: real; (* Output: massimo scostamento dei valori rispetto alla media aritmetica *)
scartoValMax: real; (* Work: scostamento del massimo dei valori rispetto alla media aritmetica *)
scartoValMin: real; (* Work: scostamento del minimo dei valori rispetto alla media aritmetica *)
sommaV: real; (* Work: totalizzatore dei valori *)
contaV: longint; (* Work: contatore per la sequenza di valori in ingresso *)
mediaV: real; (* Work: media aritmetica dei valori della sequenza in ingresso *)
maxV: real; (* Work: massimo dei valori già presi in esame*)
minV: real; (* Work: minimo dei valori già presi in esame*)
diff: real; (* Work: differenza tra la media e uno dei valori *)
begin
(* Input: lunghezza della sequenza di numeri reali *)
writeln('lunghezza della sequenza di numeri reali?');
readln (n);
(* inizializzazione delle variabili per la somma e il conteggio *)
sommaV := 0;
contaV := 0;
(* inizializzazione delle variabili per la ricerca del massimo e del minimo col 1° valore della sequenza *)
writeln('prossimo valore della sequenza in ingresso?');
readln (v);
sommaV := sommaV + v;
contaV := contaV + 1;
maxV := v;
minV := v;
(* richiesta ed elaborazione degli altri valori della sequenza *)
while (contaV < n) do
begin
writeln('prossimo valore della sequenza in ingresso?');
readln (v);
sommaV := sommaV + v;
contaV := contaV + 1;
if maxV < v (* se il valore corrente è > di tutti precedenti... *)
then begin
maxV := v; (* si aggiorna il massimo attuale *)
end
else
if minV > v (* se il valore corrente è < di tutti precedenti... *)
then begin
minV := v; (* si aggiorna il minimo attuale *)
end;
(* end if *)
end; (* while *)
(* media aritmetica dei valori della sequenza in ingresso *)
mediaV:= sommaV / n;
(* scostamento del massimo dei valori rispetto alla media aritmetica, cioè la differenza in valore assoluto *)
diff := maxV - mediaV;
if diff < 0
then begin
scartoValMax := - diff;
end
else begin
scartoValMax := diff;
end;
(* end if *)
(* scostamento del minimo dei valori rispetto alla media aritmetica, cioè la differenza in valore assoluto *)
diff := minV - mediaV;
if diff < 0
then begin
scartoValMin := - diff;
end
else begin
scartoValMin := diff;
end;
(* end if *)
(* Output: massimo scostamento dei valori rispetto alla media aritmetica *)
if scartoValMax < scartoValMin
then begin
scartoMax := scartoValMin
end
else begin
scartoMax := scartoValMax;
end;
(* end if *)
(* Output: massimo scostamento dei valori rispetto alla media aritmetica *)
writeln (' scostamento massimo: ' , scartoMax:5:2);
writeln (' programma terminato: premere invio per uscire');
readln;
end.
Advertisements
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
AcceptLearn more