Brevissima introduzione al Lisp
|
|
- Raffaele Pepe
- 8 anni fa
- Visualizzazioni
Transcript
1 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 nessuna pretesa di completezza riguardo al linguaggio Lisp. Per gli scopi del corso é di interesse mostrare come si possano definire 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 prefissa, poi incrementalmente passare ad argomenti sempre piú complessi, fino a presentare un interprete lisp scritto in lisp. 1 L interprete lisp come una calcolatrice Forma prefissa prefissa: Nel lisp le espressioni sono rappresentate mediante la forma (+ 8 3) corrisponde a 8+3 e l interprete lisp restituisce correttamente 11. Nella forma prefissa 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: (* 4 2) 8 (- (* 4 2) (+ 3 2)) 3 Tipi numerici di dato: float, integer e ratio Il lisp ci fornisce tre tipi numerici di dato. Consideriamo la seguente divisione tra numeri interi (integer): 1
2 (/ 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 (float) di un rapporto: (FLOAT (/ 5 2)) 2.5 Per ottenere un risultato equivalente possiamo scrivere i numeri direttamente nel formato float, come nel seguente esempio: (/ ) 2.5 Operazioni matematiche operazioni matematiche: Tra le primitive fornite dal lisp segnalamo le seguenti (MAX 7 6 8) 8 (MIN 7 6 8) 6 (ABS -8) 8 (EXPT 2 3) 8 (SQRT 25) 5 Massimo Minimo Valore assoluto Elevamento a potenza Radice quadrata (ROUND 1.25) 1 (ROUND 1.75) 2 (TRUNCATE 14 4) 3 Arrotondamento Divisione tra interi (REM 14 4) REMainder: resto della 2 divisione tra interi Notiamo che ROUND restituisce il numero intero il cui valore piú si avvicina a quello dell argomento (di tipo float). Se X é intero vale la seguente: 2
3 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 2 Definizione di funzioni numeriche In lisp si distingue tra programmi, procedure e primitive. Un programma é un insieme di procedure, mentre le primitive sono le procedure fornite dal linguaggio lisp. Per definire una procedura si usa il comando DEFUN che ha la seguente sintassi: (DEFUN <nome procedura> (<lista parametri>) <corpo procedura>) Per esempio posso definire 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 la procedura appena definita puó essere chiamata come al solito con la notazione prefissa, ovvero: (MODULO 3 4) 5.0 Nel definire funzioni si puó usare la ricorsione, come nel seguente (classico) esempio del calcolo del fattoriale di un numero: 3
4 (DEFUN FATTORIALE (N) (COND ((= N 1) 1) (T (FATTORIALE (- N 1))))) Nella prossima sezione definiremo formalmente la sintassi della primitiva COND che abbiamo usato nella definizione della funzione fattoriale. Esercizi 1. Scrivere in forma prefissa 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. 3 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) 3.14 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. 4
5 L operatore QUOTE Abbiamo visto che nella notazione prefissa 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 (ROMA LAZIO JUVE))) (ROMA LAZIO JUVE) Solitamente l operatore QUOTE viene abbreviato con l apice ( ) davanti alla parentesi, quindi la seguente istruzione é equivalente alla precedente: (SETQ CLASSIFICA (ROMA LAZIO JUVE)) (ROMA LAZIO JUVE) Notiamo la differenza 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 L operatore CAR restituisce il primo ele- Operazioni su liste: CAR e CDR mento 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) (CDR ((A B)(C D)) ((C D)) Bisogna prestare particolare attenzione al fatto che CDR restituisce sempre 5
6 una lista, mentre CAR restituisce un elemento (che puó anche essere una lista). CAR e CDR possono essere combinati tra di loro (fino 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) (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 si sono scambiati di posto: 6
7 (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)) (LAST A) ERRORE! 7
8 Definizione di procedure su liste Come abbiamo visto per funzioni numeriche, con la stessa sintassi (DEFUN) é possibile definire nuove procedure che operano su liste. Per esempio definiamo 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 definite possono essere usate nella definizione di nuove funzioni, se vogliamo scrivere la funzione che ruota a destra una lista, (RUOTADX) possiamo sfruttare la funzione RUOTASX appena definita. 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 finora 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 NIL, mentre il valore vero da T, anche se per definizione é vera qualsiasi cosa diversa da NIL. Esistono numerose procedure, chiamate predicati, che restituiscono valori di verit. Tra queste: ATOM verifica che il suo argomento sia un atomo: (ATOM (A B C)) NIL (ATOM A) NIL Allo stesso modo LISTP restituisce T se il suo argomento é una lista: (LISTP (A B C)) T 8
9 (LISTP A) NIL A parte ATOM parecchi predicati finiscono per P, mnemonico per predicato. Tra questi i seguenti predicati restituiscono T se l argomento é: NUMBERP un numero ZEROP 0 ODDP (un numero) pari EVENP (un numero) dispari MINUSP (un numero) minore di 0 MEMBER prende in ingresso un elemento e una lista e restituisce T se la lita contiene l elemento: MEMBER A (B B A C) (A C) MEMBER A (B B C) NIL Il predicato EQUAL verifica che i suoi (2) argomenti siano uguali. quindi: Abbiamo (SETQ A B) ; Assegno ad A il valore B B (EQUAL A A) T (EQUAL A B) T (EQUAL A B) NIL Prendere decisioni nelle funzioni: la primitiva COND Adesso che abbiamo visto i predicati vediamo come usarli all interno delle funzioni che scriviamo. Nella definizione della funzione fattoriale avevamo visto utilizzata la primitiva COND. La sintassi é la seguente: (COND (test1 azione1) 9
10 (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 finche 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 definita nel modo seguente: (DEFUN FIBONACCI (N) (COND ((= N 0) 1) ((= N 1) 1) (T (+ (FIBONACCI (- N 1))(FIBONACCI (- N 2)))))) 4 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))). Definisco 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 definiamo una funzione) ci serve l operatore FUNCALL, che ha la sintassi: FUNCALL <nomefunzione> <operandi della funzione> Quindi la corretta definizione della funzione DUEVOLTE é: 10
11 (DEFUN DUEVOLTE (F X) (FUNCALL F (FUNCALL F X))) DUEVOLTE da cui (DUEVOLTE SQRT 81) 3.0 La funzione SQRT in questo caso operava su un solo elemento. Supponiamo di voler effettuare 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). 11
Brevissima introduzione al Lisp
Brevissima introduzione al Lisp Giorgio Ausiello, Luigi Laura 2 marzo 2004 Queste pagine costituiscono un riferimento per gli studenti del corso di Informatica Teorica e non hanno nessuna pretesa di completezza
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
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
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
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
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.
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
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
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
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
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
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
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....................................
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
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
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
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
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
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
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
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
DettagliRicapitoliamo. Ricapitoliamo
Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)
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
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
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
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
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
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.
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
DettagliAlgebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.
Algebra booleana Nel lavoro di programmazione capita spesso di dover ricorrere ai principi della logica degli enunciati e occorre conoscere i concetti di base dell algebra delle proposizioni. L algebra
Dettagli( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
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
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
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
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
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
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
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
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
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
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 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
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")
DettagliAlgebra di Boole ed Elementi di Logica
Algebra di Boole ed Elementi di Logica 53 Cenni all algebra di Boole L algebra di Boole (inventata da G. Boole, britannico, seconda metà 8), o algebra della logica, si basa su operazioni logiche Le operazioni
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
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
DettagliTest Excel conoscenze di Base
Test Excel conoscenze di Base 1)Che tipo di barra ha un foglio di calcolo, che un elaboratore testi non ha? a. La barra dei menu b. La barra della formula c. La barra del titolo d. La barra della formattazione
DettagliTesti di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
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
DettagliObiettivo Principale: Aiutare gli studenti a capire cos è la programmazione
4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:
DettagliEsponenziali elogaritmi
Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.
Dettagli+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice
Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica
DettagliLaurea in Ingegneria Informatica Facoltà di Ingegneria Università di Roma La Sapienza. Dispense del Corso di Intelligenza Artificiale
Laurea in Ingegneria Informatica Facoltà di Ingegneria Università di Roma La Sapienza Dispense del Corso di Intelligenza Artificiale Anno Accademico 2003/04 Linguaggi per l Intelligenza Artificiale Daniele
Dettagli4. Operazioni elementari per righe e colonne
4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:
DettagliSemantica operazionale dei linguaggi di Programmazione
Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.
Dettagli2. Leggi finanziarie di capitalizzazione
2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M
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ò
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
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
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
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
DettagliAlgebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.
Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari
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,
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
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliLa distribuzione Normale. La distribuzione Normale
La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una
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
DettagliIntroduzione all Information Retrieval
Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information
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
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
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
DettagliEsempi di funzione. Scheda Tre
Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.
DettagliDocumentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
DettagliIl principio di induzione e i numeri naturali.
Il principio di induzione e i numeri naturali. Il principio di induzione è un potente strumento di dimostrazione, al quale si ricorre ogni volta che si debba dimostrare una proprietà in un numero infinito
DettagliE possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools
Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati
DettagliESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
DettagliLibrerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video
Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile
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
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
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
DettagliALGEBRA RELAZIONALE RIEPILOGO
ALGEBRA RELAZIONALE RIEPILOGO PROIEZIONE: (notazione ) Operatore unario per estrarre colonne da una relazione: lista_attributi (R) Lo schema del risultato contiene i soli attributi contenuti in lista_attributi.
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,
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliLuigi Piroddi piroddi@elet.polimi.it
Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,
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
DettagliElementi di Psicometria con Laboratorio di SPSS 1
Elementi di Psicometria con Laboratorio di SPSS 1 12-Il t-test per campioni appaiati vers. 1.2 (7 novembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca
Dettagli4. Operazioni aritmetiche con i numeri binari
I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:
DettagliProbabilità discreta
Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che
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
DettagliSchemi delle Lezioni di Matematica Generale. Pierpaolo Montana
Schemi delle Lezioni di Matematica Generale Pierpaolo Montana A volte i fenomeni economici che ci interessano non variano con continuitá oppure non possono essere osservati con continuitá, ma solo a intervalli
Dettagli13. Campi vettoriali
13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello
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
DettagliCorrettezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza
DettagliStatistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
DettagliProdotto libero di gruppi
Prodotto libero di gruppi 24 aprile 2014 Siano (A 1, +) e (A 2, +) gruppi abeliani. Sul prodotto cartesiano A 1 A 2 definiamo l operazione (x 1, y 1 ) + (x 2, y 2 ) := (x 1 + x 2, y 1 + y 2 ). Provvisto
DettagliOttimizazione vincolata
Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l
Dettagli