Fondamenti di Informatica

Documenti analoghi
Fondamenti di Informatica

A.A. 2018/2019. Gestione File, Grafici in MATLAB e Cenni Introduttivi su Simulink FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Fondamenti di Informatica

Introduzione al Simulink

Fondamenti di Informatica

Fondamenti di Informatica

Esercitazioni di Tecnologie per l Automazione. Introduzione a Matlab e Simulink

Fondamenti di di A utomatica Automatica Prof. Bruno Picasso Introduzione all all uso di di S imulink Simulink

Fondamenti di Informatica

Matlab: funzioni. Daniele Loiacono, Vittorio Zaccaria

Fondamenti Teorici e Programmazione

RICORSIONE. Informatica B - A.A. 2013/2014

Introduzione a Matlab e Simulink

Motivazioni: problema di analisi. Introduzione a Matlab e Simulink. Dove trovare altre informazioni? A cosa serve questa presentazione

LA RICORSIONE LA RICORSIONE LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

Introduzione al MATLAB c Parte 2

Corso di Informatica

Fondamenti di Informatica

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Fondamenti di Informatica A. A. 2017/18

Fondamenti di Informatica

Un po di Matematica. Il volo dei numeri di Mario Merz, un'installazione luminosa sulla Mole Antonelliana, rappresenta la successione di Fibonacci

A.A. 2018/2019 FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

LA RICORSIONE! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Introduzione al MATLAB c Parte 3 Script e function

Esempio: 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:

Pensiero Algoritmico. Lezione 3 23 Novembre Ripasso. Anatomia di un programma. Anatomia di un programma. Ozalp Babaoglu Università di Bologna

A.A. 2018/2019. Esercitazione 3 [Per Casa] Strutturazione del Codice Sorgente per la Risoluzione di Problemi mediante MATLAB

Ricorsione. quindi si può definire n! mediante i seguenti due punti:

Fondamenti di Informatica

Operativamente, risolvere un problema con un approccio ricorsivo comporta

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

CORSO DI LABORATORIO DI INFORMATICA

Programmazione Ricorsione

LA RICORSIONE. Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa

Spazio Riservato alla Commissione. Seconda Prova Intracorso di Fondamenti di Informatica 15/06/2018

Fondamenti di Informatica

Fondamenti di Informatica

Traccia 1. Nome Cognome Matricola Firma. Spazio Riservato alla Commissione. Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Totale

Fondamenti di Informatica

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Lezione di Laboratorio di Prgrammazione: /05/2019 a.a. 2018/2019 R.Prevete

Spazio Riservato alla Commissione. Seconda Prova Intracorso di Fondamenti di Informatica 15/06/2018

Corso di Linguaggi di Programmazione

Fondamenti di Informatica

A.A. 2018/2019. Introduzione ad AlgoBuild FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Spazio Riservato alla Commissione. Seconda Prova Intracorso di Fondamenti di Informatica 15/06/2018

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Fondamenti di Informatica

AA LA RICORSIONE

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2016/17 Classe 1 B

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Programmazione ricorsiva: cenni

RICORSIONE RICORSIONE

Un tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Fondamenti di Informatica

Fondamenti di Informatica

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

LA RICORSIONE LA RICORSIONE

Presentazione del corso: Simulazione dei sistemi dinamici mediante MatLab/Simulink

Fondamenti di Informatica

1) Somma dei primi n numeri naturali: 3) Ricerca di un elemento el in una sequenza di interi: FONDAMENTI DI INFORMATICA II Ricorsione 2

Informatica B

FUNZIONI RICORSIVE PROGRAMMAZIONE RICORSIVA: Esempi di problemi ricorsivi:

Introduzione allo Scilab Parte 2: elementi di programmazione strutturata

Fondamenti di Informatica

La ricorsione. Sommario. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Programmazione ricorsiva.

Università degli Studi di Ferrara

12 Function Handles e Ricorsione in MATLAB

Laboratorio di Informatica

Un tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:

Diverse politiche. La ricorsione PROGRAMMAZIONE TOP-DOWN ESEMPIO. Bottom-Up. Di solito è meglio alternare le due tecniche

INTRODUZIONE A SIMULINK

Fondamenti di Informatica

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Laboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A

3 aprile o Esonero: mercoledi 17 aprile ore 11:30 14:00 consulta la pag. WEB alla voce esoneri. si raccomanda la puntualita!

Cristian Secchi Pag. 1

Fondamenti di Informatica

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Capitolo 19. Ricorsione

