Interpretazione astratta in praticaun analizzatore generico per Ja

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Interpretazione astratta in praticaun analizzatore generico per Ja"

Transcript

1 Riassunto puntate precedenti Control Flow Graph Proprietà Dominio numerico Approssimazione Interpretazione astratta in pratica Un analizzatore generico per Java Pietro Ferrara Università Ca Foscari di Venezia I Venezia (Italy) Ecole Polytechnique, Paris F Palaiseau (France) April 24, 2008 Pietro Ferrara Interpretazione astratta in praticaun analizzatore generico per Ja

2 Abbiamo visto Semantica concreta del bytecode di Java Dominio astratto Chiamate di metodo Letture e scritture sullo heap Attendo domande! pietro.ferrara@gmail.com

3 La traccia in astratto In concreto: Come rappresentiamo una singola esecuzione? Come una sequenza ordinata di stati! Facile perchè nel concreto in ogni momento possiamo valutare una condizione a true o false! Non esiste il dubbio! E in astratto??? i = read(); if(i > 0)... else...

4 Bytecode Non sappiamo quale dei due rami dobbiamo percorrere Lo stesso nei cicli: quante iterazioni? A livello bytecode ancora peggio Codice non strutturato Più di due frecce possono puntare sulla stessa istruzione Frecce staticamente determinate if... #index goto #index

5 Grafo di controllo In astratto costruiamo un grafo di controllo (control flow graph) Uguale agli schemi degli algoritmi entry point iload 1>=0 iload 1<0 15 getstatic #2 4 getstatic #2 18 ldc #5 < No > 7 ldc #3 < Ok > 20 invokevirtual #4 9 invokevirtual #4 23 return

6 In concreto Conosciamo il valore (intero) dell indice 1 dell array di variabili locali Supponendo che è uguale a 1 Output sullo schermo: Ok entry point iload 1>=0 iload 1<0 15 getstatic #2 4 getstatic #2 18 ldc #5 < No > 7 ldc #3 < Ok > 20 invokevirtual #4 9 invokevirtual #4 23 return

7 In astratto Non conosciamo il valore! Supponiamo (per essere sound) che è uguale a Non sappiamo se si va da una parte o dall altra! Output sullo schermo: Ok OPPURE No entry point iload 1>=0 iload 1<0 15 getstatic #2 4 getstatic #2 18 ldc #5 < No > 7 ldc #3 < Ok > 20 invokevirtual #4 9 invokevirtual #4 23 return

8 Riassumendo In concreto Ok Solo un valore??? se il valore è 1: Ok se il valore è 0: Ok se il valore è -1: No... In astratto Ok OPPURE No Upper bound tra ramo then e ramo else dell if entry point iload 1>=0 iload 1<0 15 getstatic #2 4 getstatic #2 18 ldc #5 < No > 7 ldc #3 < Ok > 20 invokevirtual #4 9 invokevirtual #4 23 return

9 Traccia concreta vs. CFG astratto In concreto: 0 iload 1 1 iflt 15 (+14) 4 getstatic #2 < java/lang/system.out > 7 ldc #3 < Ok > 9 invokevirtual #4 < java/io/printstream.println > 12 goto 23 (+11) 23 return 0 iload 1 1 iflt 15 (+14) 15 getstatic #2 < java/lang/system.out > 18 ldc #5 < No > 20 invokevirtual #4 < java/io/printstream.println > 23 return In astratto: entry point iload 1>=0 iload 1<0 15 getstatic #2 4 getstatic #2 18 ldc #5 < No > 7 ldc #3 < Ok > 20 invokevirtual #4 9 invokevirtual #4 23 return

10 Manca qualcosa Fin qui abbiamo visto Dominio e semantica concreta Dominio e semantica astratta Ma... perchè? Ovvero: qual è l obiettivo di un analisi??? Validare una proprietà

11 Proprietà? Cosa si intende per proprietà? In fin dei conti... qualsiasi cosa possa essere interessante Per chi? Per i programmatori... Accessi a puntatori a null Divisioni per zero Accesso a un array con un indice negativo o più grande della lunghezza dell array Tutti i file aperti devono essere chiusi prima della fine del programma...

