La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive.

Presentazioni simili


Presentazione sul tema: "Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive."— Transcript della presentazione:

1 Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

2 Finalità del corso Piero Scotto - C142

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 10

11 Piero Scotto - C1411

12 Piero Scotto - C1412

13 Piero Scotto - C1413

14 Piero Scotto - C1414

15 Piero Scotto - C1415

16 Piero Scotto - C1416

17 Piero Scotto - C1417

18 Piero Scotto - C1418 7OL Esercizio N° 19 Olimpiadi 2010– La risposta vale 3 punti. Si consideri il seguente frammento di programma: int succ(int i) { if (i<=2) return(1); else return(3*succ(i-1)+2*succ(i-2)-succ(i-3)); } main() { printf("num=%d\n",succ(7)); } Cosa viene visualizzato a video dallesecuzione di main()?

19 Piero Scotto - C1419 int succ(int i) { if (i<=2) return(1); else return(3*succ(i-1)+2*succ(i-2)-succ(i-3)); } main() { printf("num=%d\n",succ(7)); } La funzione succ è ricorsiva perché richiama se stessa. Per capirne il funzionamento possiamo inserire il numero 7 (che rappresenta i)

20 Piero Scotto - C1420 int succ(int i) { if (i<=2) return(1); else return(3*succ(i-1)+2*succ(i-2)-succ(i-3)); } se i=7 (3*succ(6)+2*succ(5)-succ(4)) Ora ciascuna succ(n) richiama se stessa: succ(6)=3*succ(5)+2*succ(4)-succ(3) succ(5)=3*succ(4)+2*succ(3)-succ(2) con succ(2)=1 succ(4)=3*succ(3)+2*succ(2)-succ(1) con succ(1)=1 succ(3)=3*succ(2)+2*succ(1)-succ(0) con succ(0)=1 succ(3)=3*1+2*1-1=4 da cui si calcolano le altre


Scaricare ppt "Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive."

Presentazioni simili


Annunci Google