Brevissima introduzione al Lisp
|
|
- Celia Zanetti
- 8 anni fa
- Visualizzazioni
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 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
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliLE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
DettagliAPPUNTI 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,
DettagliI 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
DettagliInformatica 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
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliAlcune nozioni di base di Logica Matematica
Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di
DettagliProgrammazione 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
DettagliAlcune 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
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliLaboratorio di Informatica
Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di
DettagliSISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
DettagliLe 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.
DettagliCONCETTO 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
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliCorrispondenze 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
DettagliMatematica in laboratorio
Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a
Dettagli3 GRAFICI DI FUNZIONI
3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom
DettagliFunzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente
Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
Dettagli1 Serie di Taylor di una funzione
Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 7 SERIE E POLINOMI DI TAYLOR Serie di Taylor di una funzione. Definizione di serie di Taylor Sia f(x) una funzione definita
DettagliAlessandro 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
DettagliSCHEDA 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
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliUso 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
DettagliCorso 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
DettagliIniziamo 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
DettagliCapitolo 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
DettagliIL 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
DettagliAlgoritmi 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
DettagliFORMULE: 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
DettagliAPPUNTI 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
DettagliLABORATORIO 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
DettagliALGEBRA DELLE PROPOSIZIONI
Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliProof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme
G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero
DettagliFUNZIONI ELEMENTARI - ESERCIZI SVOLTI
FUNZIONI ELEMENTARI - ESERCIZI SVOLTI 1) Determinare il dominio delle seguenti funzioni di variabile reale: (a) f(x) = x 4 (c) f(x) = 4 x x + (b) f(x) = log( x + x) (d) f(x) = 1 4 x 5 x + 6 ) Data la funzione
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
DettagliFunzioni. 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
DettagliEVOLUZIONE 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
DettagliSTRUTTURE 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
Dettagliu 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
DettagliEsercizi su lineare indipendenza e generatori
Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v
DettagliEXCEL 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")
DettagliInteresse, sconto, ratei e risconti
TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell
DettagliCAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI
CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI Abbiamo studiato successioni e serie numeriche, ora vogliamo studiare successioni e serie di funzioni. Dato un insieme A R, chiamiamo successione di funzioni
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliUso 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
DettagliProlog: 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
DettagliMATEMATICA 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
DettagliAprire 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.
DettagliInteresse, 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........................
DettagliConsorzio 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.
DettagliCorso 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
Dettagli10. 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
DettagliParte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno
Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra
DettagliLezioni 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ò
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
DettagliAlgebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
DettagliLEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2. 2, x3 +2x +3.
7 LEZIONE 7 Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2 2 6x, x3 +2x 2 6x, 3x + x2 2, x3 +2x +3. Le derivate sono rispettivamente,
DettagliLa 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
DettagliTavola 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
DettagliLABORATORIO 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
DettagliESERCIZI 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
DettagliI 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.
Dettagli11) 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
DettagliEsempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
DettagliI 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
DettagliUn 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
DettagliMatematica generale CTF
Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione
DettagliVerifica 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
DettagliLe 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,
DettagliTeoria 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
DettagliAlgebra 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
DettagliNumeri 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
DettagliTeoria 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
DettagliSistemi di Numerazione
Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliUniversità 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
Dettagli2.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
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliAnno 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
DettagliEsercitazione 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.
DettagliFondamenti 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
DettagliVariabili 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
DettagliCALCOLO 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,
DettagliAppunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio
Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento
DettagliL 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
DettagliIGiochidiArchimede-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
DettagliSlide 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
DettagliFunzioni - 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,
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
DettagliLA 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
DettagliAnalisi 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
Dettagli1. PRIME PROPRIETÀ 2
RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,
DettagliLA 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
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliEsercizio 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
DettagliUtilizzo 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