12 Tipi di proprietà Proprietà semplici vs. proprietà difficili Semplici: Difficili: accesso a null, divisioni per zero,... Tutte quelle proprietà che possono essere validate guardando il singolo stato chiusura dei files,... Tutte quelle proprietà che per essere validate richiedono di vedere tutto il grafo di controllo Vedremo solo proprietà semplici...

13 Definizione formale in concreto Funzione che, dato uno stato, ritorna true o false Accesso a null: nullaccess : Σ {true, false} nullaccess(os) = false pop(os) = null Si applica tale funzione a tutti gli stati della traccia nullaccesstrace : Σ + {true, false} nullaccess(τ) = false σ τ : nullaccess(σ) = false

14 Definizione formale in astratto Funzione che, dato uno stato, ritorna true o false o...! Talvolta l errore potrebbe esserci ma non ne siamo sicuri Accesso a null... Insieme di indirizzi! Se uno è null, la proprietà POTREBBE non essere validata! nullaccess : Σ {true, false, } nullaccess(ôs) = null pop(ôs) nullaccess : Σ {true, false, } nullaccess(ôs) = true null pop(ôs) nullaccess : Σ {true, false, } nullaccess(ôs) = false pop(ôs) = { null}

15 Esempio in concreto 1 : Object a = null; 2 : public void foo(boolean init){ 3 : if(init) 4 : a = new Object(); 5 : a.compute(); 6 : } Supponiamo che init=false a=null Arriviamo a a.compute() a==null Proprietà non validata!

16 Esempio in concreto 1 : Object a = null; 2 : public void foo(boolean init){ 3 : if(init) 4 : a = new Object(); 5 : a.compute(); 6 : } Supponiamo che init=true a=null Arriviamo a a.compute() a!=null Proprietà validata!

17 Esempio in astratto 1 : Object a = null; 2 : public void foo(boolean init){ 3 : if(init) 4 : a = new Object(); 5 : a.compute(); 6 : } init= a={null, pc : 4} Arriviamo a a.compute() null êval(a) Proprietà=!

18 Concreto vs. Astratto In concreto consideriamo i valori interi tralasciamo arrotondamenti, floating point, etc etc... In astratto molti diversi modi di approssimare tale informazione (30 anni di letteratura scientifica sull argomento!) Non-relazionale (facile!) Relazionale (difficile!) - mantiene relazioni tra variabili come x < y Noi consideriamo solo il caso facile

19 Domini non-relazionali Segni γ(0) = {0} γ(+) = {i N : i 0} γ( ) = {i N : i 0} γ( ) = N γ( ) =

20 Domini non-relazionali Intervalli γ([a..b]) = {i N : a i b}

21 Domini non-relazionali Parità D P γ(d) = {i N : i%2 = 1} γ(p) = {i N : i%2 = 0} γ( ) = N γ( ) =

22 Domini non-relazionali Congruenze γ(n) = {i N : i%n = 0}

23 Operazioni con il dominio delle congruenze Siano c 1 e c 2 due valori interi che rappresentano due classi di congruenze (γ(c 1 ) = {i : i%c 1 = 0}) Upper bound: c 1 c 2 = MCD(c 1, c 2 ) (MCD=massimo comune divisore) Esempio: upper bound tra un numero divisilbe per 6 e uno divisible per 21. Siamo sicuri di avere numero divisibile per 3! Addizione: c 1 + c 2 = MCD(c 1, c 2 ) (c 1 x + c 2 y = k ((c 1 /k) x + (c 2 /k) y)), dove k = MCD(c 1, c 2 ) Se sommo un numero divisibile per 4 e uno divisibile per 6 ottengo un numero di sicuro divisibile per 2 Moltiplicazione: c 1 c 2 = c 1 c 2 Se un numero è pari e un altro è divisibile per 3 Li moltiplico Ottengo un numero che di sicuro è divisibile per 6!

24 Domini non-relazionali Insiemi di interi {1, 2} {2, 3} {1, 3}... {1} {2} {3}... γ({i 1, i 2,..., i n }) = {i j : j [1..n]}