Dinamica e Controllo dei Processi Energetici. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Il principio di induzione. La Ricorsione. Il fattoriale: iterativo. Il fattoriale: ricorsivo. P (0) P (n) P (n + 1) per ogni n

CONTROLLI AUTOMATICI INTRODUZIONE A MATLAB

L organizzazione dei programmi

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Definizione di metodi in Java

Informatica B

Programmazione Ricorsione in coda

Introduzione a Matlab. Renato Mainetti

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 24 Gennaio 2011 COGNOME E NOME RIGA COLONNA MATRICOLA

Transcript:

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 è una funzione che invoca se stessa Possiamo vedere la ricorsione come un modo alternativo per controllare il flusso di esecuzione di un programma

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1)

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1) ) n! = ' i *+,

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1) ) n! = ' i *+, = 1 2 3 n 1 n

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1) ) n! = ' i *+, = 1 2 3 n 1 n )2, ' i *+,

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1) ) n! = ' i *+, = 1 2 3 n 1 n )2, ' i *+, n 1!

Caso di Studio: Fattoriale 1/4 Il fattoriale di un intero (positivo) n, indicato con n!, è il prodotto di tutti gli interi positivi minori o uguali di n (si noti che 0! = 1) Definizione Ricorsiva Parziale (n > 0) n! = n 1! n

Caso di Studio: Fattoriale 2/4 Definizione Ricorsiva Completa n! = 4 1, se n = 0 n 1! n, se n > 0

Caso di Studio: Fattoriale 2/4 Definizione Ricorsiva Completa n! = 4 1, se n = 0 n 1! n, se n > 0 Caso base

Caso Studio: Fattoriale 2/ Definizione ricorsiva: n! = 4 N.B. Il caso base è necessario affinché la ricorsione termini, altrimenti si potrebbe avere una «ricorsione infinita» 1, se n = 0 n 1! n, se n > 0 Caso base

Caso Studio: Fattoriale 2/ Definizione ricorsiva: N.B. Il caso base è necessario affinché la ricorsione termini, altrimenti si potrebbe avere una «ricorsione infinita» n! = 4 Nel nostro esempio, se n è uguale a 0, 1, allora la funzione restituirà se n 1 = 0 (dato che 0! = 1) n 1! n, se n > 0 Caso base

Caso di Studio: Fattoriale 2/4 Definizione Ricorsiva Completa n! = 4 1, se n = 0 n 1! n, se n > 0 Versione più semplice della definizione

Caso di Studio: Fattoriale 3/4 Codice MATLAB n! = 4 1, se n = 0 n 1! n, se n > 0 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n;

Caso di Studio: Fattoriale 3/4 Codice MATLAB n! = 4 1, se n = 0 n 1! n, se n > 0 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Invocazione ricorsiva

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n;

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n;

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n;

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; fattoriale_ricorsivo(2) * 3

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; fattoriale_ricorsivo(2) * 3 fattoriale_ricorsivo(1) * 2 fattoriale_ricorsivo(0) * 1

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; fattoriale_ricorsivo(2) * 3 fattoriale_ricorsivo(1) * 2 fattoriale_ricorsivo(0) * 1 1 (Caso base à 0! = 1)

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Output fattoriale_ricorsivo(2) * 3 fattoriale_ricorsivo(1) * 2 fattoriale_ricorsivo(0) * 1 1 (Caso base à 0! = 1) 1

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Output fattoriale_ricorsivo(2) * 3 fattoriale_ricorsivo(1) * 2 1 * 1 1

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Output fattoriale_ricorsivo(2) * 3 1 * 2 2

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) fattoriale_ricorsivo(3) * 4 function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Output 2 * 3 6

Caso di Studio: Fattoriale 4/4 Dietro le quinte... fattoriale_ricorsivo(4) function [n_fact] = fattoriale_ricorsivo(n) if n == 0 n_fact = 1; else n_fact = fattoriale_ricorsivo(n - 1) * n; Output 6 * 4 24

Caso di Studio: Fattoriale 4/4 Dietro le quinte... >> f = fattoriale_ricorsivo(4) f = 24

Caso di Studio: Fibonacci 1/3 Nella successione (o serie) di Fibonacci, ogni valore, denotato mediante Fib(n) (n 0), è espresso come la somma dei due valori ad esso precedenti nella serie Si noti che Fib(0) = 0 e Fib(1) = 1 Definizione Ricorsiva 0, 1, 1, 2, 3, 5, 8, 13, 21, 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2

Caso di Studio: Fibonacci 2/3 Definizione Ricorsiva 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2

Caso di Studio: Fibonacci 2/3 Definizione Ricorsiva 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2 Casi base

