2008/09 – Fase scolastica – 10

Si consideri la seguente funzione:

Const
   N = 5;
Procedure calcola();
Var
   vett: Array[1..N] Of Integer;
   i   : Integer;
Begin
   For i:=1 To N Do
      vett[i] := i-1;
   For i:=1 To N Do
      vett[i]:=vett[((vett[i]*(i-1)) Mod N)+1];
End;

Indicare il contenuto del vettore vett al termine dell’esecuzione della funzione calcola.

Risposte:

  1. [0, 1, 4, 4, 1]
  2. [0, 1, 4, 3, 1]
  3. [0, 1, 4, 3, 4]
  4. nessuna delle precedenti.

Soluzione: a (0, 1, 4, 4, 1).


Soluzione

Soluzioni commentate

Al termine del primo ciclo le componenti del vettore sono pari a 0, 1, 2, 3, 4.

Se ora eseguiamo passo passo il ciclo successivo, possiamo verificare che al termine i valori memorizzati nel vettore sono effettivamente quelli della risposta a.