Prolog: aritmetica e ricorsione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Prolog: aritmetica e ricorsione"

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. 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

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

Brevissima introduzione al Lisp

Brevissima introduzione al Lisp Brevissima introduzione al Lisp Giorgio Ausiello, Luigi Laura 2 marzo 2004 Queste pagine costituiscono un riferimento per gli studenti del corso di Informatica Teorica e non hanno nessuna pretesa di completezza

Dettagli

AA 2006-07 LA RICORSIONE

AA 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

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra 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

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

Fondamenti 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) 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

Dettagli

I Polinomi. Michele Buizza. L'insieme dei numeri interi lo indicheremo con Z. è domenica = non vado a scuola. signica se e solo se.

I Polinomi. Michele Buizza. L'insieme dei numeri interi lo indicheremo con Z. è domenica = non vado a scuola. signica se e solo se. I Polinomi Michele Buizza 1 Insiemi In questa prima sezione ricordiamo la simbologia che useremo in questa breve dispensa. Iniziamo innanzitutto a ricordare i simboli usati per i principali insiemi numerici.

Dettagli

GUIDA BASE DI PASCAL

GUIDA 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

Dettagli

2 Progetto e realizzazione di funzioni ricorsive

2 Progetto e realizzazione di funzioni ricorsive 2 Progetto e realizzazione di funzioni ricorsive Il procedimento costruttivo dato dal teorema di ricorsione suggerisce due fatti importanti. Una buona definizione ricorsiva deve essere tale da garantire

Dettagli

Programmazione I - Laboratorio

Programmazione 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.

Dettagli

Brevissima introduzione al Lisp

Brevissima introduzione al Lisp Brevissima introduzione al Lisp Versione preliminare Giorgio Ausiello, Luigi Laura May 16, 2001 Queste pagine costituiscono un riferimento per gli studenti del corso di Informatica Teorica e non hanno

Dettagli

Programma di Paradigmi e possibili domande. Capitolo 1

Programma di Paradigmi e possibili domande. Capitolo 1 Definizione di macchina astratta Programma di Paradigmi e possibili domande Capitolo 1 Una macchina astratta per il linguaggio L detta ML, è un qualsiasi insieme di algoritmi e strutture dati che permettono

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. 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

Dettagli

Parte 1. Vettori di bit - AA. 2012/13 1.1

Parte 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

Dettagli

Corso di Visual Basic (Parte 9)

Corso di Visual Basic (Parte 9) Corso di Visual Basic (Parte 9) di Maurizio Crespi La nona lezione del corso dedicato alla programmazione in Visual Basic si pone lo scopo di illustrare le funzioni definibili dall'utente e il concetto

Dettagli

Gli algoritmi: definizioni e proprietà

Gli 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

Dettagli

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = , dove: Finite State Machine (2)

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = <Q,,, q0, F>, dove: Finite State Machine (2) Idee guida ASM = FSM con stati generalizzati Le ASM rappresentano la forma matematica di Macchine Astratte che estendono la nozione di Finite State Machine Ground Model (descrizioni formali) Raffinamenti

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

LOGICA DEI PREDICATI. Introduzione. Predicati e termini individuali. Termini individuali semplici e composti

LOGICA DEI PREDICATI. Introduzione. Predicati e termini individuali. Termini individuali semplici e composti Introduzione LOGICA DEI PREDICATI Corso di Intelligenza Artificiale A.A. 2009/2010 Prof. Ing. Fabio Roli La logica dei predicati, o logica del primo ordine (LPO) considera schemi proposizionali composti

Dettagli

Ripasso di teoria ed esercizi in preparazione al secondo compito.??? Dicembre 2004

Ripasso di teoria ed esercizi in preparazione al secondo compito.??? Dicembre 2004 Ripasso di teoria ed esercizi in preparazione al secondo compito??? Dicembre 2004 Teoria: domande tipiche da compitino 1. Manipolazione delle strutture sintattiche: quali sono i predicati per la manipolazione

Dettagli

PROBLEMA 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 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

Dettagli

Universita' degli Studi di Udine UNA PROPOSTA PER L'INTRODUZIONE DI CAPACITA' DI META-RAPPRESENTAZIONE IN UN LINGUAGGIO DI PROGRAMMAZIONE LOGICA

