Brevissima introduzione al Lisp

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Brevissima introduzione al Lisp"

Transcript

1 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 riguardo al linguaggio Lisp. Per gli scopi del corso é di interesse mostrare come si possano denire funzioni con il linguaggio Lisp. Da notare che queste pagine sono state scritte con l'idea di fornire allo studente del materiale da usare davanti a un interprete Lisp, ed é per questo che cominciamo presentando l'interprete Lisp come una calcolatrice interattiva, per consentire al lettore di familiarizzare prima con la forma pressa, poi incrementalmente passare ad argomenti sempre piú complessi. 1 Tipi di dato in Lisp In Lisp vi sono i seguenti tipi di dato base: S-espressioni (o espressioni simboliche o espressioni). Puó essere un Atomo, una Lista o una collezione di S-espressioni racchiuse tra parentesi. é equivalente alla lista vuota, quindi é sia un atomo che una lista. Atomo. É una stringa di caratteri che comincia per una lettera, una cifra o un qualsiasi carattere speciale diverso dalla parentesi aperta ( o chiusa ). Distinguiamo in Atomo numerico o numero (per esempio 10 o 1.41). Atomo simbolico o simbolo (per esempio A, CIAO, +, RKO281) Lista. É una parentesi aperta (, seguita da zero o piú atomi o liste, seguita da una parentesi chiusa ). Un programma Lisp é una S-espressione P al quale l'interprete lisp risponde restituendo una S-espressione che rappresenta il valore di P. 2 L'interprete Lisp come una calcolatrice Forma pressa Nel Lisp le espressioni sono rappresentate mediante la forma pressa: (+ 8 3) corrisponde a 8+3 e l'interprete Lisp restituisce correttamente 11. Nella forma pressa il primo elemento di una parentesi é l'operatore, e i successivi (da destra verso sinistra) sono gli operandi. Nel seguito scriveremo le espressioni Lisp in una riga e quello che viene restituito dall'interprete nella successiva, ad esempio: 1

