{ File: esperime.pas }

{ Scopo: primo esempio di uso di array unidimensionali }

program Esperimento;
{ Legge da tastiera i risultati (reali) di 20 esperimenti.
  Stampa il numero d'ordine ed il risultato di quegli esperimenti per i quali
  il risultato e` minore del 50% della media dei 20 risultati.
}

const
  NumeroRipetizioni = 20;

type
  TipoRisultato = real;
  TipoIndice    = 1..NumeroRipetizioni;
  TipoRisultati = array [TipoIndice] of TipoRisultato;

var
  risultati : TipoRisultati;
  i         : TipoIndice;
  soglia    : TipoRisultato;

begin
  { lettura dei risultati }
  writeln('Immetti ', NumeroRipetizioni, ' risultati (reali) !');
  for i := 1 to NumeroRipetizioni do
    read(risultati[i]);            { deve essere fatta un elemento alla volta }

  { calcolo della soglia }
  soglia := 0;
  for i := 1 to NumeroRipetizioni do
    soglia := soglia + risultati[i];
  soglia := 0.5 * (soglia / NumeroRipetizioni);

  { stampa dei valori minori della soglia }
  writeln;
  writeln('Risultati inferiori a 50% della media (', soglia, '):');
  for i := 1 to NumeroRipetizioni do
    if risultati[i] < soglia then
      writeln('risultato ', i:2, ': ', risultati[i])
end. { Esperimento }