Si consideri il seguente frammento di programma
Type sequenza = array[1..100] of integer; Function verifica(vett: sequenza; n: Integer): Boolean; Var i, j : integer; appoggio: sequenza; Begin j:=1; For i:=1 To n Do If(j = 0) Then Begin appoggio[j]:=vett[i]; j:=j+1; End Else If(appoggio[j-1] = vett[i]) Then j:=j-1 Else Begin appoggio[j]:=vett[i]; j:=j+1; End; If(j = 1) Then verifica:=true Else verifica:=false; End;
Si considerino i seguenti tre vettori
- {5, 8, 1, 1, 2, 4, 4, 8, 8, 2, 3, 9, 7, 7, 9, 3, 8, 2, 2, 5}
- {6, 7, 9, 9, 5, 4, 3, 3, 4, 5, 7, 6, 2, 2, 2, 2, 4, 5, 4, 5}
- {3, 3, 3, 2, 2, 3, 1, 5, 5, 1, 3, 5, 7, 6, 6, 7, 5, 3, 1, 1}.
Si supponga di invocare tre volte la funzione verifica passando nell’ordine i tre vettori (assumendo che il secondo parametro sia 20 in tutti e tre i casi).
Quali tre valori saranno restituiti nell’ordine dalle tre invocazioni?
Risposte:
- true false true
- true true true
- true false false
- nessuna delle precedenti.