Caso di Studio: Fibonacci 2/3 Definizione Ricorsiva 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2 Versione più semplice della definizione

Caso di Studio: Fibonacci 3/3 Codice MATLAB 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2 function [valore] = fibonacci_ricorsivo(n) if n == 0 valore = 0; elseif n == 1; valore = 1; else valore = fibonacci_ricorsivo(n - 1) + fibonacci_ricorsivo(n - 2);

Caso di Studio: Fibonacci 3/3 Codice MATLAB 0 se n = 0 Fib n = = 1 se n = 1 Fib n 1 + Fib(n 2) se n 2 function [valore] = fibonacci_ricorsivo(n) if n == 0 valore = 0; elseif n == 1; valore = 1; else valore = fibonacci_ricorsivo(n - 1) + fibonacci_ricorsivo(n - 2); Invocazioni ricorsive

Caso di Studio: Fibonacci 3/3 Codice MATLAB function [valore] = fibonacci_ricorsivo(n) if n == 0 valore = 0; elseif n == 1; valore = 1; else valore = fibonacci_ricorsivo(n - 1) + fibonacci_ricorsivo(n - 2); Esempi d uso >> fibonacci_ricorsivo(0) ans = 0 >> fibonacci_ricorsivo(4) ans = 3 >> fibonacci_ricorsivo(8) ans = 21

Simulink: Cenni Introduttivi 1/5 Sistema Dinamico: Un sistema dinamico è un modello matematico caratterizzante una situazione che cambia e si evolve nel tempo, secondo una legge deterministica Simulink è un ambiente grafico che consente di descrivere, modellare, simulare ed analizzare sistemi dinamici appartenenti a numerosi domini applicativi Pagina web di Simulink http://it.mathworks.com/products/simulink/

Simulink: Cenni Introduttivi 2/5 Sistemi Dinamici Esistono diverse tipologie di sistemi dinamici Tempo continuo Tempo discreto Lineari Non lineari Etc Molti modelli fisici, biologici, meccanici, chimici, etc, possono essere rappresentati mediante sistemi di questo tipo

Simulink: Cenni Introduttivi 3/5 Sistemi Dinamici Un sistema dinamico può essere anche visto come un sistema di input/output Dati Iniziali Soluzioni del Sistema Parametri di Controllo

Simulink: Cenni Introduttivi 4/5 La simulazione di un sistema dinamico, in ambiente Simulink, si articola in due fasi principali

Simulink: Cenni Introduttivi 4/5 La simulazione di un sistema dinamico, in ambiente Simulink, si articola in due fasi principali Prima Fase Creazione del modello grafico del sistema da simulare Il modello grafico può contenere interconnessioni di elementi del sistema dinamico Mediante tale modello vengono descritte le relazioni matematiche esistenti tra gli ingressi e le uscite del sistema

Simulink: Cenni Introduttivi 4/5 La simulazione di un sistema dinamico, in ambiente Simulink, si articola in due fasi principali Seconda Fase Utilizzo di Simulink per simulare il comportamento del sistema durante una sua evoluzione temporale in un determinato arcodi tempo L arco temporale è definito dall utente Simulink utilizza le informazioni specificate dall utente, in fase di descrizione del modello grafico, al fine di generare le istruzioni volte alla risoluzione del problema modellato

Simulink: Cenni Introduttivi 5/5 Per avviare Simulink, basta digitare simulink nella Command Window Oppure è possibile cliccare sull apposito pulsante nella barra degli strumenti di MATLAB

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Per avviare Simulink, basta digitare simulink nella Command Window Oppure è possibile cliccare sull apposito pulsante nella barra degli strumenti di MATLAB

Simulink: Cenni Introduttivi 5/5 Simulink Library Browser

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser

Cenni Introduttivi Simulink 5/5 Simulink Library Browser Insieme di blocchi per la creazioni di modelli

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser Insieme di blocchi per la creazioni di modelli

Cenni Introduttivi Simulink 5/5 Simulink Library Browser Casella di ricerca

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser Casella di ricerca

Cenni Introduttivi Simulink 5/5 Simulink Library Browser Nuovo modello

Cenni Introduttivi Simulink 5/5 Simulink Library Browser Nuovo modello e Cenni Introduttivi Simulink

Workspace per la creazione di un modello Cenni Introduttivi Simulink 5/5 Simulink Library Browser Nuovo modello e Cenni Introduttivi Simulink

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser Nuovo modello

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser

Simulink: Cenni Introduttivi 5/5 (Nuove Versioni di MATLAB) Simulink Library Browser Workspace per la creazione di un modello