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

Attachment '20111125-LAB-ricorsione-array.txt'

Download

   1 ESERCIZIO 1.
   2 ------------
   3 Scrivere un programma Java che legga da input una sequenza di cifre intere 
   4 (quindi comprese tra 0 e 9) e le memorizzi in un array; la dimensione dell'array 
   5 (e quindi quanti elementi sono contenuti nella sequenza) deve essere richiesta 
   6 preventivamente all'utente (quindi: l'utente immettera' un numero - sia esso k - 
   7 e il programma leggera' k interi da input, memorizzandoli in un array di 
   8 dimensione k). Quindi, il programma deve stampare su standard output prima la 
   9 somma di tutti gli elementi (cifre) dell'array, e poi le occorrenze di ciascuna 
  10 cifra nella sequenza. 
  11 
  12 ESEMPIO: se la sequenza prevedesse 5 cifre (su richiesta dell'utente), e fosse 
  13 la seguente:
  14 	  6 5 2 1 1 
  15 il programma dovrebbe stampare in output prima che la somma degli elementi e' 
  16 15, e poi, riguardo alle occorrenze, che la cifra '0' compare zero volte, la 
  17 cifra '1' compare 2 volte, la cifra '2' compare una volta, e cosi' via fino alla 
  18 cifra '9'.
  19 
  20 
  21 
  22 ESERCIZIO 2.
  23 ------------
  24 Scrivere un programma java che, letto da input un numero intero, determini quale 
  25 e' la cifra piu' grande che esso contiene, tramite un metodo RICORSIVO. Il 
  26 programma poi, ancora tramite un metodo ricorsivo, stampi i fattori primi che 
  27 compongono il numero letto in precedenza. 
  28 
  29 
  30 
  31 ESERCIZIO 3.
  32 ------------
  33 Si implementi in Java un metodo RICORSIVO che, ricevuto un array di interi ed un 
  34 numero intero n, verifichi se n รจ contenuto nell'array oppure no.
  35 
  36 
  37 
  38 ESERCIZIO 4.
  39 ------------
  40 Si implementi in Java un metodo RICORSIVO che, ricevuto un array di interi, 
  41 restituisca il valore massimo in esso contenuto. 
  42 
  43 
  44 
  45 ESERCIZIO 5.
  46 ------------
  47 Si implementi in Java un metodo "void" RICORSIVO che, ricevuto un array di 
  48 interi, sia v, ed un intero, sia x, operi come illustrato di seguito. 
  49 Sostanzialmente, il metodo deve "saltellare", partendo dall'elemento in 
  50 posizione "x", da un elemento all'altro dell'array, fino a quando non accede ad 
  51 un elemento uguale a "-1". Ad ogni passo, se si trova nella posizione "k", 
  52 dovra' saltare nella posizione "v[k]". Prima di ogni salto, deve stampare su 
  53 standard output il valore contenuto nella posizione corrente. ESEMPIO: 
  54 
  55               -----------------------
  56 valore    :  | 2 | 4 | 3 | 5 |-1 | 1 |  <--- array "v"
  57               -----------------------
  58 posizione :    0   1   2   3   4   5    <--- indici nell'array "v"
  59 
  60 
  61 se il metodo fosse invocato con parametri il vettore "v" su illustrato ed il 
  62 valore intero x=2, il metodo dovrebbe produrre l'output seguente:
  63 
  64  x=2 -> v[2]=3
  65  x=3 -> v[3]=5
  66  x=5 -> v[5]=1
  67  x=1 -> v[1]=4
  68  x=4 -> v[4]=-1
  69 
  70 e poi fermarsi.
  71 
  72 BONUS: Invece che "void", si progetti il metodo come "int", e gli si faccia 
  73 restituire il numero di salti effettuati. Nell'esempio su riportato, dovrebbe 
  74 stampare: "Sono stati visitati 5 elementi, ed effettuati 4 salti."
  75 
  76 
  77 
  78 ESERCIZIO 6.
  79 ------------
  80 
  81 Si modifichi la soluzione proposta per l'esercizio 5 tenendo conto delle 
  82 seguenti considerazioni, INCREMENTALMENTE (quindi si devono realizzare 3 nuove 
  83 versioni del programma):
  84  1. le procedure di salto terminano non solo se si incontra -1, ma anche se si 
  85  incontra un numero che non puo' rappresentare un indice nell'array (quindi un 
  86  numero negativo o superiore a v.length-1)
  87  2. oltre che secondo quanto indicato al punto 1., le procedure di salto 
  88  terminano anche se il numero di salti supera ((v.length)^2).
  89  3. si noti che, in accordo a quanto descritto, possono esserci casi in cui il 
  90  metodo non smette mai di "saltare" da un punto all'altro, ripetendo piu' volte 
  91  salti gia' effettuati: il metodo deve essere in grado di CAPIRE se si trova in 
  92  una situazione come questa, comunicarlo all'utente e terminare.

Attached Files

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