Universita' degli Studi di Udine UNA PROPOSTA PER L'INTRODUZIONE DI CAPACITA' DI META-RAPPRESENTAZIONE IN UN LINGUAGGIO DI PROGRAMMAZIONE LOGICA Universita' degli Studi di Udine FACOLTA' DI SCIENZE MATEMATICHE FISICHE E NATURALI UNA PROPOSTA PER L'INTRODUZIONE DI CAPACITA' DI META-RAPPRESENTAZIONE IN UN LINGUAGGIO DI PROGRAMMAZIONE LOGICA Relatore:

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

Ricorsione. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Ricorsione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e

Dettagli

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Una 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

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

TERMINI, OPERATORI e METALIVELLO

TERMINI, OPERATORI e METALIVELLO TERMINI, OPERATORI e METALIVELLO In Prolog tutto è un termine: variabile, costante (numerica o atomica), struttura (lista come caso particolare con funtore. ) Ciascun termine struttura ha un funtore e

Dettagli

Interpretazione astratta

Interpretazione astratta Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione 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

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Informatica Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, ed elaborazione dell informazione.

Dettagli

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3 Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 3 funzioni definizione ed invocazione delle funzioni semantica dell invocazione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Laboratorio di Informatica

Laboratorio 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

Dettagli

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica 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.

Dettagli

Laboratorio teorico-pratico per la preparazione alle gare di matematica

Laboratorio teorico-pratico per la preparazione alle gare di matematica Laboratorio teorico-pratico per la preparazione alle gare di matematica Ercole Suppa Liceo Scientifico A. Einstein, Teramo e-mail: ercolesuppa@gmail.com Teramo, 3 dicembre 2014 USR Abruzzo - PLS 2014-2015,

