{ File: riceesau.pas }

{ Scopo: ricerca esaustiva di un elemento in un vettore }

{ E` richiesta la definizione preliminare di:

const
  NumElementi = ...;

type
  TipoElemento = ...;
  TipoIndice   = 1..NumElementi;
  TipoVettore  = array [TipoIndice] of TipoElemento;

}

procedure RicercaEsaustiva (A    : TipoVettore;
                            n    : TipoIndice;
                            elem : TipoElemento;
                            var trovato : boolean;
                            var posiz   : TipoIndice);

{ Esegue la ricerca esaustiva di elem tra i primi n elementi di A.
  Alla fine dell'esecuzione della procedura la variabile booleana trovato e`
  TRUE se l'elemento e` presente in A, FALSE altrimenti.
  Se l'elemento e` presente, posiz contiene l'indice della componente pari
  all'elemento cercato. }

var
  i : integer;

begin { RicercaEsaustiva }
  i := 0;
  repeat
    i := i + 1
  until (A[i] = elem) or (i = n);
  if (A[i] = elem) then
  begin
    trovato := TRUE;
    posiz := i
  end
  else
    trovato := FALSE
end; { RicercaEsaustiva }