Prolog: aritmetica e ricorsione
|
|
- Niccoletta Fusco
- 8 anni fa
- Visualizzazioni
Transcript
1 Capitolo 13 Prolog: aritmetica e ricorsione Slide: Aritmetica e ricorsione 13.1 Operatori aritmetici In logica non vi è alcun meccanismo per la valutazione di funzioni, che è fondamentale in un linguaggio di programmazione. In Prolog i numeri interi son rappresentati da termini come s(s(s(0)) dove s(0) indica semplicemente il successore del numero 0, dunque 1. Pertanto richiamando n volte il successore di 0, avremo denito il numero n. Com'è possibile dunque denire le operazioni aritmetiche? Facciamo due esempi: 1 somma(x, 0, X) 2 somma( s (X), Y, s (Z) ) : somma(x, Y, Z) Questo è un esempio di come denire la somma. Partiamo denendo la somma di un numero con 0, poi deniamo la somma di due numeri diversi da 0, cui ci si arriva per induzione. Vediamo invece come denire il prodotto: 1 prodotto (X, 0, 0 ) 2 prodotto (X, s (Y), Z) : prodotto (X, Y, W), somma(x, W, Z) Sebbene sia possibile denire le operazioni matematiche come abbiamo appena visto, tale approccio non è utilizzabile nella pratica, dunque Prolog fornisce dei predicati predeniti per la valutazione delle espressioni. Esistono dunque sia operatori binari che operatori unari, che vediamo qui riassunti: 1
2 2 CAPITOLO 13. PROLOG: ARITMETICA E RICORSIONE Unari Binari -, exp, log, ln, sin, cos, tg +, -, *, \, div, mod Per gli operatori binari, Prolog supporta sia la consueta notazione in- ssa, sia la notazione pressa, dunque le seguenti forme sono equivalenti: +(2, 3) Prolog riconosce come atomi sia i numeri interi, sia quelli in oating point Il predicato is is è uno speciale predicato predenito che consente di valutare le espressioni ed in un certo senso di assegnare dei valori a delle variabili. Vediamo subito come funziona. Intanto anche il predicato is accetta sia la notazione pressa, sia quella inssa: 1 i s (T, Expr ) è equivalente a: 1 T i s Expr Gli operatori sono: T: un atomo numerico o una variabile; Expr: un'espressione. L'espressione Expr viene valutata ed il risultato viene unicato con T. Alcuni esempi renderanno la trattazione più chiara: il seguente esempio unica la variabile X con il risultato della somma In X troveremo dunque il risultato di tale operazione: 1 : X i s yes X=5 l'esempio qui sotto è leggermente più elaborato. Calcola il valore di 2+3 assegnandolo alla variabile X1. Usa poi il valore di X1 per calcolarne l'esponenziale ed unicarlo con X2. Per ultimo calcola X1 X2 e lo unica con X:
3 13.2. IL PREDICATO IS 3 1 : X1 i s 2+3, X2 i s exp (X1), X i s X1 X2. 2 y e s X1=5 X2= X3= adesso utilizziamo invece di una variabile un atomo numerico e confrontiamolo con l'esito di un'operazione aritmetica: 1 : 0 i s yes in questo quarto esempio proviamo a vericare se due espressioni hanno lo stesso risultato: 1 : X i s 2+3, X i s no Dopo il primo goal, la variabile X ha il valore 5, dunque il secondo goal coincide con: 1 : 5 i s 4+1 riprendiamo l'esempio precedente, ma applichiamo una modica: 1 : X i s 2+3, X i s X+1. 2 no È importante notare che alla variabile X, nel secondo goal non viene assegnato il valore X+1 in quanto le variabili sono write-once. Il secondo goal equivale a chiedere se X è uguale a X+1 e chiaramente ciò provoca un fallimento. nel prossimo esempio proviamo ad eettuare un calcolo utilizzando però la variabile Y non istanziata: 1 : X i s Y 1. 2 no Come vediamo otteniamo un fallimento. essere istanziate! Le variabili devono sempre con il prossimo esempio mostriamo che con il predicato is l'ordine dei goal è importante: 1 ( a ) : X i s 2+3, Y i s X+1. 2 (b) : Y i s X+1, X i s 2+3.
4 4 CAPITOLO 13. PROLOG: ARITMETICA E RICORSIONE Come possiamo immaginare infatti, il goal a produce X = 5, Y = 6, mentre il goal b fallirebbe dal momento che X non è istanziata quando si va a svolgere il primo sotto goal. Il predicato is è un esempio di predicato non reversibile e come conseguenza tutte le funzioni che fanno uso di tale predicato non sono in generale reversibili. Un'espressione viene valutata soltanto se è il secondo argomento del predicato is. Lo vediamo con il seguente esempio: 1 p(a,2+3 5). 2 q (X,Y) : p(a,y), X i s Y. 3 : q (X,Y). 4 yes X=17 Y=2+3 5 Come si fa ad arrivare a tale risultato? Il goal q(x, Y ) unica con l'espressione alla seconda riga. Il primo goal di questa espressione unica con il fatto noto, dunque ad Y viene associato , ma tale espressione non viene valutata. Il secondo goal viene unicato assegnando a X il valore dell'espressione contenuta in Y. Questa volta l'espressione viene valutata in quanto è il secondo parametro dell'operatore is Operatori relazionali Prolog fornisce anche degli operatori (con notazione inssa) per confrontare i valori delle espressioni: Op. relazionali >, <, >=, =<, ==, =/= L'ultimo è l'operatore di disuguaglianza. Indicando uno qualunque degli operatori relazionali con REL possiamo dire che tali operatori vengono utilizzati nella forma: 1 Expr1 REL Expr2 Le espressioni Expr1 ed Expr2 vengono valutate (ovviamente devono essere completamente istanziate) ed i loro risultati vengono confrontati.
5 13.4. FUNZIONI Funzioni Volendo denire una funzione di n argomenti, questa può essere realizzata in Prolog tramite un predicato a n+1 argomenti, come segue: 1 f (X1, X2,..., Xn, Y) : <c a l c o l o di Y> Il predicato f accetta n+1 parametri che sono gli n argomenti della funzione e la variabile in cui inserire il risultato. Possiamo vedere ora qualche esempio: fattoriale: la funzione fattoriale è una funzione che prende in input un valore x e restistuisce 1 se x=0, altrimenti restituisce x 1 x. Questo secondo risultato può essere riscritto ricorsivamente come: f attoriale(x) = f attoriale(x 1) x. Sulla base di queste considerazioni possiamo dunque denire una funzione fatt (in realtà è un predicato) che calcola e restituisce proprio il fattoriale: 1 f a t t ( 0, 1 ). 2 f a t t (N,Y) : N>0, N1 i s N 1, f a t t (N1, Y1), Y i s N Y1. A questo punto possiamo provarla: 1 : f a t t (6,X). 2 yes X=720 massimo comun divisore fra due numeri interi positivi: il massimo comune divisore fra due numeri si calcola secondo queste due semplici regole: l'mcd fra X>0 e 0 è X; l'mcd fra X>0 ed Y>0 è pari all'mcd fra em Y e X mod Y. Ricaviamo quindi: 1 mcd(x, 0,X). 2 mcd(x,y, Z) : Y>0, X1 i s X mod Y, mcd(y, X1, Z). valore assoluto: vediamo due possibili formulazioni: 1 abs ( 0, 0 ). 2 abs (X,X) : X>0. 3 abs (X, Y) : X<0, Y i s (X 2 X). o alternativamente:
6 6 CAPITOLO 13. PROLOG: ARITMETICA E RICORSIONE 1 abs (X, X) : X>=0. 2 abs (X, Y) : X<0, Y i s X. parità: scriviamo una funzione che verichi se un numero è pari: 1 p a r i (X) : 0 i s (X mod 2). O in una via più elaborata: 1 p a r i ( 0 ). 2 p a r i (X) : X>0, X1 i s X 1, d i s p a r i (X1). 3 d i s p a r i (X) : X>0, X1 i s X 1, p a r i (X1) Ricorsione ed iterazione Il Prolog non fornisce alcun costrutto per l'iterazione, nessun ciclo for, while, repeat ecc. L'unico meccanismo per ottenere iterazione è la ricorsione. Un particolare tipo di ricorsione è la cosiddetta ricorsione tail. Una funzione ricorsiva tail è una funzione che dopo aver richiamato sè stessa, non eettua altre operazioni. In altre parole f è ricorsiva tail se sul risultato della chiamata ricorsiva di f non vengono eettuate altre operazioni. La ricorsione tail viene equiparata ad una denizione per iterazione. Nel caso di ricorsione la regola generale dice che la valutazione richiede l'uso dello stack ed in particolare il caricamento in cima allo stack di una copia del record d'attivazione della funzione per ogni chiamata della f stessa. Se la funzione è denita con ricorsione tail l'uso dello stack è inutile. Cerchiamo di capire ciò con un esempio. Consideriamo il seguente blocco di pseudo codice: (X): if X = 0 then g(x) else f(x 1) Supponiamo di richiamare f(2). Nello stack viene inserito un record di attivazione per contenente < X = 2,... >. Poi viene richiamata dal codice la funzione stessa, ma con argomento 1: f(1). Nello stack avremo quindi un nuovo record di attivazione: < X = 1,... >, < X = 2,... >. A questo punto viene richiamata f(0) e lo stack assume la forma: < X = 0,... >, < X = 1,... >, < X = 2,... >. A questo punto si può calcolare g(0) (e la sua chiamata provocherà l'aggiunta nello stack di un'altra voce < X = 0,... > in testa). All'uscita di g(0) viene rimosso il primo record di attivazione, e poi man mano tutti gli altri: prima il record corrispondente a f(0), poi a f(1), poi a f(2). Il salvataggio dei valori nello stack è necessario
7 13.5. RICORSIONE ED ITERAZIONE 7 per poter poi eettuare delle operazioni all'uscita delle varie funzioni, ma avendo usato la ricorsione tail non vi saranno altre elaborazioni all'uscita da una chiamata di funzione. Questo ci fa capire dunque che il salvataggio nello stack per tali funzioni è inutile e quindi si può attuare un'ottimizzazione. L'ottimizzazione della ricorsione tail consiste nel valutare una funzione ricorsiva tail f mediante un processo iterativo, cioè caricando un solo record di attivazione per f sullo stack di esecuzione. Con questa ottimizzazione non servirà in memoria uno spazio proporzionale al numero di chiamate ricorsive, ma uno spazio costante. In Prolog l'ottimizzazione della ricorsione tail risulta più complicata a causa del non determinismo e della presenza di punti di scelta nella denizione delle clausole. A questo proposito vediamo un piccolo esempio: 1 p(x) : c1 (X), g (X). 2 p(x) : c2 (X), h1 (X,Y), p(y). 3 p(x) : c3 (X), h2 (X,Y), p(y). Se viene scelta la seconda clausola per valutare il goal p(z), bisogna ricordarsi che la terza è ancora un punto di scelta aperto e bisogna mantenere alcune informazioni nel record di attivazione di p(z). Se invece viene scelta la terza (in generale l'ultima) clausola, non è più necessario mantenere alcuna informazione nel record di attivazione dal momento che non vi sono punti di scelta aperti e l'ottimizzazione può essere eettuata. Quindi in Prolog l'ottimizzazione della ricorsione tail è possibile solo se la scelta nella valutazione di un predicato p è deterministica o, meglio, se al momento della chiamata ricorsiva (n + 1)-esima di p non vi sono alternative aperte per la chiamata al passo n-esimo (ossia alternative che potrebbero essere considerate in fase di backtracking). Quasi tutti gli interpreti Prolog eettuano l'ottimizzazione della ricorsione tail ed è pertanto conveniente usare il più possibile ricorsione di tipo tail. Riprendiamo la denizione della funzione fattoriale: 1 f a t t ( 0, 1 ). 2 f a t t (N,Y) : N>0, N1 i s N 1, f a t t (N1, Y1), Y i s N Y1. Come possiamo notare, tale funzione non è ricorsiva tail in quanto dopo la chiamata ricorsiva di fatt nella seconda clausola si eettua un'ulteriore elaborazione, proprio sul risultato di tale funzione. Vediamo come sia possibile riscrivere questa funzione come ricorsiva tail: 1 f a t t 1 (N,Y) : f a t t 1 (N, 1, 1,Y). 2 f a t t 1 (N,M,A,A) : M>N. 3 f a t t 1 (N,M, Ai, Ao) : At i s Ai M, M1 i s M+1, f a t t 1 (N,M1, At, Ao).
8 8 CAPITOLO 13. PROLOG: ARITMETICA E RICORSIONE dove si è fatto uso di Ai e Ao che sono rispettivamente un accumulatore in ingresso (inizializzato a 1) ed un accumulatore in uscita. Sono cioè due contatori, uno passato in ingresso ed uno fornito in uscita che, all'ultima iterazione, corrisponderà al valore del fattoriale. Vediamo un'ultimo esempio: come realizzare un programma che calcoli la successione di Fibonacci. Lo facciamo conu na funzione non ricorsiva tail: 1 f i b o ( 0, 0 ). 2 f i b o ( 1, 1 ). 3 f i b o (X, Z) : Y1 i s X 1, Y2 i s X 2, f i b o (Y1,A), f i b o (Y2,B), Z i s A+B.
Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
Dettagli(X (, Y, Y Z ) Z " Z Z
ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come
DettagliTABELLA OPERATORI ARITMETICI
ARITMETICA E RICORSIONE Non esiste, in logica, alcun meccanismo per la valutazione di funzioni, operazione fondamentale in un linguaggio di programmazione I numeri interi possono essere rappresentati come
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliALGEBRA DELLE PROPOSIZIONI
Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra
Dettagli+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
Dettagli2. Leggi finanziarie di capitalizzazione
2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliSISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
DettagliFondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliAlgebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 2 - Funzioni Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2.
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
DettagliOttimizazione vincolata
Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l
DettagliAlcune nozioni di base di Logica Matematica
Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliApplicazioni lineari
Applicazioni lineari Esempi di applicazioni lineari Definizione. Se V e W sono spazi vettoriali, una applicazione lineare è una funzione f: V W tale che, per ogni v, w V e per ogni a, b R si abbia f(av
DettagliGUIDA BASE DI PASCAL
1 GUIDA BASE DI PASCAL Un algoritmo, nel suo significato più ampio, è sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione
DettagliEsempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
DettagliDerivate Limiti e funzioni continue
Derivate Limiti e funzioni continue Se il valore di una funzione f() si avvicina al valore l quando si avvicina ad 0 diciamo che f() ha come ite l per tendente ad 0. Noi per rappresentare questo fatto
DettagliFunzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente
Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliProof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme
G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliSoluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Dettagli1. PRIME PROPRIETÀ 2
RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
DettagliFUNZIONI ELEMENTARI - ESERCIZI SVOLTI
FUNZIONI ELEMENTARI - ESERCIZI SVOLTI 1) Determinare il dominio delle seguenti funzioni di variabile reale: (a) f(x) = x 4 (c) f(x) = 4 x x + (b) f(x) = log( x + x) (d) f(x) = 1 4 x 5 x + 6 ) Data la funzione
DettagliLaboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliIl seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:
Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto: Tabella Cliente: Tabella NumTel: Tabella Dati_Cliente: L'esempio è per ragioni di chiarezza
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliPlate Locator Riconoscimento Automatico di Targhe
Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
Dettagli3 GRAFICI DI FUNZIONI
3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom
DettagliEsercizi su lineare indipendenza e generatori
Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliMatematica generale CTF
Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
DettagliLE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
DettagliLogaritmi ed esponenziali
Logaritmi ed esponenziali definizioni, proprietà ITIS Feltrinelli anno scolastico 2007-2008 A cosa servono i logaritmi I logaritmi rendono possibile trasformare prodotti in somme, quozienti in differenze,
DettagliCalcolo del Valore Attuale Netto (VAN)
Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliTesti di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
DettagliSemantica operazionale dei linguaggi di Programmazione
Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliInteresse, sconto, ratei e risconti
TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell
DettagliIntroduzione ai Metodi Formali
Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliFondamenti e didattica di Matematica Finanziaria
Fondamenti e didattica di Matematica Finanziaria Silvana Stefani Piazza dell Ateneo Nuovo 1-20126 MILANO U6-368 silvana.stefani@unimib.it 1 Unità 7 Costituzione di un capitale Classificazione Fondo di
Dettagli( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
DettagliAppunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio
Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento
DettagliUna funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.
Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliPROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI
PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento
DettagliProposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 2014
Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 14 Problema 1 Punto a) Osserviamo che g (x) = f(x) e pertanto g () = f() = in quanto Γ è tangente all asse delle ascisse,
Dettagli1 Serie di Taylor di una funzione
Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 7 SERIE E POLINOMI DI TAYLOR Serie di Taylor di una funzione. Definizione di serie di Taylor Sia f(x) una funzione definita
DettagliComparatori. Comparatori di uguaglianza
Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",
DettagliParte 1. Vettori di bit - AA. 2012/13 1.1
1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n
DettagliGli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
DettagliESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016. 1. Esercizi 4
ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016 1. Esercizi 4 Piani di ammortamento Esercizio 1. Un debito di 1000e viene rimborsato a tasso annuo i = 10%
DettagliCALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU
Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi
DettagliDAL DIAGRAMMA AL CODICE
DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliEpoca k Rata Rk Capitale Ck interessi Ik residuo Dk Ek 0 S 0 1 C1 Ik=i*S Dk=S-C1. n 0 S
L AMMORTAMENTO Gli ammortamenti sono un altra apllicazione delle rendite. Il prestito è un operazione finanziaria caratterizzata da un flusso di cassa positivo (mi prendo i soldi in prestito) seguito da
DettagliPertanto la formula per una prima approssimazione del tasso di rendimento a scadenza fornisce
A. Peretti Svolgimento dei temi d esame di MDEF A.A. 015/16 1 PROVA CONCLUSIVA DI MATEMATICA per le DECISIONI ECONOMICO-FINANZIARIE Vicenza, 9/01/016 ESERCIZIO 1. Data l obbligazione con le seguenti caratteristiche:
DettagliTraccia di soluzione dell esercizio del 25/1/2005
Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliRAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI
RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma
DettagliMatematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
Dettagli1 Giochi a due, con informazione perfetta e somma zero
1 Giochi a due, con informazione perfetta e somma zero Nel gioco del Nim, se semplificato all estremo, ci sono due giocatori I, II e una pila di 6 pedine identiche In ogni turno di gioco I rimuove una
DettagliProf. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
DettagliSistemi di Numerazione
Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema
DettagliESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016. 1. Esercizi: lezione 24/11/2015
ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016 1. Esercizi: lezione 24/11/2015 Valutazioni di operazioni finanziarie Esercizio 1. Un operazione finanziaria
DettagliLEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2. 2, x3 +2x +3.
7 LEZIONE 7 Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2 2 6x, x3 +2x 2 6x, 3x + x2 2, x3 +2x +3. Le derivate sono rispettivamente,
Dettagli2 Argomenti introduttivi e generali
1 Note Oltre agli esercizi di questa lista si consiglia di svolgere quelli segnalati o assegnati sul registro e genericamente quelli presentati dal libro come esercizio o come esempio sugli argomenti svolti
DettagliUna percentuale di una certa importanza nel mondo economico è il tasso di interesse. Il tasso di
Capitalizzazione e attualizzazione finanziaria Una percentuale di una certa importanza nel mondo economico è il tasso di interesse. Il tasso di interesse rappresenta quella quota di una certa somma presa
DettagliCAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI
CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI Abbiamo studiato successioni e serie numeriche, ora vogliamo studiare successioni e serie di funzioni. Dato un insieme A R, chiamiamo successione di funzioni
Dettagli(anno accademico 2008-09)
Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato
DettagliLA MACCHINA FRIGORIFERA E LA POMPA DI
asdf LA MACCHINA FRIGORIFERA E LA POMPA DI CALORE 12 March 2012 Il ciclo di Carnot... "al contrario" Nell'articolo dedicato alla macchina termica, avevamo visto nel finale la macchina di Carnot e il ciclo
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
DettagliMacchine di Turing, problemi ricorsivi e ricorsivamente enumerabili
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili roblemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa quello che ci aspettiamo. E facile
DettagliParte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno
Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Dettagli[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008
Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti
DettagliPolli e conigli. problemi Piano cartesiano. Numeri e algoritmi Sistemi e loro. geometrica. Relazioni e funzioni Linguaggio naturale e
Polli e conigli Livello scolare: primo biennio Abilità Interessate Calcolo di base - sistemi Risolvere per via grafica e algebrica problemi che si formalizzano con equazioni. Analizzare semplici testi
DettagliInsiemi di livello e limiti in più variabili
Insiemi di livello e iti in più variabili Insiemi di livello Si consideri una funzione f : A R, con A R n. Un modo per poter studiare il comportamento di una funzione in più variabili potrebbe essere quello
Dettagli