2004/05 – Fase scolastica – 05

Si consideri la seguente funzione:

Type
   sequenza = Array[1..100] Of Integer;
 
Function calcola(numero: Integer; vettore: sequenza; i: Integer; j: Integer): Boolean;
Var
   m, off: Integer;
Begin
   m:=(i+j) Div 2;
   off:=vettore[m]-numero;
   If off = 0 Then
      calcola:=true
   Else If i = j Then
      calcola:=false
   Else If off > 0 Then
      calcola:=calcola(numero, vettore, i, m-1)
   Else
      calcola:=calcola(numero, vettore, m+1, j)
End;

Determinare quale fra i seguenti problemi è risolto dall’algoritmo implementato:

Risposte:

  1. determinare se il parametro numero si trova all’interno dell’array vettore fra gli indici i e j
  2. determinare se il parametro numero si trova all’interno dell’array vettore fra gli indici i e j quando i valori in vettore sono ordinati dal più piccolo al più grande
  3. determinare se il parametro numero si trova all’interno dell’array vettore fra gli indici i e j quando i valori in vettore sono ordinati dal più grande al più piccolo
  4. nessuna delle precedenti.