ESERCIZI SULLA RICORSIONE

  1. Scrivere una funzione ricorsiva che, legga una sequenza di interi da input, terminata da 0 e che restituisca il numero di tutti gli elementi che sono uguali alla somma dei due elementi immediatamente precedenti nella sequenza. Ad esempio se la sequenza fosse 2 7 9 3 12 4 0, la funzione dovrebbe restituire 2, dato che 9 = 2 + 7 e che 12 = 3 + 9.

  2. Si scriva una funzione ricorsiva che legge in input una sequenza di interi terminati da zero e verifica se la somma degli elementi letti è pari, senza utilizzare la somma, ma ricordando l'aritmetica dei numeri pari e dispari, ovvero ricorrendo all'operazione di modulo e agli operatori logici per la composizione dei risultati parziali.

  3. Definire, in modo ricorsivo, una funzione che, dato un array di interi, controlla se esistono esattamente occ occorrenze del valore val, che abbia con prototipo

    boolean ControllaOcc(int v1[], int dim, int val, int occ)}


  4. Scrivere una funzione ricorsiva che dato un carattere c, legga una sequenza di caratteri da input e controlli che la sequenza sia palindroma, con elemento centrale esattamente il carattere c. Si assuma che il carattere c appaia una e una sola volta all'interno della sequenza e in posizione centrale rispetto alla sequenza letta.

  5. Si definisca una funzione ricorsiva che dato un array non vuoto vet di caratteri alfabetici minuscoli e la sua dimensione dim, restituisca il carattere che precede (rispetto all'ordine alfabeltico) tutti i caratteri contenuti nell'array. Se l'array contiene a la funzione deve restiuire a. Se ad esempio l'array contiene la sequenza: h s l f p, allora la funzione restituisce il carattere e.
    N.B. Ogni chiamata ricorsiva deve risolvere esattamente il problema - posto in origine per tutto l'array - per una porzione dell'array.