Corso di Laboratorio di Informatica
Ricorsione
-
Esercizio 1
Progettare e codificare un programma in C che calcoli il quoziente
della divisione tra interi. Svolgere l'esercizio nelle due versioni ricorsiva
e tail ricorsiva.
Suggerimento: x/y = (x - y + y)/y = 1 + (x - y)/y).
-
Esercizio 2
Scrivere una funzione C che calcola, dati due numeri interi M ed N,
la potenza MN. Si progettino le versioni ricorsiva, ricorsiva
tail e iterativa.
-
Esercizio 3
Variante dell'esercizio precedente: si cerchi di minimizzare il numero
dei prodotti che vengono effettuati, sfruttando opportunamente la seguente
osservazione:
Se N e' dispari, allora MN=(MN-1)*M
Se N e' pari, allora MN=(MN/2)2
La funzione scritta e' ricorsiva? E' tail-ricorsiva? E' possibile scriverla
in maniera tail-ricorsiva? E' possibile scriverla in maniera non ricorsiva?
-
Esercizio 4
Scrivere una funzione C che calcola sin(x) utilizzando lo sviluppo
di Taylor fino al termine n-esimo.
Suggerimento: