2004/05 – Fase scolastica – 06

Si consideri la seguente funzione:

Function trova(bersaglio: Integer; valori: sequenza): Integer;
Var
   contatore: Integer;
Begin
   contatore:=1;
   While valori[contatore] <> bersaglio Do
      Begin
         contatore:=contatore+1;
      End;
   trova:=contatore-1;
End;

Essa serve a determinare l’indice in cui si trova un certo valore (rappresentato dal parametro bersaglio) in un vettore (rappresentato dal parametro valori).

La funzione, però, funziona sempre solo se vale un vincolo specifico rispetto ai dati in ingresso, quale?


Soluzione: Che il valore cercato esista effettivamente nel vettore di input.


Soluzione

Tratta da: Materiale didattico 2008

Si consideri che nel caso il valore non esista nel vettore, non essendoci un controllo sulla fine del vettore, avrà luogo una condizione di errore al termine della scansione del vettore stesso.