25 Operatori e operazioni aritmetiche Operatore di ordinamento: Upper bound: Operatori aritmetici: applicano a tutte le possibili combinazioni gli operatori aritmetici su singoli valori interi {i 1, i 2 } + {i 1, i 2 } = {i 1 + i 1, i 1 + i 2, i 2 + i 1, i 2 + i 2 } Esplosione nel numero di valori Parametrizziamo il dominio su un valore k Se {i 1,...} > k allora astraiamo a

26 Domini relazionali Pentagoni Intervalli e x < y

27 Domini relazionali Ottagoni Intervalli e ±x ± y a

28 Domini relazionali Polyhedra Σa i x i b

29 Perchè facile? I domini relazionali devono gestire direttamente gli assegnamenti le variabili le espressioni aritmetiche le condizioni... I domini non-relazionali invece possono lavorare direttamente sui valori Perdendo (un po di) informazione Necessario definire la semantica delle operazioni aritmetiche intervalli: [a 1..b 1 ] + [a 2..b 2 ] = [a 1 + a 2..b 1 + b 2 ] valutare delle condizioni segni: s < 0 = true s = implementare ordinamento congruenze: i 1 i 2 i 2 %i 1 = 0 implementare upper bound, lower bound e widening p 1 if p 2 = p parità: p 1 p 2 = 2 if p 1 = if p 1 p 2 p 1 = p 2 = otherwise p 1

30 Perchè??? Tanti domini Intervalli più precisi del dominio dei segni Congruenze più precisi del dominio di parità Polyhedra più precisi di ottagoni, pentagoni... Ma... perchè? Tradeoff tra Precisione Velocità Caso per caso

31 Bound degli array public void prova(int[] arr) { for(int i = 0; i < arr.length; i + +) arr[i] = 0; } Con il dominio degli intervalli All interno del ciclo for : i [0.. + ] i 0? Sì! i < arr.length? Boh! Con il dominio degli upper bound (solo relazioni x < y) All interno del ciclo for : i < arr.length i 0? Boh! i < arr.length? Sì! Come usare insieme i due domini?

32 Prodotto cartesiano Si può fare il prodotto cartesiano dei due domini Siano D 1 e D 2 due domini astratti D 1 D 2 è il prodotto cartesiano Semplicemente si usano separatamente i due domini (d 1, d 2 ) (d 1, d 2) = (d 1 1 d 1, d 2 2 d 2 ) (d 1, d 2 ) (d 1, d 2) = (d 1 1 d 1, d 2 2 d 2 ) (d 1, d 2 ) (d 1, d 2) d 1 1 d 1 d 2 2 d 2...

33 Bound degli array public void prova(int[] arr) { for(int i = 0; i < arr.length; i + +) arr[i] = 0; } Prodotto cartesiano tra intervalli e upper bound All interno del ciclo for : (i [0.. + ], i < arr.length) i 0? Sì: i [0.. + ] i < arr.length? Sì: i < arr.length

34 Bound degli array public void prova(int[] arr, int j, int i) { if(i < j && i >= 0) if(arr.length >= 100) if(j < 100 && j >= 0) arr[i] = 0; } Prodotto cartesiano tra intervalli e upper bound All interno del ciclo for : (arr.length [ ], j [0..99], i [0.. + ], i < j) i 0? Sì: i [0.. + ] i < arr.length? Boh! Possiamo raffinare l informazione contenuta negli upper bound con quella contenuta dagli intervalli {arr.length [ ], j [0..99]} j < arr.length {i < j, j < arr.length} i < arr.length Stato ridotto: ({arr.length [ ], j [0..99], i [0.. + ]}, {i < j, j < arr.length, i < arr.length})

35 Prodotto ridotto Prodotto ridotto di due domini D 1 e D 2 astratti: Prodotto cartesiano D 1 D 2 Funzione di riduzione: reduce : (D 1 D 2 ) (D 1 D 2 ) tale che reduce(d 1, d 2 ) (d 1, d 2 ) La funzione di riduzione si può applicare quando si vuole Problema: Il prodotto della riduzione è più piccolo (ovvero preciso) dello stato iniziale

