function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; end
|
|
- Raimondo Fiori
- 5 anni fa
- Visualizzazioni
Transcript
1
2
3
4 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii;
5 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; n! n > 0 n! = n n 1 n 2 2 1
6 fattoriale(2) ans = 2 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii;
7 fattoriale(2) ans = 2 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii;
8 k = 2; f2 = fattoriale(k); function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii;
9 k = 2; f2 = fattoriale(k); function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; n, f, ii k f2
10 f2 = fattoriale(2) f2 = 2 f3 = fattoriale(3) f3 = 6 f5 = fattoriale(5) f5 = 120 f6 = fattoriale(6) f6 = 720 f4 = fattoriale(4) f4 = 24
11 n! = n n 1! n! = n n 1 n n 1!
12
13
14 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n - 1);
15 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n - 1); 0! = 1
16 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n - 1); n! = n n 1!
17
18
19
20
21
22 f(n) = n! = n (n 1) (n 2) 3 2 1
23 f(n) = n! = n (n 1) (n 2) f(n) = n f(n 1) f(0) = 1
24 f(n) = n! = n (n 1) (n 2) f(n) = n f(n 1) f(0) = 1 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1);
25 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
26 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
27 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
28 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
29 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
30 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
31 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
32 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3)
33 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1); factric(3) ans = 6
34 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1);
35
36 function [f]=factric(n) f=n*factric(n-1);
37 function [f]=factric(n) if (n==0) f=1; f=n*factric(n-1);
38 function [f]=factric(n) if (n==0) f=1; f=n*factric(n);
39 >> factric(600) Out of memory. The likely cause is an infinite recursion within the program. Error in fatric at line XXX
40
41
42 function somma = sommanumericompresi(a,b) if a == b somma = a; disp(['caso base somma vale ', num2str(somma)]); disp(['prima chiamata a = ',num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata a = ',num2str(a)]);
43 function somma = sommanumericompresi(a,b) if b< a somma = 0; if a == b somma = a; disp(['caso base somma vale ', num2str(somma)]); disp(['prima chiamata a = ',num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata a = ',num2str(a)]);
44 function somma = sommanumericompresi(a,b) if b< a somma = 0; return; if a == b somma = a; disp(['caso base somma vale ', num2str(somma)]); disp(['prima chiamata a = ',num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata a = ',num2str(a)]);
45 function somma=calcolasommacompresi2(a_temp,b_temp) a=min([a_temp,b_temp]); b=max([a_temp,b_temp]); if(a==b) disp(['caso base 1 a=',num2str(a),'b=',num2str(b)]) somma=a; if(b-a==1) disp(['caso base 2 a=',num2str(a),'b=',num2str(b)]) somma=a+b; disp(['prima della chiamata ricorsiva a=',num2str(a),'b=',num2str(b)]) somma=a+calcolasommacompresi2(a+1,b-1)+b; disp(['dopo la chiamata ricorsiva a=',num2str(a),'b=',num2str(b),' somma =',num2str(somma)])
46 function somma = sommacompresi(a, b) % calcolare la somma degli interi tra a e b if(b < a) somma = 0; return a b a == 1 b < if (a == b) somma = a; somma = a + sommacompresi(a + 1, b - 1) + b;
47
48 function gg = stagno(n, f, N) % caso base: se ho già N ninfee nello stagno % non devo aspettare alcun giorno if (n >= N) gg = 0; % non abbiamo ancora N ninfee -> chiamata ricorsiva: % il numero di giorni necessari per coprire lo stagno è % uguale a: un giorno + % il numero di giorni che saranno necessari domani % (quando le ninfee saranno diventate n*f). gg = 1 + stagno(n * f, f, N);
49 function [giorni, vettore_n] = ninfee(n, f, N) % caso base if (n >= N) giorni = 0; vettore_n = []; fprintf('\n caso base oggi ho %2.2f ninfee', n); ndomani = round(n * f); if ndomani == n giorni = nan; fprintf('\ncrescita o popolazione iniziale insufficiente'); return % chiamata ricorsiva fprintf('\n oggi ho %2.2f ninfee', n); % la popolazione aumenta [giorni, vettore_n] = ninfee(ndomani, f, N); giorni = giorni + 1; vettore_n = [ndomani, vettore_n];
50
51 function s = calcolalunghezza(str) if(isempty(str)) s = 0; s = 1 + calcolalunghezza(str(2 : ));
52
53 function stampaalcontrario(frase) % caso base if isempty(frase) % return % chiamata ricorsiva disp(frase()); % stampa al contrario stampaalcontrario(frase(1:-1))
54
55 function stampaalcontrario(frase) % caso base if isempty(frase) % return % chiamata ricorsiva stampaalcontrario(frase(1:-1)) disp(frase()); % stampa dritto
56 function stampa(frase) % caso base if isempty(frase) % return stampa(frase(2:)) disp(frase(1));
57 function stampa(vettore) if (length(vettore)==1) % caso base fprintf('%c',vettore(1)); fprintf('%c',vettore(1)); fprintf('%c',vettore(1)); stampa(vettore(2:)); fprintf('%c',vettore(1));
58 function stampaalcontrario(str) if(isempty(str)) % return disp(str()); stampaalcontrario(str(1 : -1)); disp(str());
59 function stampaalcontrario(str) if(isempty(str)) % return disp(str()); stampaalcontrario(str(1 : -1)); disp(str());
60 function stampaalcontrario(str) if(isempty(str)) % return disp(str()); stampaalcontrario(str(2 : )); disp(str());
61 function stampaalcontrario(str) if(isempty(str)) % return disp(str()); stampaalcontrario(str(2 : )); disp(str());
62 function stampaalcontrario(str) if(isempty(str)) % return disp(str(1)); stampaalcontrario(str(2 : )); disp(str(1));
63 function stampaalcontrario(str) if(isempty(str)) % return disp(str(1)); stampaalcontrario(str(2 : )); disp(str(1));
64 function stampaalcontrario(str) if(isempty(str)) % return disp(str(1)); stampaalcontrario(str(1 : -1)); disp(str(1));
65 function stampaalcontrario(str) if(isempty(str)) % return disp(str(1)); stampaalcontrario(str(1 : -1)); disp(str(1));
66 function vet = chefa(vet) % dimmi che fa if isempty(vet) length(vet) == 1 return if all(vet(1) >= vet(2 : )) % punto 1) del codice return vet(vet == vet(1)) = []; vet = chefa(vet); >> chefa([ ]) >> chefa([ ]) >> chefa([ ])
67 >> chefa([ ]) ans = >> chefa([ ]) ans = >> chefa([ ]) ans = 19
68 )) all(vet(1) > vet(2 : >> chefa([ ]) ans =
69
70 function [M]=MCDeuclidRic(m,n) if m==n M=m; if m>n M = MCDeuclidRic(m-n,n); M = MCDeuclidRic(m,n-m);
71
72
73 function [fib]=fiboric(n) if n==1 n==2 fib=1; fib=fiboric(n-2)+fiboric(n-1);
74 function [fl]=fiblist(n) fl(1)=1; fl(2)=1; for k=3:n fl(k)=fl(k-2)+fl(k-1);
75
76
77
78
79 n d n d
80 function r=cosafa(array) k=size(array,2); if (k == 1) r = 1; if (k==2) if (array(1)+array(2)==10) r = 1; r=0; if (array(1)+array(k)==10) r = cosafa(array(2:k-1)); r=0;
81 function [ris] = mistero(v, n) if (n > 1) v2 = v(mod(v, n) ~= 0 v == n); ris = mistero(v2, n-1); ris = v;
82 f a, b f a f b 0 c a, b f c = 0. f
83 calcolazeri f a, b f x == 0 f x < ε ε
function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; end
function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; n! n > 0 n! = n n 1 n 2 2 1 fattoriale(2) ans = 2 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; k = 2; f2 = fattoriale(k); function
Dettaglifunction f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; end
function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; n! n > 0 n! = n n 1 n 2 2 1 fattoriale(2) ans = 2 function f = fattoriale(n) f
Dettaglistudente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24;
struct struct studente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24; struct nomestruct.nomecampo; nomestruct.nomecampo nomecampo (indice) studente.nome = 'Giovanni
Dettaglistudente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24;
struct struct studente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24; struct nomestruct.nomecampo; nomestruct.nomecampo nomecampo (indice) studente.nome = 'Giovanni
Dettaglistudente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24;
struct struct studente = struct('nome', 'Giovanni', 'eta', 24) studente.nome = 'Giovanni'; studente.eta = 24; struct nomestruct.nomecampo; nomestruct.nomecampo nomecampo (indice) studente.nome = 'Giovanni
DettagliProgrammazione ricorsiva
Programmazione ricorsiva Fondamenti di Informatica Ricorsione q Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma P richiama un altro sottoprogramma
DettagliRICORSIONE. Informatica B - A.A. 2013/2014
RICORSIONE Informatica B - A.A. 2013/2014 RICORSIONE Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma P richiama un altro sottoprogramma Q che comporta
DettagliMatlab: funzioni. Daniele Loiacono, Vittorio Zaccaria
Matlab: funzioni Daniele Loiacono, Vittorio Zaccaria Informatica B - Codice Corso: 081369 - A.A. 2010/2011 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z INGEGNERIA ENERGETICA (BV)
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA INFORMATICA B + C
INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali La ricorsione Ricorsione Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. La ricorsione
INFORMATICA B Ingegneria Elettrica La ricorsione Ricorsione Che cos è la ricorsione? Un sottoprogramma P richiama se stesso (ricorsione diretta) Un sottoprogramma P richiama un altro sottoprogramma Q che
DettagliMatlab: Funzioni. Informatica B. Daniele Loiacono
Matlab: Funzioni Informatica B Funzioni A cosa servono le funzioni? 3 x = input('inserisci x: '); fx=1 for i=1:x fx = fx*x if (fx>220) y = input('inserisci y: '); fy=1 for i=1:y fy = fy*y A cosa servono
Dettagli3 aprile o Esonero: mercoledi 17 aprile ore 11:30 14:00 consulta la pag. WEB alla voce esoneri. si raccomanda la puntualita!
3 aprile 2002 Avvisi: 1 o Esonero: mercoledi 17 aprile ore 11:30 14:00 consulta la pag. WEB alla voce esoneri si raccomanda la puntualita! Qualche informazione sull esonero Argomenti trattati: svolti nelle
DettagliIterazione Vs Ricorsione
Iterazione Vs Ricorsione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 7 Gennaio 2014 Nota per i 7 Cosa: Prova colpo-singolo No libri, e/o appunti 1 exe in C in 30 Quando Domani:
DettagliLezione di Laboratorio di Prgrammazione: /05/2019 a.a. 2018/2019 R.Prevete
Lezione di Laboratorio di Prgrammazione: 19 13/05/2019 a.a. 2018/2019 R.Prevete Ricorsione La struttura di una funzione ricorsiva per un problema P di dimensione n (n è la dimensione dei dati input, ad
Dettaglix = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; end if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; end
x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx *
DettagliIterazione Vs Ricorsione
Iterazione Vs Ricorsione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 Obiettivi Induzione matematica Iterazione Cosa significa ricorsivo Iterazione Vs ricorsione
DettagliPreparazione alla Seconda Prova in Itinere
Preparazione alla Seconda Prova in Itinere Informatica B AA 14/15 Giacomo Boracchi 28 Gennaio 2015 giacomo.boracchi@polimi.it REMINDER MOLTO IMPORTANTE! SOLO CHI HA PASSATO LA PRIMA PROVA INTERMEDIA POTRA
DettagliEsempio: il fattoriale di un numero fact(n) = n! n!: Z! N n! vale 1 se n " 0 n! vale n*(n-1)! se n > 0. Codifica:
! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa!! La ricorsione consiste nella possibilità di definire una funzione in termini di se
DettagliProgrammazione Ricorsione
Programmazione Ricorsione Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione Cos è la ricorsione? In matematica... n! = { n (n 1)! se n > 0 1 altrimenti N = {0} {i + 1 : i N} Principio
DettagliOperativamente, risolvere un problema con un approccio ricorsivo comporta
! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa!! La ricorsione consiste nella possibilità di definire una funzione in termini di se
Dettaglix = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; end if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; end
x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; x = input('inserisci x: '); fx=1 for ii=1:x fx = fx*ii if
DettagliFacoltà di Ingegneria Civile, Ambientale e Territoriale
Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale Informatica [097256] [091461] [091456] Prof. G. Boracchi Allievi Ingegneria Civile e Ambientale Prima prova in itinere (14
DettagliSottoprogrammi Diagrammi in MATLAB
Sottoprogrammi Diagrammi in MATLAB Informatica B - Prof. A Morzenti 1 / 44 Motivi per introdurre sottoprogrammi riusabilità (scrivere una sola volta codice usato più volte) astrazione (esprimere in modo
DettagliA. Veneziani Funzioni e procedure in PHP
A. Veneziani Funzioni e procedure in PHP Scopo delle funzioni Come in altri linguaggi anche in PHP la presenza delle funzioni serve a rendere modulare e intercambiabile il codice. Il fatto che PHP sia
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2010 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti Funzioni e domini definiti induttivamente
DettagliLA RICORSIONE LA RICORSIONE
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
DettagliFondamenti di Informatica
Fondamenti di Informatica Prof. Arcangelo Castiglione A.A. 2016/17 OUTLINE Principi di Base Casi di Studio Fattoriale Fibonacci Cenni Introduttivi su Simulink Principi di Base Una funzione ricorsiva è
DettagliPassaggio di Parametri per Valore o Indirizzo
Passaggio di Parametri per Valore o Indirizzo Come in C, l assembler permette di passare un dato per valore (copia) o per indirizzo, nel secondo caso rendendo modificabile il dato stesso da dentro una
DettagliProgrammazione ricorsiva
Programmazione ricorsiva Definizione di ricorsione Funzioni ricorsive Una funzione matematica è definita per ricorsione (o per induzione) quando è espressa in termini di se stessa. ESEMPIO il fattoriale
DettagliLA RICORSIONE. Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
DettagliFUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
DettagliLA RICORSIONE LA RICORSIONE LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
DettagliObiettivi di questa esercitazione
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
DettagliRicorsione. Prof. Orazio Mirabella. La ricorsione. La ricorsione consiste nella possibilità di definire una funzione mediante se stessa.
Ricorsione Prof. Orazio Mirabella La ricorsione La ricorsione consiste nella possibilità di definire una funzione mediante se stessa. È basata sul principio di induzione matematica: se una proprietà P
DettagliProblema: stampa degli interi compresi tra n e m
Costrutti imperativi Problema: stampa degli interi compresi tra n e m http://caml.inria.fr/pub/docs/manual-ocaml/libref/pervasives.html Output functions on standard output val print_string: string -> unit
DettagliLA RICORSIONE! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa
LA RICORSIONE! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
Dettaglin n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita
Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale
DettagliLa Ricorsione. Carla Binucci e Walter Didimo
La Ricorsione Carla Binucci e Walter Didimo Definizione induttiva di funzioni Una funzione definita in modo induttivo è una funzione definita in termini di sé stessa ad esempio la funzione f(n) = n! (fattoriale
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
DettagliTECNOLOGIE E PROGETTAZIONE SISTEMI INFORMATICI E DI TLC (Tpsit) Novembre AIT Docente Salvatore Mosaico Tecnologia html/javascript
Vogliamo realizzare degli algoritmi numerici 1. Somma dei primi N numeri (esempio 1+2+3+4+5) 2. Somma dei primi N numeri PARI ( esempio 2+4+6+8+10) 3. Somma dei primi N numeri DISPARI ( esempio 1+3+5+7+9)
DettagliFondamenti di Informatica
Fondamenti di Informatica (La Ricorsione e Debugging) Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18 OUTLINE La ricorsione - Principi base Caso Studio
Dettagli1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che
Fondamenti di Informatica T-1 modulo 2 Laboratorio 03 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche
DettagliLEONARDO OPRANDI PALMA GUSSAGO NICOLA AVIGO ZANETTI SILVIA
101 570 447 78,4211 5 8 0 2 100,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 102 478 370 77,4059 1 6 0 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000 0 0,0000
DettagliRICORSIONE RICORSIONE
Perchè RICORSIONE (Come, Quando e Perchè) i programmi ricorsivi sono più chiari, più semplici, più brevi e più facili da capire delle corrispondenti versioni iterative. il programma spesso riflette fedelmente
DettagliOperativamente, risolvere un problema con un approccio ricorsivo comporta
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
DettagliDiverse politiche. La ricorsione PROGRAMMAZIONE TOP-DOWN ESEMPIO. Bottom-Up. Di solito è meglio alternare le due tecniche
La ricorsione Top-Down Diverse politiche Si parte dal problema generale Poi si sce nei particolari (moduli, funzioni, ecc ) Bottom-Up Si creano prima i moduli e le funzioni base Poi si assemblano nel programma
DettagliObiettivi di questa esercitazione. Fondamenti di Informatica T-1 Modulo Passaggio dei parametri per valore/riferimento
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
DettagliUna funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
Dettagliesegui Ricerca_binaria (metà sinistra di A, v) esegui Ricerca_binaria (metà destra di A, v)
4) La ricorsione Pag 36 Pag 36 Consideriamo una nuova formulazione dell algoritmo di ricerca binaria (nella quale sono volutamente tralasciati i dettagli per catturarne l essenza): Ricerca_binaria (A,
DettagliRicorsione. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Ricorsione Stefano Ferrari Università degli Studi di Milano stefanoferrari@unimiit Programmazione anno accademico 2016 2017 Funzioni ricorsive Chiamata è ciascun uso di una funzione nel main o in un altra
DettagliUn algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 36 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
Dettagli1) Somma dei primi n numeri naturali: 3) Ricerca di un elemento el in una sequenza di interi: FONDAMENTI DI INFORMATICA II Ricorsione 2
FUNZIONI RICORSIVE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento (chiamata) a se stessa. Esempio: Esempi di problemi ricorsivi: 1) Somma dei primi
Dettaglifprintf('avete speso %d (media %f)', somma, media);
n = input('quanti siete?'); somma = 0; cnt = 1; massimo = 0; while(cnt
DettagliFUNZIONI RICORSIVE PROGRAMMAZIONE RICORSIVA: Esempi di problemi ricorsivi:
FUNZIONI RICORSIVE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento (chiamata) a se stessa. Esempio: Esempi di problemi ricorsivi: 1) Somma dei primi
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario La ricorsione Metodi ricorsivi Esercizi proposti 16/01/2013 2 La ricorsione In Java ogni metodo può chiamare anche se stesso,
DettagliFondamenti Teorici e Programmazione
Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Istruzioni Iterative Istruzioni do-while e break 2 Istruzione While - Repetita Sintassi guardia del ciclo
DettagliLezione 8 programmazione in Java. Anteprima. La ricorsione. Nicola Drago Dipartimento di Informatica Università di Verona
Lezione 8 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Programmazione ricorsiva Fattoriale Somma di n numeri Torre di Hanoi Array
DettagliRicorsione. Lucidi a cura di Gianpaolo Cugola, Carlo Ghezzi, Gian Pietro Picco Dipartimento di Elettronica e Informazione
Ricorsione Lucidi a cura di Gianpaolo Cugola, Carlo Ghezzi, Gian Pietro Picco Dipartimento di Elettronica e Informazione Definizioni ricorsive Sono comuni in matematica Esempio: il fattoriale di un naturale
DettagliLa ricorsione. Sommario. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
La ricorsione Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario! Definizione di ricorsione e strategie divide et impera! Semplici algoritmi ricorsivi! Merge
DettagliElementi di Algebra e Logica Esercizi 1. Insiemi, funzioni, cardinalità, induzione, funzioni ricorsive.
Elementi di Algebra e Logica 2008 Esercizi 1 Insiemi, funzioni, cardinalità, induzione, funzioni ricorsive 1 Siano A = {0, 2, 4,, 8, 10}, B = {0, 1, 2, 3, 4, 5, } e C = {4, 5,, 7, 8, 9, 10} Determinare:
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
DettagliRecord di Attivazione Cenni sulla ricorsione
MASTER Information Technology Excellence Road (I.T.E.R.) Cenni sulla ricorsione Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il modello a RUN-TIME
Dettaglin n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita
Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale
DettagliFondamenti di Informatica, A.A
Fondamenti di Informatica, A.A. 2013 2014 02/02/2015 Esercizio 1 È dato il frammento di codice Matlab a = 1 ; n = 1 0 ; i = a ; v = [ 0 ] ; while (mod( i, n /2)!= 0) v = [ v a i ] ; l = length ( v ) ;
Dettagli1 Scheda n. 1s: il problema Manhattan 2. 2 Scheda n. 2s: simulazione dell algoritmo ricorsivo 3
Indice 1 Scheda n. 1s: il problema Manhattan 2 2 Scheda n. 2s: simulazione dell algoritmo ricorsivo 3 3 Scheda n. 3s: attività in laboratorio d informatica 5 1 Scheda n. 1s: il problema Manhattan Considera
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Effetti collaterali Metodi ricorsivi Esercizi proposti 19/04/2011 2 import javax.swing.joptionpane; public class esempioarrayg{ public
DettagliESERCIZIO 1. Informatica B - Esercitazione 14
ESERCIZIO 1 Tema del 01/09/2010 Esercizio 3 Implementare in MATLAB una funzione ricorsiva che calcoli risultato e resto della divisione intera fra due numeri interi. La funzione deve ricevere come parametri
DettagliProgrammazione Ricorsione in coda
Programmazione Ricorsione in coda Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione in coda Ricorsione in coda La ricorsione in coda (o tail-recursion) è un caso speciale di ricorsione
DettagliIntroduzione alla Ricorsione
Introduzione alla Corso di Informatica A Vito Perrone Indice La formulazione in termini ricorsivi di problemi e algoritmi La ricorsione come strumento di programmazione L esecuzione dei sottoprogrammi
DettagliEsercizi sulla ricorsione
Laboratorio di Sperimentazioni di Fisica I MOD A 21 Ottobre 2009 Esercizi sulla ricorsione enea.poletti@dei.unipd.it elisa.veronese@dei.unipd.it enrico.grisan@deiunipd.it Esempi classici: calcolare il
DettagliLaboratorio di Informatica L-A 1
Funzioni e Ricorsione La ricorsione consiste nella possibilità di definire una funzione in termini di se stessa È basata sul principio di induzione matematica: se una proprietà P vale per n=n 0 e si può
DettagliRicorsione. La ricorsione consiste nella possibilità di definire una funzione in termini di se stessa
Funzioni e Ricorsione La ricorsione consiste nella possibilità di definire una funzione in termini di se stessa È basata sul principio di induzione matematica: se una proprietà P vale per n=n 0 e si può
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 6 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Funzioni che restituiscono tuple di valori Le funzioni Python possono
DettagliCorso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi
Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18 Tutor: prof. Francesco De Vincenzi MATLAB: esercizio Dati un vettore e una matrice di dimensioni qualsiasi, trovare le coordinate (riga
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. La Ricorsione. Marco D. Santambrogio Ver. aggiornata al 12 Maggio 2016
La Ricorsione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 12 Maggio 2016 Riscaldiamoci subito un po 2 Riscaldiamoci subito un po 3 Obiettivi Induzione matematica Iterazione Cosa
DettagliIntroduzione allo Scilab Parte 2: elementi di programmazione strutturata
Introduzione allo Scilab Parte 2: elementi di programmazione strutturata Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro felix@dm.uniba.it 13 Giugno 2007 Felice
DettagliFondamenti dell informatica
Fondamenti dell informatica Funzioni ricorsive e linguaggi funzionali Rosario Culmone rosario.culmone@unicam.it 16/4/2008 UNICAM - p. 1/21 Funzioni ricorsive Metodo di definizione di algoritmi introdotto
DettagliIl linguaggio C Il modello a run-time
3 Il linguaggio C Il modello a run-time Puntatore al codice Return address Link dinamico Parametro Parametro 2... Variabile locale Variabile locale 2... B A A 3 FUNZIONI: IL MODELLO A RUN-TIME Ogni volta
DettagliIl linguaggio C Il modello a run-time
3 Il linguaggio C Il modello a run-time Puntatore al codice Return address Link dinamico Parametro Parametro 2... Variabile locale Variabile locale 2... B A A 3 FUNZIONI: IL MODELLO A RUN-TIME Ogni volta
DettagliProcedure: esempi. Esempi: ricorsione fattoriale Fibonacci ordinamenti
Procedure: esempi Esempi: ricorsione fattoriale Fibonacci ordinamenti 1 Fattoriale ricorsivo PH p. 83 e A27 main(int argc, char *argv[]) { int n; printf( Inserire un numero intero\n"); scanf("%d", &n);
DettagliSommario della Lezione
Sommario della Lezione Analisi di Algoritmi Ricorsivi: Come esprimere la complessitá di algoritmi ricorsivi mediante relazioni di ricorrenza Come derivare le relazioni di ricorrenza Come risolvere le relazioni
DettagliTela (Teaching Language)
Tela (Teaching Language) Paradigma imperativo Dichiarazioni di variabili, costanti, moduli Programma strutturato in moduli innestati Scope statico Passaggio dei parametri per valore Corpo del modulo =
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione
DettagliCORSO DI LAUREA IN INGEGNERIA ELETTRICA
CORSO DI LAUREA IN INGEGNERIA ELETTRICA Informatica B anno accademico 2013-2014 Prof. Danilo ARDAGNA Esercitazione 05.06.2014 Esercizio 1. (Agenzia di viaggi - accesso ai file) Un'agenzia di viaggi possiede
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria e Architettura Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Funzioni Esercizi Stefano Cagnoni Funzione Sequenza di istruzioni
DettagliLa principale modalità di calcolo è l applicazione di funzioni
1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un
DettagliEsempio : i numeri di Fibonacci
Esempio : i numeri di Fibonacci La successione di Fibonacci F 1, F 2,... F n,... è definita come: F 1 =1 F 2 =1 F n =F n 1 F n 2,n 2 Leonardo Fibonacci (Pisa, 1170 Pisa, 1250) http://it.wikipedia.org/wiki/leonardo_fibonacci
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere
DettagliEsercizi lezione 23/3/15, Andrea Vaccaro
Esercizi lezione 3/3/15, Andrea Vaccaro 31 marzo 015 Proposizione 0.1. Sia A N interno. A è iperinfinito esiste f : A N interna bigettiva. Dimostrazione. Prima di cominciare con la dimostrazione vera e
DettagliIntegrazione numerica. Gabriella Puppo
Integrazione numerica Gabriella Puppo Integrazione numerica Formula dei trapezi Formula composta di Simpson Funzioni di quadratura di Matlab Esempi Formula dei trapezi Per costruire una function che applichi
DettagliCrittografia. Nozioni di Algebra. Corso di Laurea Specialistica. in Informatica
Crittografia Corso di Laurea Specialistica in Informatica Nozioni di Algebra Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca e-mail:
Dettagli