welcome: please sign in
location: attachment:20131217-LAB-metodi-array-ricorsione.txt of InformaticaCDLmatematica

Attachment '20131217-LAB-metodi-array-ricorsione.txt'

Download

   1 Esercizio 1.
   2 ============
   3 Scrivere in Java un programma che sfrutti un metodo RICORSIVO per far si' 
   4 che, dato un numero intero, determini quale e' la cifra piu' grande che 
   5 esso contiene e la stampi su standard output.
   6 
   7 
   8 Esercizio 2.
   9 ============
  10 Scrivere in Java un programma (che sfrutti adeguatamente dei metodi statici) 
  11 che, letto da input un numero intero, sia N, PRIMA stampi il numero speculato 
  12 di N (ovvero il numero con le stesse cifre di N, ma in posizioni opposte), e POI 
  13 ne stampi la scomposizione in base 10 di N (unita', decine, centinaia, etc...).
  14 ESEMPIO: se il numero inserito fosse 
  15 
  16 	8723
  17 
  18 il programma dovrebbe PRIMA stampare
  19 
  20 	8723 speculato = 3278
  21 
  22 e POI stampare
  23 
  24 	8723 = 3*10^0 + 2*10^1 + 7*10^2 + 8*10^3
  25 
  26 
  27 Esercizio 3.
  28 ============
  29 Si implementi in Java un metodo "void" RICORSIVO che, ricevuto un array di 
  30 interi, sia v, ed un intero, sia x, operi come illustrato di seguito. 
  31 Sostanzialmente, il metodo deve "saltellare", partendo dall'elemento in 
  32 posizione "x", da un elemento all'altro dell'array, fino a quando non accede ad 
  33 un elemento uguale a "-1". Ad ogni passo, se si trova nella posizione "k", 
  34 dovra' saltare nella posizione "v[k]". Prima di ogni salto, deve stampare su 
  35 standard output il valore contenuto nella posizione corrente. ESEMPIO: 
  36 
  37               -----------------------
  38 valore    :  | 2 | 4 | 3 | 5 |-1 | 1 |  <--- array "v"
  39               -----------------------
  40 posizione :    0   1   2   3   4   5    <--- indici nell'array "v"
  41 
  42 
  43 se il metodo fosse invocato con parametri il vettore "v" su illustrato ed il 
  44 valore intero x=2, il metodo dovrebbe produrre l'output seguente:
  45 
  46  x=2 -> v[2]=3
  47  x=3 -> v[3]=5
  48  x=5 -> v[5]=1
  49  x=1 -> v[1]=4
  50  x=4 -> v[4]=-1
  51 
  52 e poi fermarsi.
  53 
  54 BONUS: Invece che "void", si progetti il metodo come "int", e gli si faccia 
  55 restituire il numero di salti effettuati. Nell'esempio su riportato, dovrebbe 
  56 stampare: "Sono stati visitati 5 elementi, ed effettuati 4 salti."
  57 
  58 
  59 Esercizio 4.
  60 ============
  61 Si modifichi la soluzione proposta per l'esercizio 1 tenendo conto delle 
  62 seguenti considerazioni, INCREMENTALMENTE (quindi si devono realizzare 3 nuove 
  63 versioni del programma):
  64  1. le procedure di salto terminano non solo se si incontra -1, ma anche se si 
  65  incontra un numero che non puo' rappresentare un indice nell'array (quindi un 
  66  numero negativo o superiore a v.length-1)
  67  2. oltre che secondo quanto indicato al punto 1., le procedure di salto 
  68  terminano anche se il numero di salti supera ((v.length)^2).
  69  3. si noti che, in accordo a quanto descritto, possono esserci casi in cui il 
  70  metodo non smette mai di "saltare" da un punto all'altro, ripetendo piu' volte 
  71  salti gia' effettuati: il metodo deve essere in grado di CAPIRE se si trova in 
  72  una situazione come questa, comunicarlo all'utente e terminare.

Attached Files

You are not allowed to attach a file to this page.