36 Perdita di informazione Ieri abbiamo visto altri approci per l astrazione di indirizzi Non esiste una soluzione perfetta ma varie soluzione adatte a diversi contesti Idem per i domini numerici Lo stesso accade per il nostro dominio astratto Stack di frame Heap Anche se non sembra, perdiamo informazione rispetto all esecuzione concreta E a ciò che si potrebbe inferire a livello di codice sorgente

37 Ordine delle operazioni x = (z + y) y; Dominio degli intervalli: z [2..4], y [ 1..1] Che valore viene assegnato a x? Degli operatori astratti di somma e addizione particolarmente precisi possono vedere che: Se y = 1 : ([2..4] + [ 1.. 1]) [ 1.. 1] = [ 3.. 1] Se y = 1 : ([2..4] + [1..1]) [1..1] = [3..5] Se y = 0 : ([2..4] + [0..0]) [0..0] = [0..0] Risultato: [ 3..5]

38 Ordine delle operazioni t = z + y; x = t y; A livello bytecode Dominio degli intervalli: z [2..4], y [ 1..1] Che valore viene assegnato a x? t = z + y : t [2..4] + [ 1..1] = [1..5] x = t y : t [1..5] [ 1..1] = [ 5..5] Risultato: [ 5..5] Prima avevamo ottenuto [ 3..5]!

39 Ricostruzione di espressioni Come ovviare a questa perdita di informazione? Ricostruendo le espressioni Il bytecode contiene esattamente le stesse informazioni del codice sorgente Ma spezzettate! Tutti i valori vengono letti e passati allo stack delle operazioni Questo lavoro solo tra due valori Ad esempio w = x + y + z è tradotto in t = x + y; w = t + z; (x + y) z < 0 è tradotto in t = x + y; t = t z; t < 0

40 Analisi delle condizioni Domini relazionali: Analizzare con precisione le condizioni Vengono dedotte constraint indispensabili per provare la correttezza di un programma Per definizione più variabili coinvolte in una constraint Bytecode spezzetta Valori delle variabili passati allo stack Operazioni solo tra due variabili (add, mult,...)

41 if(i + y < 5&&i y < 10)... 0 iload 1 1 iload 2 2 iadd 3 iconst 5 4 if icmpge 23 (+19) 7 iload 1 8 iload 2 9 isub 10 bipush if icmpge 23 (+11)... A livello di codice sorgente so che i + y < 5, i y < 10 per valutare a true la condizione Tale informazione può essere usato da un dominio relazionale (ottagoni, polyhedra) A livello bytecode... Un disastro!

