Attachment '20121218-LAB-array+ricorsione.txt'
Download 1 ESERCIZIO 1.
2 ------------
3 Si implementi in Java un metodo "void" RICORSIVO che, ricevuto un array di
4 interi, sia v, ed un intero, sia x, operi come illustrato di seguito.
5 Sostanzialmente, il metodo deve "saltellare", partendo dall'elemento in
6 posizione "x", da un elemento all'altro dell'array, fino a quando non accede ad
7 un elemento uguale a "-1". Ad ogni passo, se si trova nella posizione "k",
8 dovra' saltare nella posizione "v[k]". Prima di ogni salto, deve stampare su
9 standard output il valore contenuto nella posizione corrente. ESEMPIO:
10
11 -----------------------
12 valore : | 2 | 4 | 3 | 5 |-1 | 1 | <--- array "v"
13 -----------------------
14 posizione : 0 1 2 3 4 5 <--- indici nell'array "v"
15
16
17 se il metodo fosse invocato con parametri il vettore "v" su illustrato ed il
18 valore intero x=2, il metodo dovrebbe produrre l'output seguente:
19
20 x=2 -> v[2]=3
21 x=3 -> v[3]=5
22 x=5 -> v[5]=1
23 x=1 -> v[1]=4
24 x=4 -> v[4]=-1
25
26 e poi fermarsi.
27
28 BONUS: Invece che "void", si progetti il metodo come "int", e gli si faccia
29 restituire il numero di salti effettuati. Nell'esempio su riportato, dovrebbe
30 stampare: "Sono stati visitati 5 elementi, ed effettuati 4 salti."
31
32
33 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
34
35
36 ESERCIZIO 2.
37 ------------
38 Si modifichi la soluzione proposta per l'esercizio 1 tenendo conto delle
39 seguenti considerazioni, INCREMENTALMENTE (quindi si devono realizzare 3 nuove
40 versioni del programma):
41 1. le procedure di salto terminano non solo se si incontra -1, ma anche se si
42 incontra un numero che non puo' rappresentare un indice nell'array (quindi un
43 numero negativo o superiore a v.length-1)
44 2. oltre che secondo quanto indicato al punto 1., le procedure di salto
45 terminano anche se il numero di salti supera ((v.length)^2).
46 3. si noti che, in accordo a quanto descritto, possono esserci casi in cui il
47 metodo non smette mai di "saltare" da un punto all'altro, ripetendo piu' volte
48 salti gia' effettuati: il metodo deve essere in grado di CAPIRE se si trova in
49 una situazione come questa, comunicarlo all'utente e terminare.
Attached Files
You are not allowed to attach a file to this page.