Proseguendo il precedente articolo dedicato alle funzioni ricorsive in C++, presentiamo una raccolta di 22 nuovi esercizi progettati per affinare le abilità di programmazione degli studenti. Ogni esercizio è accompagnato da una consegna chiara e mirata, e un’analisi del suo obiettivo didattico per guidare l’apprendimento.

  1. Controllare se un numero è pari
    Scrivi una funzione ricorsiva che verifichi se un numero è pari. La funzione deve restituire true se il numero è pari, e false altrimenti.
    Obiettivo didattico: Questo esercizio introduce il concetto di base della ricorsione, insegnando agli studenti a lavorare con operazioni modulari e condizioni.
  2. Calcolare il resto di una divisione
    Scrivi una funzione ricorsiva per calcolare il resto di una divisione tra due numeri senza usare l’operatore %.
    Obiettivo didattico: Questo esercizio aiuta a comprendere la sottrazione ricorsiva e sviluppa l’intuizione per risolvere problemi senza operatori predefiniti.
  3. Calcolo del fattoriale
    Scrivi una funzione ricorsiva che calcoli il fattoriale di un numero positivo. Il fattoriale è definito come il prodotto di tutti gli interi da 1 a n.
    Obiettivo didattico: Perfetto per introdurre l’idea di ricorsione a ritroso, questo esercizio consolida il concetto di caso base e caso ricorsivo.
  4. Somma degli elementi di un array
    Scrivi una funzione ricorsiva che calcoli la somma degli elementi di un array di interi.
    Obiettivo didattico: Insegna agli studenti a iterare ricorsivamente sugli array e a implementare la somma cumulativa.
  5. Verifica se un array è ordinato in ordine crescente
    Implementa una funzione ricorsiva per verificare se gli elementi di un array sono ordinati in ordine crescente.
    Obiettivo didattico: Introduce il concetto di confronto ricorsivo tra elementi consecutivi di un array.
  6. Contare gli elementi pari in un array
    Scrivi una funzione ricorsiva che conti il numero di elementi pari in un array.
    Obiettivo didattico: Questo esercizio permette di applicare condizioni e contatori in un contesto ricorsivo.
  7. Trova la posizione del valore massimo in un array
    Scrivi una funzione ricorsiva che individui l’indice dell’elemento massimo in un array.
    Obiettivo didattico: Aiuta a costruire algoritmi di ricerca sfruttando la ricorsione.
  8. Somma dei primi N numeri dispari
    Scrivi una funzione ricorsiva per calcolare la somma dei primi N numeri dispari.
    Obiettivo didattico: Stimola il ragionamento sui numeri dispari e sull’accumulazione tramite ricorsione.
  9. Separare le cifre di un numero con un trattino
    Scrivi una funzione ricorsiva che separi le cifre di un numero con un trattino. Ad esempio, 145 diventa “1-4-5”.
    Obiettivo didattico: Questo esercizio sviluppa abilità di manipolazione di stringhe e numeri.
  10. Inverso di un numero
    Crea una funzione ricorsiva che inverta un numero. Ad esempio, 123 diventa 321.
    Obiettivo didattico: Introduce la manipolazione dei numeri attraverso operazioni di modulo e divisione.
  11. Verifica se un array è un palindromo
    Scrivi una funzione ricorsiva per verificare se un array è un palindromo.
    Obiettivo didattico: Rinforza i concetti di confronto agli estremi di un array.
  12. Ricostruzione di una frase
    Scrivi una funzione ricorsiva che concateni gli elementi di un array di parole in una stringa separata da spazi.
    Obiettivo didattico: Migliora le abilità di lavoro con stringhe e array.
  13. Stampa di una stringa invertita
    Implementa una funzione ricorsiva che inverta una stringa.
    Obiettivo didattico: Dimostra come manipolare ricorsivamente le stringhe.
  14. Calcolo della divisione intera
    Crea una funzione ricorsiva che calcoli il quoziente intero di due numeri senza usare /.
    Obiettivo didattico: Rafforza la comprensione della sottrazione iterativa.
  15. Controllare se due numeri sono uguali
    Scrivi una funzione ricorsiva per verificare l’uguaglianza tra due numeri.
    Obiettivo didattico: Introduce condizioni semplici nella ricorsione.
  16. Convertire un numero decimale in binario
    Scrivi una funzione ricorsiva per convertire un numero in binario.
    Obiettivo didattico: Unisce la ricorsione con i sistemi numerici.
  17. Generare numeri da 1 a N in ordine inverso
    Implementa una funzione ricorsiva che stampi i numeri da 1 a N in ordine inverso.
    Obiettivo didattico: Introduce la ricorsione con decremento.
  18. Verificare se un numero è una potenza di 2
    Scrivi una funzione ricorsiva che verifichi se un numero è una potenza di 2.
    Obiettivo didattico: Rafforza i concetti di divisione iterativa e logica binaria.
  19. Stampa il primo carattere di una stringa
    Scrivi una funzione ricorsiva per stampare il primo carattere di una stringa.
    Obiettivo didattico: Abilita l’estrazione di elementi da stringhe tramite ricorsione.
  20. Calcolo della serie di Fibonacci
    Scrivi una funzione ricorsiva per calcolare il n-esimo termine della serie di Fibonacci.
    Obiettivo didattico: Introduce una delle applicazioni più classiche della ricorsione.
  21. Numero di zeri in un numero
    Scrivi una funzione ricorsiva che conti quanti zeri ci sono in un numero.
    Obiettivo didattico: Aiuta a manipolare numeri e condizioni.
  22. Stampa di numeri da 1 a N
    Scrivi una funzione ricorsiva per stampare tutti i numeri da 1 a N.
    Obiettivo didattico: Consolidamento della ricorsione con incremento.

Questi esercizi rappresentano un passo fondamentale per chi vuole padroneggiare le funzioni ricorsive in C++. Studenti e insegnanti possono utilizzare questa guida per approfondire argomenti chiave della programmazione ricorsiva.