42 Semplificando 0 iload 1 1 iload 2 2 iadd 3 iconst 5 4 if icmpge 23 (+19) 7 iload 1 8 iload 2 9 isub 10 bipush if icmpge 23 (+11)... t = i + y; if(!(t >= 5) {) t1 = i y; if(!(t1 >= 10)){...

43 Analizzando t = i + y; if(!(t >= 5) {) t1 = i y; if(!(t1 >= 10)){... Analizzando le condizioni con i polyhedra!(t >= 5) t < 5!(t1 >= 10) t1 < 10 Non sappiamo che t = i + y e t1 = i y! Non ce ne facciamo niente!

44 Un altro esempio boolean c = i + y < 5 && i y < if(c)... Quando assegnamo c Non sappiamo se la condizione è true o false c [0..1], ma nessuna informazione relazionale! Quando valutiamo la condizione c [0..1], può essere true o false Non riusciamo a valutare la condizione Ma non abbiamo nemmeno informazione relazionale!

45 Discussione Il nostro dominio sembrava perfetto! Astrazione lineare del dominio concreto Fa acqua da tutte le parti! Non è proprio così... Si può senza dubbio raffinare Anche raffinare ha un costo computazionale... e di implementazione Ribadisco: non esiste la soluzione perfetta Dipende dalle esigenze Tema di ricerca scientifica quantomai aperto Come l astrazione degli indirizzi, i domini numerici,...

JAIL: Javacard Abstract Interpretation-based Lifeguard

JAIL: Javacard Abstract Interpretation-based Lifeguard JAIL: Javacard Abstract Interpretation-based Lifeguard Pietro Ferrara Università Ca Foscari di Venezia Dipartimento di Informatica Ecole Polytechnique, Paris Pisa, 16 febbraio 2006 Obiettivi Abbiamo implementato

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

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

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

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

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo 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

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

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

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

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

Interpretazione astratta

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

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Elementi di semantica operazionale

Elementi di semantica operazionale Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p. 3/43 M. Annunziato, DIPMAT Università di Salerno - Queste note non sono esaustive ai fini del corso p.

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array 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

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

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

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra 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

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

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

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

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

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

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

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana Schemi delle Lezioni di Matematica Generale Pierpaolo Montana Al-giabr wa al-mukabalah di Al Khuwarizmi scritto approssimativamente nel 820 D.C. Manuale arabo da cui deriviamo due nomi: Algebra Algoritmo

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

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

Introduzione all Information Retrieval

Introduzione 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

Dettagli

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

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

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Ricapitoliamo. Ricapitoliamo

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

Dettagli

Analisi e Verifica di Programmi Laboratorio di AVP

Analisi e Verifica di Programmi Laboratorio di AVP Analisi e Verifica di Programmi Laboratorio di AVP Corso di Laurea in Informatica AA 2004-05 Tino Cortesi Analisi e Verifica Cosa Individuare proprietà interessanti dei nostri programmi: Valori prodotti,

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

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

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

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 E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

INFORMATICA 1 L. Mezzalira

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

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

COSTER. Import/Export su SWC701. SwcImportExport

COSTER. Import/Export su SWC701. SwcImportExport SwcImportExport 1 Con SWC701 è possibile esportare ed importare degli impianti dal vostro database in modo da tenere aggiornati più Pc non in rete o non facente capo allo stesso DataBase. Il caso più comune

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 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

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

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

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Misure finanziarie del rendimento: il Van

Misure finanziarie del rendimento: il Van Misure finanziarie del rendimento: il Van 6.XI.2013 Il valore attuale netto Il valore attuale netto di un progetto si calcola per mezzo di un modello finanziario basato su stime circa i ricavi i costi

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Misure finanziarie del rendimento: il Van

Misure finanziarie del rendimento: il Van Misure finanziarie del rendimento: il Van 12.XI.2014 Il valore attuale netto Il valore attuale netto di un progetto si calcola l per mezzo di un modello finanziario basato su stime circa i ricavi i costi

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

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

Dettagli

Algoritmi e diagrammi di flusso

Algoritmi e diagrammi di flusso Algoritmi e diagrammi di flusso Un algoritmo può essere descritto come una sequenza finita ed ordinata di operazioni che descrivono la soluzione di un problema. Per sequenza finita si intende che un algoritmo

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Ricerca binaria. Operazione dominante: confronto

Ricerca binaria. Operazione dominante: confronto procedure ordinaperfusioni(var a: nelements; n: integer); var b: nelements; procedure mergesort(var a,b: nelements; primo,ultimo:integer); var q: integer; procedure merge(var a,b: nelements; primo, ultimo,

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Matematica 1 - Corso di Laurea in Ingegneria Meccanica Matematica 1 - Corso di Laurea in Ingegneria Meccanica Esercitazione su massimi e minimi vincolati 9 dicembre 005 Esercizio 1. Considerare l insieme C = {(x,y) R : (x + y ) = x } e dire se è una curva

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

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

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Introduzione. Rappresentazione di numeri in macchina, condizion

Introduzione. Rappresentazione di numeri in macchina, condizion Introduzione. Rappresentazione di numeri in macchina, condizionamento e stabilità Dipartimento di Matematica tel. 011 0907503 stefano.berrone@polito.it http://calvino.polito.it/~sberrone Laboratorio di

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

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1. Floating Point Notazione in virgola mobile N = M BE mantissa base esponente esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.6273 102 forma normalizzata: la mantissa ha una sola cifra

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi 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

Dettagli

Documentazione esterna al software matematico sviluppato con MatLab

Documentazione 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

Dettagli

Carichiamo il segnale contenuto nel file ecg_es_20121128.mat

Carichiamo il segnale contenuto nel file ecg_es_20121128.mat Esercitazione su analisi segnale ECG Carichiamo il segnale contenuto nel file ecg_es_20121128.mat Il file contiene due variabili - dt, che vale 0.004 - ecg, che è vettore lungo 6500 campioni La frequenza

Dettagli