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

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

Embed Size (px)

Citation preview

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

Piero Scotto - C14 1

C14 #7 Do While – BreakFunzioni ricorsive

Page 2: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 2

Finalità del corso

Finalità del corso

Finalità del corso

Finalità del corso

Finalità del corso

Page 3: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 3

Page 4: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 4

Page 5: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 5

Page 6: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 6

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

Piero Scotto - C14 7

Page 8: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 8

Page 9: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 9

Page 10: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 10

Page 11: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 11

Page 12: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 12

Page 13: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 13

Page 14: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 14

Page 15: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 15

Page 16: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 16

Page 17: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 17

Page 18: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 18

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);elsereturn(3*succ(i-1)+2*succ(i-2)-succ(i-3));}main() {printf("num=%d\n",succ(7));}Cosa viene visualizzato a video dall’esecuzione di main()?

Page 19: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 19

int succ(int i) {if (i<=2)return(1);elsereturn(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)

Page 20: Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive

Piero Scotto - C14 20

int succ(int i) {if (i<=2)return(1);elsereturn(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)=1succ(4)=3*succ(3)+2*succ(2)-succ(1) con succ(1)=1succ(3)=3*succ(2)+2*succ(1)-succ(0) con succ(0)=1succ(3)=3*1+2*1-1=4 da cui si calcolano le altre