{ File: testrip2.pas }

{ Scopo: ordine dei dati in input ha effetto sulla necessita` o meno di
         usare array
         vedi file: testrip1.pas }

program RipetizioniTest;
{ Legge i risultati (ognuno dei quali e` un valore reale compreso tra 0 e 100)
  di 20 test, per ognuno dei quali sono state effettuate due ripetizioni.

  Stampa la media ed il numero d'ordine per quei test per i quali la media dei
  risultati delle due ripetizioni e` maggiore del valore assoluto della lora
  differenza.

  Assume che in ingresso vengano forniti prima tutti i risultati della prima
  ripetizione dei 20 test, e poi tutti i risultati della seconda ripetizione
  dei 20 test.
}

const
  NumeroTest = 5;

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

var
  ris1, ris2 : TipoRisultati;
  i          : TipoIndice;
  media      : TipoRisultato;

begin
  { lettura dei risultati della prima ripetizione dei test }
  writeln('Immetti i risultati della prima ripetizione !');
  for i := 1 to NumeroTest do
  begin
    write('  Risultato test ', i:2, ' ? ');
    readln(ris1[i])
  end;
  writeln;


  { lettura dei risultati della seconda ripetizione dei test }
  writeln('Immetti i risultati della prima ripetizione !');
  for i := 1 to NumeroTest do
  begin
    write('  Risultato test ', i:2, ' ? ');
    readln(ris2[i])
  end;
  writeln;


  { stampa della media delle due ripetizioni per i test che sodisfano la
    condizione }
  writeln('Test validi  media');
  for i := 1 to NumeroTest do
  begin
    media := (ris1[i] + ris2[i]) / 2;
    if media > abs(ris1[i] - ris2[i]) then
      writeln(i:2, media:16:2)
  end
end. { RipetizioniTest }