Dettagli

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Esercizio 1 - Heapsort Si consideri la seguente struttura dati, chiamata heap. Essa è un albero binario semi-completo (ossia un

Dettagli

Appunti introduttivi sulla progettazione degli algoritmi

Appunti introduttivi sulla progettazione degli algoritmi Appunti introduttivi sulla progettazione degli algoritmi Marco Liverani Ottobre 2007 Nelle pagine seguenti sono riportati alcuni problemi e le relative soluzioni costituite da semplici algoritmi espressi

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

TEORIA DEI NUMERI SUCCESSIONI

TEORIA DEI NUMERI SUCCESSIONI Liceo Scientifico G. Salvemini Corso di preparazione per la gara provinciale delle OLIMPIADI DELLA MATEMATICA INTRO TEORIA DEI NUMERI SUCCESSIONI NUMERI INTERI QUESITO Un quesito (facile) sulle cifre:

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. 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

Dettagli

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO ALGORITMI 1. GLI ALGORITMI Un algoritmo è la descrizione del percorso risolutivo di un problema per giungere dai dati iniziali ai risultati finali. Scriviamo l algoritmo pensando di rivolgerci a un esecutore,

Dettagli

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio {

Dettagli

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

Matlab: Funzioni. Informatica B. Daniele Loiacono

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

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

La selezione binaria

La 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

Dettagli

La Macchina RAM Shepherdson e Sturgis (1963)

La Macchina RAM Shepherdson e Sturgis (1963) La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni

Dettagli

Appunti sulle disequazioni

Appunti sulle disequazioni Premessa Istituto d Istruzione Superiore A. Tilgher Ercolano (Na) Appunti sulle disequazioni Questa breve trattazione non vuole costituire una guida completa ed esauriente sull argomento, ma vuole fornire

Dettagli

Costruzione di Siti Web con PHP e MySQL. Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date

Costruzione di Siti Web con PHP e MySQL. Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date Costruzione di Siti Web con PHP e MySQL Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date Argomenti della lezione In questa lezione si riprenderanno le strutture di controllo, verrà introdotto

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

Funzioni e procedure

Funzioni e procedure Funzioni e procedure DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

Lezione 8. La macchina universale

Lezione 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

Dettagli

2. Leggi finanziarie di capitalizzazione

2. 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

Dettagli

DAL DIAGRAMMA AL CODICE

DAL 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

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

4.1 Modelli di calcolo analisi asintotica e ricorrenze

4.1 Modelli di calcolo analisi asintotica e ricorrenze 4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più

Dettagli

Reti sequenziali e strutturazione firmware

Reti sequenziali e strutturazione firmware Architettura degli Elaboratori, a.a. 25-6 Reti sequenziali e strutturazione firmware Alla parte di corso sulle reti sequenziali è apportata una sensibile semplificazione rispetto a quanto contenuto nel

Dettagli

Dispense del corso di ALGEBRA 1 a.a. 2008 2009

Dispense del corso di ALGEBRA 1 a.a. 2008 2009 Dispense del corso di ALGEBRA 1 a.a. 2008 2009 2 Indice I INSIEMI E NUMERI 5 1 Insiemi e applicazioni 7 1.1 Insiemi..................................... 7 1.2 Operazioni tra insiemi.............................

Dettagli

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */ Prototipi di funzione Il prototipo di una funzione costituisce una dichiarazione della funzione, e come tale fornisce al compilatore le informazioni necessarie a gestire la funzione stessa. Nella definizione

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

Trattamento degli errori

Trattamento degli errori Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Trattamento degli errori Giacomo PISCITELLI Trattamento degli errori Comunemente gli errori di programmazione

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Laboratorio di Informatica Lezione 2

Laboratorio di Informatica Lezione 2 Laboratorio di Informatica Lezione 2 Cristian Consonni 30 settembre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 2 1 / 42 Outline 1 Commenti e Stampa a schermo 2 Strutture di controllo 3

Dettagli

Università di Modena e Reggio Emilia CORSO INTRODUTTIVO DI INFORMATICA. (per gli studenti del primo anno di Ingegneria Informatica ed Elettronica)

Università di Modena e Reggio Emilia CORSO INTRODUTTIVO DI INFORMATICA. (per gli studenti del primo anno di Ingegneria Informatica ed Elettronica) Università di Modena e Reggio Emilia CORSO INTRODUTTIVO DI INFORMATICA (per gli studenti del primo anno di Ingegneria Informatica ed Elettronica) ARGOMENTI: Introduzione e presentazione del corso Parte

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA 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

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop SMS IN Rules SMS IN Rules } Geodrop Geodrop SMS In 2.3 Regole per la manipolazione dei messaggi Guida alla scrittura di condizioni complesse Guida alle condizioni complesse v1.0-it, 7 Dicembre 2012 Indice

Dettagli

Esercizi Capitolo 2 - Analisi di Algoritmi

Esercizi Capitolo 2 - Analisi di Algoritmi Esercizi Capitolo - Analisi di Algoritmi Alberto Montresor 19 Agosto, 014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare

Dettagli

Verica di Matematica su dominio e segno di una funzione [COMPITO 1]

Verica di Matematica su dominio e segno di una funzione [COMPITO 1] Verica di Matematica su dominio e segno di una funzione [COMPITO 1] Esercizio 1. Determinare il dominio delle seguenti funzioni: 1. y = 16 x ;. y = e 1 x +4 + x + x + 1; 3. y = 10 x x 3 4x +3x; 4. y =

Dettagli

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

Dettagli

Pillole di Analisi. Roberto Paoletti

Pillole di Analisi. Roberto Paoletti Pillole di Analisi Roberto Paoletti 1 Preinari Insiemi numerici. Nel seguito denoteremo con N = {0, 1, 2,...} l insieme dei numeri naturali, con Z = {..., 2, 1, 0, 1, 2,...} l insieme dei numeri interi,

Dettagli

Appunti e generalità sulle funzioni reali di variabili reali.

Appunti e generalità sulle funzioni reali di variabili reali. Appunti e generalità sulle funzioni reali di variabili reali. Premessa Questa breve trattazione non vuole costituire una guida completa ed esauriente sull argomento, ma vuole fornire solamente i concetti

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Algoritmo. Funzioni calcolabili. Unità 28

Algoritmo. Funzioni calcolabili. Unità 28 Prerequisiti: - Conoscenza dei numeri naturali e interi e delle loro proprietà. - Acquisizione del concetto di funzione. Questa unità è riservata al primo biennio dei Licei, eccezion fatta per il Liceo

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

PROGRESSIONI ARITMETCHE E GEOMETRICHE

PROGRESSIONI ARITMETCHE E GEOMETRICHE PROGRESSIONI ARITMETCHE E GEOMETRICHE Prof. Domenico RUGGIERO In questa trattazione, esponiamo i pricipali concetti ed applicazioni di particolari successioni meglio note come progressioni (aritmetiche

Dettagli

Architettura degli elaboratori 2012/2013

Architettura degli elaboratori 2012/2013 Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base Michele Jazzinghen Bianchi 1 1 Dipartimento di Ingegneria e Scienze dell'informazione Universtià degli Studi di Trento

Dettagli

Esercizio 1. Nella Tabella A sono riportati i tempi di percorrenza, in minuti, di un tratto autostradale da parte di 40 autoveicoli.

Esercizio 1. Nella Tabella A sono riportati i tempi di percorrenza, in minuti, di un tratto autostradale da parte di 40 autoveicoli. Esercizio 1 Nella Tabella A sono riportati i tempi di percorrenza, in minuti, di un tratto autostradale da parte di 40 autoveicoli. Tabella A 138 150 144 149 164 132 125 157 161 135 150 145 145 142 156

Dettagli

(ETC) MATRICOLE DISPARI

(ETC) MATRICOLE DISPARI Elementi di Teoria della Computazione (ETC) MATRICOLE DISPARI Docente: Prof. Luisa Gargano BENVENUTI! Finalità: Fornire gli elementi di base delle teorie che sono di fondamento all'informatica 1. Computabilità

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

APPENDICE NOZIONI BASE E VARIE

APPENDICE NOZIONI BASE E VARIE pag. 131 Appendice: Nozioni base e varie G. Gerla APPENDICE NOZIONI BASE E VARIE 1. Funzioni e relazioni di equivalenza Questi appunti sono rivolti a persone che abbiano già una conoscenza elementare della

Dettagli

Appunti di Matematica Finanziaria

Appunti di Matematica Finanziaria Appunti di Matematica Finanziaria Giovanni Masala - Marco Micocci Facoltà di Economia - Università di Cagliari Agosto 2006 1 Regimi Finanziari. 4 1.1 Considerazioni introduttive.....................................

Dettagli

Semplici esempi di programmi

Semplici esempi di programmi Semplici esempi di programmi Un programma che stampa il numero maggiore tra 2 letti in input: /* Programma NumeroMaggiore prima versione { scanf(x); scanf(y); if (x > y){ z = x; else { z = y; printf(z);

Dettagli

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti 4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

E solo questione di metodo:

E solo questione di metodo: E solo questione di metodo: problemi e algoritmi di matematica elementare Progetto Lauree Scientifiche Scuola Estiva di Matematica (4092015) Stefano Finzi Vita Dipartimento di Matematica - Sapienza Università

Dettagli

Introduzione alla Programmazione

Introduzione alla Programmazione Programmazione 1: Introduzione alla Programmazione Michele Nappi, Ph.D Dipartimento di Matematica e Informatica Università degli Studi di Salerno mnappi@unisa.it www.dmi.unisa.it/people/nappi it/people/nappi

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi 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

Dettagli

Aritmetica modulare. Aritmetica modulare. Benvenuto nel wikibook: Autore: Dr Zimbu

Aritmetica modulare. Aritmetica modulare. Benvenuto nel wikibook: Autore: Dr Zimbu Aritmetica modulare Benvenuto nel wikibook: Aritmetica modulare Autore: Dr Zimbu PDF generato attraverso il toolkit opensource ''mwlib''. Per maggiori informazioni, vedi [[http://code.pediapress.com/ http://code.pediapress.com/]].

Dettagli

x u v(p(x, fx) q(u, v)), e poi

x u v(p(x, fx) q(u, v)), e poi 0.1. Skolemizzazione. Ogni enunciato F (o insieme di enunciati Γ) è equisoddisfacibile ad un enunciato universale (o insieme di enunciati universali) in un linguaggio estensione del linguaggio di F (di

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Ripasso delle matematiche elementari: esercizi svolti

Ripasso delle matematiche elementari: esercizi svolti Ripasso delle matematiche elementari: esercizi svolti I Equazioni e disequazioni algebriche 3 Esercizi su equazioni e polinomi di secondo grado.............. 3 Esercizi sulle equazioni di grado superiore

Dettagli

Descrizione di un algoritmo

Descrizione 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

Dettagli

Rappresentazione della conoscenza. Lezione 11. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0

Rappresentazione della conoscenza. Lezione 11. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0 Rappresentazione della conoscenza Lezione 11 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0 Sommario Pianificazione Deduttiva nel calcolo delle situazioni (Reiter 3.3) Teoria del calcolo

Dettagli

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Macchine 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

Dettagli