2 (* 4 2) 8 (- (* 4 2) (+ 3 2)) 3 Tipi numerici di dato: oat, integer e ratio Il Lisp ci fornisce tre tipi numerici di dato. Consideriamo la seguente divisione tra numeri interi (integer): (/ 8 4) 2 Nell'esempio precedente il risultato e' un numero intero (che ci viene restituito dall' interprete Lisp). Se, viceversa, il risultato non é un numero intero il Lisp restituisce un ratio, ovvero un rapporto: (/ 5 2) 5/2 Con l'istruzione FLOAT possiamo forzare il Lisp a restituirci il valore reale (oat) di un rapporto: (FLOAT (/ 5 2)) 2.5 Per ottenere un risultato equivalente possiamo scrivere i numeri direttamente nel formato oat, come nel seguente esempio: (/ ) 2.5 Operazioni matematiche Tra le primitive fornite dal Lisp segnaliamo le seguenti operazioni matematiche: 2

3 (MAX 7 6 8) Massimo (ROUND 1.25) Arrotondamento 8 1 (MIN 7 6 8) Minimo (ROUND 1.75) 6 2 (ABS -8) Valore assoluto (TRUNCATE 14 4) Divisione tra interi 8 3 (EXPT 2 3) Elevamento a potenza (REM 14 4) REMainder: resto della 8 2 divisione tra interi (SQRT 25) Radice quadrata 5 Notiamo che ROUND restituisce il numero intero il cui valore piú si avvicina a quello dell'argomento (di tipo oat). Se X é intero vale la seguente: X=(ROUND (FLOAT X)) Se X,Y sono interi e Y diverso da 0 vale la relazione: (+ (* (TRUNCATE X Y) Y) (REM X Y)=X Il numero di operandi varia (naturalmente) da funzione a funzione: N: +,*,-, MAX, MIN 2: TRUNCATE, REM, EXPT 1: ABS, SQRT, FLOAT 3 Denizione di funzioni numeriche In Lisp si distingue tra programmi, funzioni e primitive. Un programma é un insieme di funzioni (o di denizioni di funzione), mentre le primitive sono le funzioni fornite dal linguaggio Lisp. Per denire una procedura si usa il comando DEFUN che ha la seguente sintassi: (DEFUN <nome procedura> (<lista parametri>) <corpo procedura>) Per esempio posso denire la seguente procedura MODULO che prende in ingresso le due componenti x e y di un vettore bidimensionale e ne restisce il modulo (= x 2 + y 2 ): (DEFUN MODULO (X Y) (SQRT (+ (* X X) (* Y Y)))) MODULO 3

4 la procedura appena denita puó essere chiamata come al solito con la notazione pressa, ovvero: (MODULO 3 4) 5.0 Nel denire funzioni si puó usare la ricursione, come nel seguente (classico) esempio del calcolo del fattoriale di un numero: (DEFUN FATTORIALE (N) (COND ((= N 1) 1) (T (* N (FATTORIALE (- N 1)))))) Nella prossima sezione deniremo formalmente la sintassi della primitiva COND che abbiamo usato nella denizione della funzione fattoriale. Esercizi 1. Scrivere in forma pressa la seguente espressione: ((3 + 2) 5 + (4 2)) ((2 + 3)/5) 2. Scrivere una funzione Lisp che prende due numeri (positivi) e restituisce la radice quadrata del minore dei due. 3. Scrivere una funzione Lisp ALCUBO che prende un numero e lo eleva al cubo. 4 Atomi, liste e funzioni su liste Prima di introdurre le liste, tipo di dato fondamentale nel linguaggio Lisp (l'acronimo Lisp sta per list processor!) vediamo due primitive fondamentali: SETQ e QUOTE che consentono, rispettivamente, di assegnare valori a variabili e di impedire la valutazione di una espressione. L'istruzione SETQ L'istruzione SETQ prende in ingresso 2 operandi ed assegna al primo il valore del secondo: (SETQ PIGRECO 3.14) 3.14 A questo punto PIGRECO vale La seguente istruzione: (SETQ A PIGRECO) 3.14 assegna correttamente ad A il valore di PIGRECO, e quindi Se vogliamo fare piú assegnazioni insieme, possiamo scrivere semplicemente: (SETQ PIGRECO 3.14 RADICEDIDUE 1.41 A PIGRECO)

5 Infatti SETQ accetta n coppie di operandi ed assegna a ogni primo elemento di una coppia il valore del secondo elemento corrispondente. Notiamo che se l'interprete Lisp esegue una serie di operazioni (in questo caso assegnazioni) restituisce sempre l'ultimo valore. Inne notiamo che, ora che abbiamo assegnato a PIGRECO il valore 3.14, se chiediamo all'interprete di valutarlo, esso ci restituirá il suo valore: PIGRECO 3.14 L'operatore QUOTE Abbiamo visto che nella notazione pressa il primo elemento di una lista é l'operatore, e gli altri sono gli operandi. Ma se voglio avere una lista come operando? Come faccio a far capire all'interprete Lisp che la lista che si trova davanti é l'operando e non un qualcosa da valutare? In altre parole, come distinguo (+ 4 2) dalla lista composta dai 3 elementi +,4 e 2? Questa funzione viene assolta dall'operatore QUOTE (apice): (SETQ CLASSIFICA (QUOTE (LAZIO MILAN JUVE))) (LAZIO MILAN JUVE) Solitamente l'operatore QUOTE viene abbreviato con l'apice (') davanti alla parentesi, quindi la seguente istruzione é equivalente alla precedente: (SETQ CLASSIFICA '(LAZIO MILAN JUVE)) (LAZIO MILAN JUVE) Notiamo la dierenza tra le seguenti istruzioni: (SETQ A 'B) B (SETQ C A) B (SETQ C 'A) A Assegna ad A il valore B Assegna a C il valore di A, quindi B Assegna a C il valore A Operazioni su liste: CAR e CDR L'operatore CAR restituisce il primo elemento di una lista: (CAR '(A B C)) A Una lista puó contenere delle liste al suo interno. Per esempio: (CAR '((A B)(C D)) (A B) L'operatore CDR restituisce la lista privata del primo elemento: (CDR '(A B C)) (B C) 5

6 (CDR '((A B)(C D))) ((C D)) Bisogna prestare particolare attenzione al fatto che CDR restituisce sempre una lista, mentre CAR restituisce un elemento (che puó anche essere una lista). Da notare anche: (CAR ') (CDR ') CAR e CDR possono essere combinati tra di loro (no a un massimo di 4 volte) CDDR é il CDR del CDR. Altri esempi: (CADR '( )) ;Equivale a (CAR (CDR '( ))) 2 (CDAR '((1 2) (2 3) (3 4))) ;Equivale a (CDR (CAR '((1 2) (2 3) (3 4)))) (2) Costruttori di liste In Lisp ci sono tre primitivi che consentono di costruire delle liste: LIST,APPEND e CONS. LIST prende n operandi e restituisce la lista i cui elementi sono gli n operandi: (LIST 'A) (A) (LIST 'A 'A) (A A) (LIST 'A (CDR '(A B C))) (A (B C)) APPEND prende n liste e restituisce la lista composta dagli elementi delle n liste: (APPEND '(1 2) '(3 4)) ( ) (APPEND '(1 2) '(CDR (1 2))) (1 2 CDR (1 2)) CONS prende due operandi: un elemento e una lista e restituisce la lista con lelemento inserito al primo posto: (CONS 'A '(B C)) (A B C) 6

7 (CONS 'A (CDR '(B C))) (A C) Altre operazioni su liste: REVERSE, LENGTH, SUBST e LAST REVERSE prende come argomento una lista e restituisce la lista in cui gli elementi di livello piú elevato sono invertiti: (REVERSE '(1 2)) (2 1) (REVERSE '(1 2 (3 4))) ((3 4) 2 1) LENGTH conta il numero di elementi di livello piú elevato presenti in una lista: (LENGTH '(A B)) 2 (LENGTH '(A B (C D))) 3 Notiamo che sia REVERSE che LENGTH agiscono sugli elementi di livello piú elevato in una lista, e che considerano atomi e liste allo stesso modo. Quindi LENGTH su una lista composta da 3 atomi restituirá 3, e lo stesso fará su una lista composta di 3 liste. SUBST ha il seguente formato: (SUBST <new expression> <old atom> <expression to substitute>) alcuni esempi: (SUBST 'A 'B '(A B C)) (A A C) (SUBST 'B 'A '(A B C)) (B B C) (SUBST 'A 'B '(B ((B) B) A C)) (A ((A) A) A C) LAST restituisce una lista che contiene l'ultimo elemento della lista datagli come argomento (notare la differenza con CAR, che restituisce un elemento): (LAST '(A B C)) (C) (LAST '((A) (B) (C))) ((C)) 7

8 (LAST 'A) ERRORE! Denizione di procedure su liste Come abbiamo visto per funzioni numeriche, con la stessa sintassi (DEFUN) é possibile denire nuove procedure che operano su liste. Per esempio deniamo la funzione RUOTASX che prende una lista in ingresso e la ruota a sinistra, ovvero prende il primo elemento e lo inserisce in fondo alla lista. (DEFUN RUOTASX (L) (APPEND (CDR L) (LIST (CAR L)))) RUOTASX Le funzioni appena denite possono essere usate nella denizione di nuove funzioni, se vogliamo scrivere la funzione che ruota a destra una lista, (RUOTADX) possiamo sfruttare la funzione RUOTASX appena denita. L'idea é la seguente: ruotare una lista a destra é equivalente a invertire una lista, ruotarla a sinistra e invertirla di nuovo. Notiamo che se avessimo voluto usare la funzione LAST per prendere l'ultimo elemento e inserirlo in cima avremmo poi avuto il problema di eliminarlo dalla lista originale, cosa che in RUOTASX veniva svolta da CDR. (DEFUN RUOTADX (L) (REVERSE (RUOTASX (REVERSE L)))) RUOTADX Le procedure Lisp che abbiamo visto nora restituivano in uscita un solo valore (o dato). Questa é una caratteristica del Lisp, e per avere piú di un valore in uscita da una procedura si puó far restituire una lista contenente i valori. Predicati Nel linguaggio Lisp esistono due costanti a cui sono associati i valori booleani vero e falso. Il valore falso é rappresentato da, mentre il valore vero da T, anche se per denizione é vera qualsiasi cosa diversa da. Esistono numerose procedure, chiamate predicati, che restituiscono valori di veritï ½ Tra queste: ATOM verica che il suo argomento sia un atomo: (ATOM '(A B C)) (ATOM 'A) Allo stesso modo LISTP restituisce T se il suo argomento é una lista: (LISTP '(A B C)) T (LISTP 'A) 8

9 A parte ATOM parecchi predicati niscono per P, mnemonico per predicato. Tra questi i seguenti predicati restituiscono T se l'argomento é: NUMBERP un numero ZEROP 0 ODDP (un numero) dispari EVENP (un numero) pari MINUSP (un numero) minore di 0 MEMBER prende in ingresso un elemento e una lista e restituisce T se la lista contiene l'elemento: (MEMBER 'A '(B B A C)) T (MEMBER 'A '(B B C)) Il predicato EQUAL verica che i suoi (2) argomenti siano uguali. Abbiamo quindi: (SETQ A 'B) ; Assegno ad A il valore 'B B (EQUAL A A) T (EQUAL A 'B) T (EQUAL A B) Tra le primitive del linguaggio Lisp ci sono anche gli operatori logici AND, OR e NOT. Alcuni esempi: (AND T ) (OR T ) T (NOT T) Prendere decisioni nelle funzioni: la primitiva COND Adesso che abbiamo visto i predicati vediamo come usarli all'interno delle funzioni che scriviamo. Nella denizione della funzione fattoriale avevamo visto utilizzata la primitiva COND. La sintassi é la seguente: 9

10 (COND (test1 azione1) (test2 azione2)... (testn azionen)) Il comportamento di COND é il seguente: viene valutato il test1, se vale T viene eseguita l'azione1, altrimenti si passa al test2 e cosí via nche non si trova (se si trova) un test che restituisce T. In tal caso si esegue l'azione corrispondente e poi si esce. Per esempio la funzione FIBONACCI puó essere denita nel modo seguente: (DEFUN FIBONACCI (N) (COND ((= N 0) 1) ((= N 1) 1) (T (+ (FIBONACCI (- N 1))(FIBONACCI (- N 2)))))) 5 Funzioni come parametri di funzioni Supponiamo di voler scrivere una funzione che si comporti nel seguente modo: prenda in ingresso una funzione F e un altro argomento X, e applichi due volte la F su X (ovvero F(F(X))). Denisco la funzione nel seguente modo: (DEFUN DUEVOLTE (F X) (F (F X))) ; Sbagliata! DUEVOLTE A questo punto l'istruzione (DUEVOLTE SQRT 81) ERRORE restituisce errore perché la variabile SQRT non ha valore (per vederla come funzione dovrei farla precedere da una parentesi). Allo stesso modo (DUEVOLTE 'SQRT 81) ERRORE restituisce errore perché 'SQRT viene visto come una costante (quale é!). Per poter chiamare funzioni (incognite nel momento in cui deniamo una funzione) ci serve l'operatore FUN- CALL, che ha la sintassi: FUNCALL <nomefunzione> <operandi della funzione> Quindi la corretta denizione della funzione DUEVOLTE é: (DEFUN DUEVOLTE (F X) (FUNCALL F (FUNCALL F X))) DUEVOLTE da cui 10

11 (DUEVOLTE 'SQRT 81) 3.0 La funzione SQRT in questo caso operava su un solo elemento. Supponiamo di voler eettuare una somma (o sottrazione) di N elementi, contenuti in una lista. Come facciamo a passarli come parametri a FUNCALL? Supponiamo che gli N elementi siano nella lista L, bisognerebbe scrivere qualcosa del tipo: (FUNCALL '+ (CAR (CDR L)) (CAR (CDR (CDR L))).. (CAR (CDR (..CDR L))) In questo caso si usa la primitiva APPLY, che prende in ingresso una funzione e una lista e chiama la funzione sugli elementi della lista (se volevo chiamare la funzione sulla lista usavo FUNCALL!): (APPLY '+ L) é equivalente a (se L1..Ln sono gli elementi di L): (+ L1 L2.. Ln). 6 Esercizi Esercizio 1 Scrivere la funzione Lisp INVERSA (equivalente alla funzione predenita REVERSE) che, presa in ingresso una lista, restituisca la lista invertita. Soluzione (DEFUN INVERSA (L) (COND ((NULL L) L) (T (APPEND (INVERSA (CDR L)) (LIST (CAR L)))))) Esercizio 2 Scrivere la funzione Lisp APPARTIENE (equivalente alla funzione predenita MEMBER) che, presi in ingresso un atomo A e una lista L, restituisca T se la lista contiene l'atomo. Soluzione (DEFUN APPARTIENE (A L) (COND ((NULL L) ) ((EQ (CAR L) A) T) (T (APPARTIENE A (CDR L))))) Esercizio 3 Scrivere una funzione Lisp che, ricevute in ingresso due liste rappresentanti insiemi, restituisca la lista rappresentante l'unione dei due insiemi. Soluzione (DEFUN UNIONE (L1 L2) (COND ((NULL L1) L2) ((MEMBER (CAR L1) L2) (UNIONE (CDR L1) L2)) (T (CONS (CAR L1) (UNIONE (CDR L1) L2))))) Esercizio 4 Scrivere una funzione Lisp che, ricevute in ingresso due liste rappresentanti insiemi, restituisca la lista rappresentante l'intersezione dei due insiemi. 11

12 Esercizio 5 Scrivere una funzione Lisp che, ricevute in ingresso due liste rappresentanti insiemi, verichi se i due insiemi coincidono (ovvero se le due liste contengono gli stessi elementi a meno dell'ordine degli stessi).per esempio, se L1=(A B C D)e L2=(B C D A), allora i due insiemi coincidono. Esercizio 6 La funzione REVERSE inverte solo gli elementi di primo livello di una lista. Per esempio, (REVERSE '((1 2) 3 4)) restituisce (3 4 (1 2)). Scrivere la funzione Lisp INVERTITUT- TO che, presa in ingresso una lista, restituisca la lista invertita anche in profonditá Per esempio, (INVERTITUTTO '((1 2) 3 4)) deve restituire (3 4 (2 1)). Soluzione (DEFUN INVERTITUTTO (L) (COND ((NULL L) L) ((ATOM L) L) (T (APPEND (INVERTITUTTO (CDR L)) (LIST (INVERTITUTTO (CAR L))))))) Esercizio 7 La funzione LENGTH conta gli elementi di primo livello di una lista. Per esempio, (LENGTH '((1 2) 3 4)) restituisce 3. Scrivere la funzione Lisp CONTAATOMI che, presa in ingresso una lista, restituisca il numero di atomi contenuti nella lista. Per esempio, (CONTAATOMI '((1 2) 3 4)) deve restituire 4. Esercizio 8 Scrivere la funzione Lisp APPLICA che, prese in ingresso una funzione f e una lista L=(x 1 x 2... x n ), restituisca la lista L'= (f(x 1 ) f(x 2 )... f(x n )). Esercizio 9 [Esonero maggio Compito A] Scrivere un programma LISP che, letta una lista contenente una rappresentazione di un polinomio p(x) a coecienti razionali, fornisca in uscita la lista che rappresenta il polinomio p (x) p(x)/ x, derivata prima di p(x). Si denisca una tecnica adeguata per la rappresentazione di polinomi. Esercizio 10 [Esonero maggio Compito B] Scrivere un programma LISP che, letta una lista contenente una rappresentazione di un polinomio p(x) a coecienti razionali, fornisca in uscita la lista che rappresenta un polinomio q(x) primitiva di p(x), cioï ½tale che: p(x)dx = q(x). Si denisca una tecnica adeguata per la rappresentazione di polinomi. Esercizio 11 [Esonero maggio Compito A] Scrivere una (meta-)funzione Lisp che, prese in ingresso due funzioni g : N N e h : N 3 N restituisca la funzione f denita da g e h per ricursione primitiva. { f(x, 0) = g(x) f(x, y + 1) = h(x, y, f(x, y)) Esercizio 12 [Esonero maggio Compito B] Scrivere una (meta-)funzione Lisp che, presa in ingresso una funzione g : N 2 N, restituisca la funzione f denita da g per minimalizzazione: f(x) = µ y {g(x, y) = 0} Esercizio 13 [Esonero maggio Compito A] Scegliere un' opportuna rappresentazione degli alberi binari mediante liste e scrivere un programma LISP che, ricevuto in ingresso un albero binario A, verichi se A é un albero binario di ricerca. 12

13 Esercizio 14 [Esonero maggio 2001] Scrivere un programma LISP che, ricevute in ingresso due liste rappresentanti due polinomi, restituisca la lista che rappresenta la somma dei polinomi. Esercizio 15 [Esonero maggio compito A] Scegliere un' opportuna rappresentazione degli alberi binari mediante liste e scrivere un programma LISP che, ricevuto in ingresso un albero binario di ricerca A, restituisca la lista ordinata degli elementi dell'albero. Per esempio, nell'albero riportato in gura 1, il programma dovrebbe restituire la lista L = ( ) Figura 1: Esempio di albero binario di ricerca Esercizio 16 [Esonero maggio compito B] Scegliere un' opportuna rappresentazione degli alberi binari mediante liste e scrivere un programma LISP che, ricevuto in ingresso un albero binario A, restituisca la lista delle coppie (elemento, livello) per ogni elemento dell'albero A. Per esempio, nell'albero riportato in gura 2, il programma dovrebbe restituire la lista L = ( (9 0) (22 1) (11 1) (10 2) (9 2) ) (non necessariamente in quest'ordine). Esercizio 17 [Esonero maggio compito A] Si consideri il seguente problema: Vertex Cover (VC): Dato un grafo G = (V, E) e un intero k 0 esiste un vertex cover V V, V k, tale che, per ogni arco e = (v 1, v 2 ) E, almeno uno tra v 1 e v 2 sia contenuto in V. Scegliere un' opportuna rappresentazione di gra mediante liste e scrivere un programma LISP che, ricevuti in ingresso un grafo G = (V, E) (nella rappresentazione scelta) ed un insieme di vertici V V, verichi se V ï ½un vertex cover di G. Esercizio 18 [Esonero maggio compito B] Si consideri il seguente problema: Independent Set (IS): Dato un grafo G = (V, E) e una costante k 0 esiste V V, con V = k, e tale che per ogni coppia u, v V (u, v) / E? Scegliere un' opportuna rappresentazione di gra mediante liste e scrivere un programma LISP che, ricevuti in ingresso un grafo G = (V, E) (nella rappresentazione scelta) ed un insieme di vertici V V, verichi se V ï ½un independent set di G. 13

14 Figura 2: Esempio di albero binario Esercizio 19 [Esame 7 luglio compito A] Scrivere un programma LISP che, ricevuta in ingresso una lista di liste, restituisca la lista contenente l'intersezione delle liste. Esempio: se L=((A B C) (B C) (B C D)) il programma deve restituire L'=(B C). Esercizio 20 [Esame 7 luglio compito A] Scrivere un programma LISP che, ricevuta in ingresso una lista di liste, restituisca la lista contenente l'unione delle liste. Esempio: se L=((A B C) (B C) (B C D)) il programma deve restituire L'=(A B C D). Esercizio 21 [Esame 15 luglio compito A] Si consideri il seguente problema. Set Cover (SC): Dati un insieme S, una collezione C di sottoinsiemi di S C = {c 1, c 2,..., c m } e una costante k, decidere se esiste un sottoinsieme C C tale che C k e C copre S, ovvero S = ci C. Scrivere un programma LISP che, ricevute in ingresso una lista L rappresentante l'insieme S e una lista C di sottoinsiemi c 1, c 2,..., c m (rappresentati come liste) verichi se C è un set cover di L. Per esempio, se L =(A B C D E F) e C =((A B C)(B E F)(D E)), allora C è un set cover di L. Esercizio 22 [Esame 15 luglio compito B] Si consideri il seguente problema. Hitting Set (HS): Dati un insieme S, m sottoinsiemi C 1, C 2,..., C m di 2 S e una costante k, decidere se esiste un sottoinsieme S S tale che S k e S contiene almeno un elemento di ciascun C i, i = 1, 2,..., m. Scrivere un programma LISP che, ricevute in ingresso una lista L di sottoinsiemi C 1, C 2,..., C m (rappresentati come liste) e una lista che rappresenta S, verichi se S è un hitting set di L. Per esempio, se L =((A B) (B C D) (E F)) e S =(B E), allora S è un hitting set di L. Esercizio 23 [Esame 9 settembre compito A] Scrivere un programma LISP che, ricevuta in ingresso una lista di liste L, rappresentante una matrice quadrata di dimensione n n, restituisca una lista contenente gli elementi sulla diagonale principale. Per esempio, se L = ((A B B) (B C D) (E F F)), il programma deve restituire la lista (A C F). Esercizio 24 [Esame 9 settembre compito B] Scrivere un programma LISP che, ricevuta in ingresso una lista di liste L, rappresentante una matrice quadrata di dimensione n n, restituisca una lista contenente 14

15 gli elementi sulla diagonale secondaria. Per esempio, se L =((A B B) (B C D) (E F F)), il programma deve restituire la lista (B C E). Esercizio 25 [Esame 12 gennaio compito A] Scrivere un programma LISP che, ricevute in ingresso due liste rappresentanti insiemi, restituisca la lista rappresentante l'insieme ottenuto come prodotto cartesiano dei due insiemi. Esempio: se L1=(A B C) e L2=(1 2) il programma deve restituire L'=((A 1)(A 2)(B 1)(B 2)(C 1)(C 2)) (non necessariamente in quest'ordine). Esercizio 26 [Esame 12 gennaio compito B] Scrivere un programma LISP che, ricevute in ingresso due liste rappresentanti insiemi, restituisca la lista rappresentante l'insieme ottenuto come dierenza simmetrica dei due insiemi. Esempio: se L1=(A B C D) e L2=(E D C F) il programma deve restituire L'=(A B E F) (non necessariamente in quest'ordine). (Ricordiamo che (A, B) = A B A B). 15

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

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 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

Dettagli

LE FUNZIONI A DUE VARIABILI

LE 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

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Informatica teorica Lez. n 12 Introduzione al Lisp. Introduzione al Lisp. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 12 Introduzione al Lisp. Introduzione al Lisp. Prof. Giorgio Ausiello Università di Roma La Sapienza Introduzione al Lisp Argomenti della lezione Aspetti generali del Lisp S-espressioni Funzioni predefinite Definizione di funzioni e costrutti programmativi Lisp Ispirato da funzioni ricorsive e lambda

Dettagli

Funzioni in C. Violetta Lonati

Funzioni 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

Dettagli

Alcune nozioni di base di Logica Matematica

Alcune 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

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

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

Corso di Informatica

Corso 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

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

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI 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

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

CONCETTO DI LIMITE DI UNA FUNZIONE REALE CONCETTO DI LIMITE DI UNA FUNZIONE REALE Il limite di una funzione è uno dei concetti fondamentali dell'analisi matematica. Tramite questo concetto viene formalizzata la nozione di funzione continua e

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

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

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Matematica in laboratorio

Matematica 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

Dettagli

3 GRAFICI DI FUNZIONI

3 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

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni 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

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione 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

Dettagli

1 Serie di Taylor di una funzione

1 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

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

SCHEDA DI RECUPERO SUI NUMERI RELATIVI SCHEDA DI RECUPERO SUI NUMERI RELATIVI I numeri relativi sono l insieme dei numeri negativi (preceduti dal segno -) numeri positivi (il segno + è spesso omesso) lo zero. Valore assoluto di un numero relativo

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti 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

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

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 E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Capitolo 5. Funzioni. Grafici.

Capitolo 5. Funzioni. Grafici. Capitolo 5 Funzioni. Grafici. Definizione: Una funzione f di una variabile reale,, è una corrispondenza che associa ad ogni numero reale appartenente ad un insieme D f R un unico numero reale, y R, denotato

Dettagli

IL CONCETTO DI FUNZIONE

IL CONCETTO DI FUNZIONE IL CONCETTO DI FUNZIONE Il concetto di funzione è forse il concetto più importante per la matematica: infatti la matematica e' cercare le cause, le implicazioni, le conseguenze e l'utilità di una funzione

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

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

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

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

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

FUNZIONI 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

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense 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

Dettagli

Funzioni. Funzioni /2

Funzioni. Funzioni /2 Funzioni Una funzione f è una corrispondenza tra due insiemi A e B che a ciascun elemento di A associa un unico elemento di B. Si scrive: f : A B l'insieme A si chiama il dominio della funzione f, l'insieme

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

STRUTTURE ALGEBRICHE

STRUTTURE ALGEBRICHE STRUTTURE ALGEBRICHE Operazioni in un insieme Sia A un insieme non vuoto; una funzione f : A A A si dice operazione binaria (o semplicemente operazione), oppure legge di composizione interna. Per definizione

Dettagli

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k Capitolo 4 Serie numeriche 4. Serie convergenti, divergenti, indeterminate Data una successione di numeri reali si chiama serie ad essa relativa il simbolo u +... + u +... u, u 2,..., u,..., (4.) oppure

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi 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

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

Interesse, sconto, ratei e risconti

Interesse, 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

Dettagli

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

CAPITOLO 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

risulta (x) = 1 se x < 0.

risulta (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

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Prolog: aritmetica e ricorsione

Prolog: aritmetica e ricorsione 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

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e Alberi di decisione Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e lanciarlo con i parametri di default.

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti 129 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 129 129.1.1 Esercizio per il calcolo dell interesse semplice........................

Dettagli

Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni

Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni A cura di Sebastiano Cappuccio SCHEDA N. 6 ARGOMENTO: Grafici di funzioni sottoposte a trasformazioni elementari.

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 11 Tipi astratti di dato e loro rappresentazione A. Miola Marzo 28 http://www.dia.uniroma3.it/~java/fondinf2/ ADT e Rappresentazione

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

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

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Complemento 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,

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

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, x3 +2x +3.

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

Dettagli

La somma. Esempio: Il prodotto. Esempio:

La somma. Esempio: Il prodotto. Esempio: La somma L algoritmo della operazione di somma non cambia qualunque sia la base considerata. Naturalmente, le regole da imparare nel caso di una base b sono relative alle sole b 2 posssibili combinazioni

Dettagli

Tavola riepilogativa degli insiemi numerici

Tavola riepilogativa degli insiemi numerici N : insieme dei numeri naturali Z : insieme dei numeri interi Q : insieme dei numeri razionali I : insieme dei numeri irrazionali R : insieme dei numeri reali Tavola riepilogativa degli insiemi numerici

Dettagli

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL

LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL LABORATORIO DI MATEMATICA RENDITE, AMMORTAMENTI, LEASING CON EXCEL ESERCITAZIONE GUIDATA: LE RENDITE 1. Il montante di una rendita immediata posticipata Utilizzando Excel, calcoliamo il montante di una

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

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

11) convenzioni sulla rappresentazione grafica delle soluzioni

11) convenzioni sulla rappresentazione grafica delle soluzioni 2 PARAGRAFI TRATTATI 1)La funzione esponenziale 2) grafici della funzione esponenziale 3) proprietá delle potenze 4) i logaritmi 5) grafici della funzione logaritmica 6) principali proprietá dei logaritmi

Dettagli

Esempi di algoritmi. Lezione III

Esempi 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

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

Dettagli

Matematica generale CTF

Matematica 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

Dettagli

Verifica della correttezza formale del numero di partita IVA

Verifica della correttezza formale del numero di partita IVA Verifica della correttezza formale del numero di partita IVA A tutti i soggetti che intraprendono un attività rilevante ai fini Iva (impresa, arte, professione), al momento della presentazione della dichiarazione

Dettagli

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Le equazioni Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Definizione e caratteristiche Chiamiamo equazione l uguaglianza tra due espressioni algebriche,

Dettagli

Teoria degli insiemi

Teoria degli insiemi Teoria degli insiemi pag 1 Easy Matematica di dolfo Scimone Teoria degli insiemi Il concetto di insieme si assume come primitivo, cioè non riconducibile a concetti precedentemente definiti. Sinonimi di

Dettagli

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica

Dettagli

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali 1 Numeri naturali La successione di tutti i numeri del tipo: 0,1, 2, 3, 4,..., n,... forma l'insieme dei numeri naturali, che si indica con il simbolo N. Tale insieme si può disporre in maniera ordinata

Dettagli

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26 Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo

Dettagli

Sistemi di Numerazione

Sistemi 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

Dettagli

Capitolo 2. Operazione di limite

Capitolo 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

Dettagli

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI ORDINAMENTO DEI DATI Quando si ordina un elenco (ovvero una serie di righe contenenti dati correlati), le righe sono ridisposte in base al contenuto di una colonna specificata. Distinguiamo due tipi di

Dettagli

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza

Dettagli

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};

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}; 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

Dettagli

Anno 1. Le relazioni fondamentali (equivalenza, d'ordine, inverse, fra insiemi)

Anno 1. Le relazioni fondamentali (equivalenza, d'ordine, inverse, fra insiemi) Anno 1 Le relazioni fondamentali (equivalenza, d'ordine, inverse, fra insiemi) 1 Introduzione In questa lezione imparerai a utilizzare le diverse tipologie di relazione e a distinguerle a seconda delle

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti 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

Dettagli

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico Capitolo 4 4.1 Il foglio elettronico Le più importanti operazioni richieste dall analisi matematica dei dati sperimentali possono essere agevolmente portate a termine da un comune foglio elettronico. Prenderemo

Dettagli

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006 PROGETTO OLIMPII I MTEMTI U.M.I. UNIONE MTEMTI ITLIN SUOL NORMLE SUPERIORE IGiochidirchimede-Soluzioniiennio novembre 006 Griglia delle risposte corrette Problema Risposta corretta E 4 5 6 7 8 9 E 0 Problema

Dettagli

Slide Cerbara parte1 5. Le distribuzioni teoriche

Slide Cerbara parte1 5. Le distribuzioni teoriche Slide Cerbara parte1 5 Le distribuzioni teoriche I fenomeni biologici, demografici, sociali ed economici, che sono il principale oggetto della statistica, non sono retti da leggi matematiche. Però dalle

Dettagli

Funzioni - Parte II. 1 Composizione di Funzioni. Antonio Lazzarini. Prerequisiti: Funzioni (Parte I).

Funzioni - Parte II. 1 Composizione di Funzioni. Antonio Lazzarini. Prerequisiti: Funzioni (Parte I). Funzioni - Parte II Antonio Lazzarini Prerequisiti: Funzioni (Parte I). 1 Composizione di Funzioni Sappiamo che é possibile denire diverse operazioni ra i numeri: addizione, sottrazione, moltiplicazione,

Dettagli

Convertitori numerici in Excel

Convertitori 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

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni

Analisi dei Dati 12/13 Esercizi proposti 3 soluzioni Analisi dei Dati 1/13 Esercizi proposti 3 soluzioni 0.1 Un urna contiene 6 palline rosse e 8 palline nere. Si estraggono simultaneamente due palline. Qual è la probabilità di estrarle entrambe rosse? (6

Dettagli

1. PRIME PROPRIETÀ 2

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

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

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

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che: Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi

Dettagli

Utilizzo delle formule in Excel

Utilizzo delle formule in Excel Utilizzo delle formule in Excel Excel è dotato di un potente motore di calcolo che può essere utilizzato per elaborare i dati immessi dagli utenti. I calcoli sono definiti mediante formule. Ogni formula

Dettagli