function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; end
|
|
- Giuseppa Franca Viola
- 5 anni fa
- Visualizzazioni
Transcript
1
2
3
4 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; n! n > 0 n! = n n 1 n 2 2 1
5 fattoriale(2) ans = 2 function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii;
6 k = 2; f2 = fattoriale(k); function f = fattoriale(n) f = 1; for ii = 2 : n f = f * ii; k f2 f ii n f ii n k f2
7 n! = n n 1! n! = n n 1 n n 1!
8
9
10
11
12 fatric(3) fatric(2) fatric(1) fatric(0)
13
14 f(n) = n! = n (n 1) (n 2) f(0) = 1 f(n) = n f n 1
15 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n - 1); 0! = 1 n! = n n 1!
16 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
17 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
18 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
19 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
20 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
21 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
22 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
23 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3)
24 function [f] = factric(n) if (n == 0) f = 1; f = n*factric(n-1); factric(3) ans = 6
25 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n-1);
26
27
28 function [f] = factric(n) f = n * factric(n-1);
29 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n-1);
30 function [f] = factric(n) if (n == 0) f = 1; f = n * factric(n);
31 >> factric(600) Out of memory. The likely cause is an infinite recursion within the program. Error in fatric at line XXX
32
33 function somma = sommanumericompresi(a, b) if a == b somma = a; disp(['caso base somma =,... num2str(somma)]); disp(['prima chiamata =, num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata =, num2str(a)]);
34 function somma = sommanumericompresi(a,b) if b < a somma = 0; if a == b somma = a; disp(['caso base somma = ', num2str(somma)]); disp(['prima chiamata a = ',num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata a = ',num2str(a)]);
35 function somma = sommanumericompresi(a,b) if b < a somma = 0; return; if a == b somma = a; disp(['caso base somma = ', num2str(somma)]); disp(['prima chiamata a = ',num2str(a)]); somma = a + sommanumericompresi(a+1, b); disp(['dopo chiamata a = ',num2str(a)]);
36 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)])
37
38 n f N
39 function gg = stagno(n, f, N) if (n >= N) % caso base: lo stagno e pieno gg = 0; % chiamata ricorsiva: non abbiamo N ninfee % il numero di giorni necessari per riempire 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);
40 function [giorni, vettore_n] = ninfee(n, f, N) if (n >= N) % caso base giorni = 0; vettore_n = []; fprintf('\n caso base oggi ho %2.2f ninfee', n); ndomani = round(n * f); % controllo convergenza 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];
41 function s = calcolalunghezza(str) if(isempty(str)) s = 0; s = 1 + calcolalunghezza(str(2 : ));
42 function stampaalcontrario(frase) % caso base if isempty(frase) % return % chiamata ricorsiva disp(frase()); % stampa al contrario stampaalcontrario(frase(1:-1))
43 function stampaalcontrario(frase) % caso base if isempty(frase) % return % chiamata ricorsiva stampaalcontrario(frase(1:-1)) disp(frase()); % stampa dritto
44 function stampa(frase) % caso base if isempty(frase) % return % chiamata ricorsiva stampa(frase(2:)) disp(frase(1));
45 function stampa(vettore) % caso base if (length(vettore) == 1) fprintf('%c, vettore(1)); fprintf('%c, vettore(1)); % chiamata ricorsiva fprintf('%c, vettore(1)); stampa(vettore(2:)); fprintf('%c, vettore(1));
46 function stampaalcontrario(str) if(isempty(str)) disp(str()); stampaalcontrario(str(1 : -1)); disp(str()); >> stampaalcontrario('ciao') o a i c c i a o
47 function stampaalcontrario(str) if(isempty(str)) disp(str()); stampaalcontrario(str(2 : )); disp(str()); >> stampaalcontrario('ciao') o o o o o o o o
48 function stampaalcontrario(str) if(isempty(str)) disp(str(1)); stampaalcontrario(str(2 : )); disp(str(1)); >> stampaalcontrario('ciao ) c i a o o a i c
49 function stampaalcontrario(str) if(isempty(str)) disp(str(1)); stampaalcontrario(str(1 : -1)); disp(str(1)); >> stampaalcontrario('ciao ) c c c c c c c c
50 function vet = chefa(vet) if isempty(vet) length(vet) == 1 return; if all(vet(1) >= vet(2 : )) return; vet(vet == vet(1)) = []; vet = chefa(vet); >> chefa([ ]) >> chefa([ ]) >> chefa([ ])
51 >> chefa([ ]) ans = >> chefa([ ]) ans = >> chefa([ ]) ans = 19
52 all(vet(1) > vet(2 : )) >> chefa([ ]) ans =
53
54 function [M] = MCDeuclidRic(m,n) if m == n M = m; if m > n M = MCDeuclidRic(m-n, n); M = MCDeuclidRic(m, n-m);
55
56
57
58
59 function [fib] = FiboRic(n) if n == 1 n == 2 fib = 1; fib = FiboRic(n-2) + FiboRic(n-1);
60 function [fl]=fiblist(n) fl(1) = 1; fl(2) = 1; for k = 3:n fl(k) = fl(k-2) + fl(k-1);
61
62 N N
63
64 function [res] = controllapalindromo(stringa) % stringhe di un carattere (o vuote sono palindrome) if length(stringa) < 2 res = true; % controllo se gli estremi sono uguali if stringa(1)==stringa() % in tal caso richiama controllapalindromo su stringa(2, -1) res=controllapalindromo(stringa(2:-1)); res=false;
65 function [res, esp] = ispotenzadi(num, base) % caso base if num == base res = 1; esp = 1; if(mod(num, base) == 0) % esp = esp + 1; % da errore [res, esp] = ispotenzadi(num/base, base); esp = esp + 1; res = 0; esp = NaN;
66 function [res, esp] = ispotenzadi(num, base) % caso base if(num == base) res = 1; esp = 1; if(num < base) res = 0; esp = NaN; % interrompo se n non è intero if(round(num) ~= num) res = 0; esp = NaN; % chiamata ricorsiva [ris, esp] = ispotenzadi(num/base, base); esp = esp +1; res = controllasepotenza(n, d*d); d^2 d^4
67 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;
68 function [ris] = mistero(v, n) if (n > 1) v2 = v(mod(v, n) ~= 0 v == n); ris = mistero(v2, n-1); ris = v; x x = mistero([ ], 10) x =
69 f a, b f a f b 0 c a, b f c = 0 haunozero
70 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; 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
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)
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 *
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
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
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
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
Dettaglifprintf('avete speso %d (media %f)', somma, media);
n = input('quanti siete?'); somma = 0; cnt = 1; massimo = 0; while(cnt
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
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
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
DettagliInformatica B
Informatica B 2016-2016 Esercitazione III Ricorsione Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1 La successione di Padovan é definita nel seguente modo: se indichiamo
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
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
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
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à
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
Dettagli13 Ricorsione con MATLAB
13.1 Esercizi Esercizio 13.1 Scrivere una funzione che verifichi iterativamente se una stringa è palindroma. Scrivere poi una funzione che implementi la stessa funzionalità in modo ricorsivo. Si stampi
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
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 M-file di tipo Script e Function Script Function 2 Gestione
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
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
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
DettagliRICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio
RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca
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
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 è
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
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 =
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
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliMatlab: Logicals e Strutture di Controllo
Matlab: Logicals e Strutture di Controllo Informatica B AA 2017/2018 Luca Cassano luca.cassano@polimi.it 14 Novembre 2018 Tipo di Dato Logico e operazioni su vettori Tipo di Dato Logico È un tipo di dato
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
DettagliInformatica! Appunti della lezione 8!
Informatica! Appunti della lezione 8! Palindromia! Una stringa si dice palindroma quando si legge allo stesso modo da destra e da sinistra (es.: itopinonavevanonipoti )! Il problema del riconoscimento
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
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell
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 FILA A
Fondamenti di Informatica, A.A. 2014-2015 - FILA A 08/07/2015 Esercizio 1 È dato il frammento di codice Matlab v = [ 1 1 2 3 ] ; n = length ( v ) ; for x = v (: 2:1) v = [ v mod(sum( v ), n ) ] ; n = length
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
DettagliESERCIZIO: Analisi di un programma. Dato il seguente programma C:
: Analisi di un programma Dato il seguente programma C: #include #define D 4 float A(float V[], int k) {int i; float s=0.0; for(i=0;i
DettagliCorso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010
Esercizio 1. Si deve modellare con una classe Java il contenuto di un portamonete, con delle opportune semplificazioni. Le monete da considerare sono di soli 4 tagli: 10, 20, 50 e 100 centesimi (cioè 1
DettagliFacoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 5. !esercizi tratti da temi d esame
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 5!esercizi tratti da temi d esame Politecnico di Milano - DEI 1 Esercizio 1 Si
DettagliTipi di dato strutturati: Array
Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o
Dettagli- 3 - >> >> 5 + 7 ans ans = 12 >> 5 / 7 ans = 0.7143 >> 5 + 7 ans = 12 >> 5 / 7 ans = 0.7143 >> 5 * 7 ans = 35 >> 'a' + 2 ans = 99 >> 5 ^ 7 ans = 78125 - 20 - nomevariabile = espressione
DettagliPensiero Algoritmico. Lezione 3 23 Novembre Ripasso. Anatomia di un programma. Anatomia di un programma. Ozalp Babaoglu Università di Bologna
Pensiero Algoritmico Lezione 3 23 Novembre 2016 Ozalp Babaoglu Università di Bologna Ripasso Definizione del problema Astrarre i dettagli, costruire un modello Costruire l algoritmo che risolve il problema
DettagliCorso di Fondamenti di Informatica. La ricorsione
Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini
DettagliEsercitazione Fondamenti di informatica 2
Esercitazione Fondamenti di informatica 2 Array ed Oggetti JAVA 13 marzo 2006 L oggetto atrice Realizzare una classe oggetto atrice. Lo stato dell oggetto Vettore, è rappresentato da un array di array
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E12 Esercizi su ricorsione A.Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Esercizi Ricorsione 1 Contenuti q Applicazione
DettagliSomma di due numeri interi
Somma di due numeri interi class Somma int x=15; int y=15; int s=x+y; System.out.println("Buon giorno ragazzi della IVB Oggi si inizia con Java...\n"); System.out.println(x+"+"+y+"="+s); oppure utilizzando
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
DettagliCOMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i
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
DettagliESERCIZIO 1. Informatica B - Esercitazione 11
ESERCIZIO 1 Scrivere un programma che: dato un numero N calcola la somma dei primi N numeri pari positivi in maniera ricorsiva. La somma dei primi N numeri pari è la: SN = 2*1 + 2*2 + 2*3 +? + 2*i +...
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);
DettagliLaboratorio di Python
Documentare il codice,, Comprendere cosa calcola una funzione 21 marzo 2014 Sommario 1 2 3 4 Lunedì il numero di studenti che avevano consegnato gli esercizi era 15. Martedì il numero di esercizi ricevuti
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.9 Stringhe & Algoritmi di ordinamento Antonio Arena antonio.arena@ing.unipi.it Stringhe Fondamenti di Informatica - Esercitazione n.9 2 In C++ non
DettagliParte 2. Ricorsione. [M.C.Escher Drawing hands, 1948] - AA. 2012/13 2.1
Parte 2 Ricorsione - AA. 2012/13 [M.C.Escher Drawing hands, 1948] 2.1 Funzioni ricorsive Una funzione si dice ricorsiva se richiama se stessa, direttamente o indirettamente La ricorsione si dice diretta
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
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
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
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
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,
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,
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti Ricorsione La ricorsione è un approccio per la risoluzione
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
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
Dettaglima può aiutare La ricorsione all opera
ma può aiutare Un problema complesso Numero di percorsi su una griglia di strade (Manhattan-like) quanti percorsi minimi differenti da A a B? minimi: aventi la minima lunghezza possibile ogni segmento
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
DettagliPage Rank. Guerra Stefano. 1. DESCRIZIONE DEL PROBLEMA "Page Rank" 2. DESCRIZIONE DELL ALGORITMO. Pagina 2
1. DESCRIZIONE DEL PROBLEMA "" Realizzare un Function file che implementa (l algoritmo PageRank di Google per l ordinamento dei siti web). Parametri di input: G matrice sparsa di adiacenze relativa ad
DettagliSviluppo di progetti. metodologie di soluzione di un problema. iterazione o ricorsione nel pensare per OGGETTI
Sviluppo di progetti metodologie di soluzione di un problema iterazione o ricorsione nel pensare per OGGETTI Incrementare vs pensare a oggetti Ho bisogno di andare da A a B in modo più veloce Iterazioni
DettagliEsercitazione 7. Soluzione:
Esercitazione 7 Esercizio 1: Scrivere una funzione ricorsiva che calcoli il MCD di due numeri interi positivi. Ricordare che la funzione MCD(N,M) termina quando N == M e si ritorna N. int MCD(int N, int
DettagliAstrazione sui Dati Vettori di variabili
Elementi di Informatica e Programmazione Ingegneria Informatica Ingegneria dell'automazione Industriale Ingegneria Elettronica e delle Telecomunicazioni Alessandro Saetti (email: alessandro.saetti@unibs.it)
DettagliRicerca. Per ricerca si intende il procedimento di localizzazione di una particolare informazione in un elenco di dati.
Ricerca Per ricerca si intende il procedimento di localizzazione di una particolare informazione in un elenco di dati. Il problema della ricerca in termini generali : dato un insieme D = {a 1,a 2,...,a
DettagliPascal: esempi di programmazione
Pascal: esempi di programmazione Problemi elementari di programmazione.................. 2252 a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Somma tra
DettagliArray. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
DettagliMatlab: Funzioni. Informatica B AA 17/18 Luca Cassano 22 Novembre Informatica B, AA 17/18, Luca Cassano
Matlab: Funzioni Informatica B AA 17/18 Luca Cassano luca.cassano@polimi.it 22 Novembre 2017 A cosa servono funzioni e script? Calcolo del fattoriale Scrivere un programma che legge da tastiera un intero
DettagliEsercizio. Esempio n= sommapari= , sommadispari=7+4+1
Esercizio. Scrivere una funzione sum_digits(n) che, dato un numero naturale n, restituisce la somma delle cifre in posizione pari e la somma delle cifre in posizione dispari di n (contando da destra).
Dettagli12 Function Handles e Ricorsione in MATLAB
1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome
DettagliCognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
DettagliEsercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012
su programmazione ricorsiva 1 Pericle Perazzo pericle.perazzo@iet.unipi.it http://info.iet.unipi.it/~fondii/ 23 marzo 2012 Ripasso di programmazione ricorsiva Ripasso di programmazione ricorsiva Algoritmo
DettagliComunicazioni di servizio. I metodi - III. Oggi. Dove siamo. Esempio. Parametri di tipo array. Stefano Mizzaro 1. Domani non c è lezione :-(
Comunicazioni di servizio I metodi - III Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 11
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
DettagliLABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi
LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un
DettagliLaboratorio di Python
19 marzo 2015 Sommario 1 2 3 4 Esercizi Scrivere e documentare le funzioni che risolvano i seguenti problemi: 1 Definire una funzione che presa una sequenza come parametro restituisca il valore della media
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
DettagliEsercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen
Esercitazione Ricorsione May 31, 2016 Esercizi presi dal libro di Rosen Problema 2 a) sezione 5.3 Data la seguente funzione definita ricorsivamente come: f(n+1) = 2f(n) f(0) = 3 Determinare il valore di
DettagliMatlab/Octave - Esercitazione 11
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 11 programmazione ricorsiva Politecnico di Milano - DEI Informatica B - Esercitazione
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
DettagliEsercitazione 10. 21 Dicembre 2010 (2 ore)
Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici.
Dettagli