+ All Categories
Home > Documents > Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’...

Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’...

Date post: 30-Jul-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
57
Laboratorio di Programmazione Corso di Laurea in Ingegneria Civile e Ambientale Anno accademico 2018/2019 Stefano Cagnoni Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma
Transcript
Page 1: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Laboratorio di Programmazione Corso di Laurea in Ingegneria Civile e Ambientale

Anno accademico 2018/2019

Stefano Cagnoni

Dipartimento di Ingegneria dell’Informazione

Università degli Studi di Parma

Page 2: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Riferimenti del corso Docenti del corso:

Stefano Cagnoni

Tel.: 0521/905731

Palazzina 1 – Sede Scientifica Ingegneria

Parco Area delle Scienze 181/A

E-mail: [email protected]

Laura Sani

Palazzina 1 – Sede Scientifica Ingegneria

Parco Area delle Scienze 181/A

Email: [email protected]

Page 3: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Riferimenti del corso

Sito del corso: http://www.ce.unipr.it/people/cagnoni/didattica/liciv

Anche su Elly https://elly.dia.unipr.it/2018/course/view.php?id=344

Ricevimento: - in aula/laboratorio dopo la lezione - su appuntamento - occasionalmente in laboratorio fuori orario di lezione

Page 4: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Obiettivi

Introdurre gli elaboratori elettronici come strumenti per

risolvere problemi e gestire informazioni

Introdurre i concetti di dato e di elaborazione dati

Fornire le metodologie per esprimere la soluzione ad un

problema (definizione di un algoritmo) e codificarla in un

linguaggio di programmazione (MATLAB)

Page 5: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Contenuti

Cenni su:

Rappresentazione dell’informazione

Hardware: architettura di un calcolatore

Software: sistemi operativi e applicazioni

Algoritmi e linguaggi di programmazione

Il linguaggio/ambiente di programmazione

MATLAB

Page 6: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Testi di riferimento/consultazione

L. Snyder, A. Amoroso “Fluency: Conoscere e

usare l'informatica”, IV ed., Pearson Education

D. Sciuto, G. Buonanno, L. Mari “Introduzione ai sistemi informatici», IV ed, McGraw-Hill

Qualsiasi manuale (recente) di MATLAB In biblioteca:

W.J. Palm “MATLAB 7 per l’ingegneria e le scienze”, McGraw-Hill

Più recente H. Moore “MATLAB per l’Ingegneria”, Pearson/Prentice-Hall

Page 7: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Esame: modalità Durante il corso: in ogni lezione, preceduto da una

introduzione teorica, verrà assegnato un set di

esercizi (tempo previsto circa 1.5 ore):

la programmazione si impara programmando!!!!

Esame:

Breve prova scritta (circa 30 minuti) di ammissione

alla prova pratica

Prova pratica in laboratorio: realizzazione ed

esecuzione su calcolatore (e salvataggio su disco)

di un esercizio analogo a quelli realizzati durante

l’anno

Page 8: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Esame: modalità L’iscrizione ad ogni appello chiude 3 giorni prima

dello svolgimento della prova scritta.

Se possibile, prova scritta la mattina, prova pratica

il pomeriggio.

Intorno al 15/12 si svolgerà una prova scritta

preliminare sul programma svolto fino a quel punto

(quasi tutto). Chi ottiene un voto sufficiente sarà

direttamente ammesso alla prova pratica.

Se possibile (disponibilità laboratori), prova pratica

preliminare a fine dicembre o inizio gennaio.

Appelli I sessione: fine gennaio e metà febbraio.

Page 9: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Lezioni

Le lezioni e le esercitazioni si svolgono nell’aula informatica E del nuovo plesso didattico (Aule delle Scienze) dalle 8.45 alle 11 circa. L’aula è disponibile fino alle 12.30: la presenza dei docenti è garantita fino alle 11.30.

La frequenza non è obbligatoria anche se vivamente consigliata (se si sono fatti gli esercizi, il superamento dell’esame è … inevitabile!)

Page 10: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Prepararsi a seguire il corso Per partecipare alle esercitazioni è necessario ottenere un

account nei laboratori didattici se non lo avete già dallo scorso anno

E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica di Ingegneria), accedendo ad un qualunque computer con Login: laboratori

Password: laboratori

E’ anche possibile farlo da casa collegandosi al sito

http://www.cedi.unipr.it/gestioneaccounts (ignorare l’eventuale messaggio di errore per certificato non valido)

In lab. E, accedere a ‘Registrazione Intranet’ inserendo ‘cancella’ al login e passando alla schermata successiva.

Installare MATLAB sul proprio computer per svolgere gli esercizi settimanali. Le istruzioni per ottenere la licenza didattica sono sul sito del corso.

Page 11: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentazione digitale

delle informazioni

Page 12: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Informazione

Informazione: elemento che consente di

acquisire conoscenza, più o meno esatta, di fatti,

situazioni, modi di essere.

Perché sia utile deve essere:

Mirata ad uno scopo

Non sovrabbondante

Rispettosa dei principi di etica e riservatezza

Page 13: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Informatica = Informazione + Automatica (gestione automatica dell’informazione)

I sistemi informatici gestiscono l’informazione

elaborando entità elementari di cui è costituita (dati)

Dato: ciò che è immediatamente presente alla

conoscenza, prima di ogni elaborazione;

(in informatica) elemento di informazione costituito

da simboli che devono essere elaborati.

(dal Vocabolario della Lingua Italiana, Istituto dell’Enciclopedia Italiana)

Informatica e dati

Page 14: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Elaboratore elettronico

(computer o calcolatore) Dispositivo in grado di

rappresentare

memorizzare

elaborare

i dati eseguendo sequenze di operazioni

elementari (istruzioni)

le azioni eseguite sui dati generano altri dati (i

risultati, cioè i dati elaborati)

Page 15: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Programmazione

La risoluzione di un problema è quel processo

che

dato un problema e un insieme di dati che lo

descrivono

individuato un opportuno metodo risolutivo, detto

algoritmo

trasforma i dati iniziali nei corrispondenti

risultati finali che descrivono la soluzione.

Page 16: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Programmazione

L’attività con cui si predispone l’elaboratore a

eseguire un particolare insieme di azioni su un

particolare insieme di dati allo scopo di risolvere

un problema

Le azioni da compiere sui dati sono “richieste” al

computer attraverso “frasi” di un linguaggio di

programmazione (istruzioni)

Vediamo perché si parla di linguaggio…

Page 17: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Gli esseri viventi ricevono informazione direttamente

dal mondo circostante e dai propri simili attraverso i

sensi (percezione).

L’informazione percepita deve poter anche essere

memorizzata e trasmessa agli altri.

La memorizzazione e la trasmissione dell’informazione

richiedono che questa sia codificata.

Per descrivere un fenomeno che non è direttamente

percepibile o un oggetto che non è a portata di mano o

un concetto astratto ho bisogno di simboli (es. parole,

testi) che mi aiutino a rappresentarlo.

Codifica dell’informazione

Page 18: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Problema (non risolubile)

Un uomo atterra su un pianeta sconosciuto e

incontra una diversa forma di vita.

Come può far capire che non ha cattive intenzioni se

non esiste alcun codice riconosciuto da entrambi ?

Per comunicare è necessario condividere gli stessi

codici!

Due persone di provenienza diversa hanno lingue e

gestualità diverse. Però trasmettono le proprie

emozioni attraverso espressioni spontanee simili.

I codici possono collocarsi a livelli diversi.

Comunicazione

Page 19: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Un insieme di simboli e di regole che

determinano come interpretarli costituiscono un

codice.

Es. la scrittura

SIMBOLI = a b c d e f g h … x y z , . +’ ( ) …

ARCO

(potremmo anche leggerlo ocra, cane ecc.)

Esistono regole che creano una corrispondenza

fra ogni simbolo e un suono, che determinano

come interpretare gruppi di più simboli ecc.

Codifica dell’informazione

Page 20: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Alcuni codici usati quotidianamente:

gesti

parole e, quindi, lingue

scrittura

rappresentazione dei numeri

Utilizzare gli stessi codici permette la

COMUNICAZIONE (dell’informazione)

COMUNICARE permette di:

descrivere/condividere oggetti, idee, percezioni, emozioni

trasmettere conoscenza, esperienza, comandi

Codifica dell’informazione

Page 21: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentazione dell’informazione

L’informazione può essere rappresentata in due

forme:

Analogica

Digitale (o Numerica; in inglese digit = cifra/numero )

In forma analogica una grandezza è rappresentata

mediante un’altra grandezza in modo continuo (ad

esempio mediante un livello variabile di tensione).

In forma digitale una grandezza è rappresentata in

modo discreto, mediante sequenze finite di simboli

tratti da un insieme finito associabile con i numeri

naturali.

Page 22: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentazione analogica dell’informazione

Esempio

suono -> microfono -> tensione codifica

tensione -> registratore -> polarizzazione magnetica

memorizzazione

p.magn. -> altoparlante -> suono decodifica

Rappresentazione analogica qui significa che:

La tensione prodotta dal microfono è tanto più alta

quanto più elevato è il livello del suono.

La vibrazione dell’altoparlante è tanto più ampia

quanto più elevata è la tensione

Rappresentazione dell’informazione

Page 23: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

La rappresentazione digitale (numerica) usata

all’interno di un calcolatore:

è una approssimazione discreta della realtà

(che è continua): ogni fenomeno/quantità è

approssimato da una sequenza finita di dati

(numeri), ciascuno dei quali può assumere solo

un numero finito di valori.

l’errore che si commette in questa

approssimazione dipende dalla quantità di dati

utilizzati e dalla precisione (numero di

cifre/simboli a disposizione) della

rappresentazione digitale.

Rappresentazione dell’informazione

Page 24: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

La rappresentazione digitale della realtà è una

rappresentazione basata su numeri (digit = cifra,

quindi digitale = numerico) che necessita di un

CODICE per rappresentarli.

I circuiti di un calcolatore lavorano a due diversi

livelli di tensione (di solito 0 e 5 Volt, ma anche 0 e

3.3 Volt)

Rappresentazione dell’informazione

Page 25: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

I 2 livelli rappresentano, in generale, due SIMBOLI

diversi, a cui associare due diversi significati

Es. Vero/Falso Positivo/Negativo

Presenza/Assenza

…ma anche le quantità (cifre) 0/1

Codifica binaria

Page 26: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Codifica binaria

Rappresentazione di numeri

Notazione di tipo posizionale (esattamente come la notazione decimale, di cui segue le stesse regole).

Ogni numero è rappresentato da una sequenza (stringa) di simboli

Il valore del numero dipende non solo dalla quantità rappresentata da ciascun simbolo, ma anche dalla posizione in cui si trovano i simboli.

3456 è diverso da 6543

1001 è diverso da 1100

Utilizza solo 2 simboli (0 e 1)

Page 27: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Notazione posizionale Scelta una base di rappresentazione B

ogni numero è rappresentato da una sequenza di simboli (cifre) appartenente a un alfabeto di B simboli distinti

ogni cifra rappresenta un valore compreso fra 0 e B-1

a ogni posizione corrisponde un peso, uguale ad una potenza della base crescente da destra verso sinistra.

Valore del numero = somma dei prodotti di ciascuna cifra per il peso associato alla sua posizione

Esempio di rappresentazione su N cifre:

dN-1 dN-2 …d1 d0 = dN-1* BN-1 + dN-2 * BN-2 +…+ d1* B1 + d0 * B0

Cifra più significativa Cifra meno significativa

Page 28: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Esempi

(109)10 = 1*102 + 0*101 + 9*100 = 100 + 0 + 9

(1101101)2 = 1* 26+1* 25+0* 24+1* 23+1* 22+0* 21+ 1* 20

= 64 + 32 + 0 + 8 + 4 + 0 + 1 = (109)10

(155)8 = 1*82 + 5*81 + 5*80 = 64 + 40 + 5 = (109)10

(6D)16 = 6*161 + 13 *160 = 96 + 13 = (109)10

Page 29: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Decimale (B=10) (usa le cifre da 0 a 9)

Binaria (B=2) (usa le cifre 0 e 1)

Un calcolatore rappresenta l’informazione

attraverso la codifica binaria.

Ogni elemento di una sequenza binaria viene

detto bit (Binary digIT).

Una sequenza di 8 bit si dice byte.

Ottale (B=8) (usa le cifre da 0 a 7)

Esadecimale (B=16) (cifre da 0-9 + lettere A-F)

Rappresentazioni medianti basi diverse

Page 30: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Multipli del byte

1 Byte = 8 bit

1 KiloByte (kB) = 1024 byte (210 = 1024)

1 MegaByte (MB) = 1024 KB = 220 Byte

1 GigaByte (GB) = 1024 MB = 230 Byte

1 TeraByte (TB) = 1024 GB = 240 Byte

Page 31: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Con sequenze di N simboli in base B posso

rappresentare BN numeri diversi

3 cifre decimali (B=10) 1000 (103) valori diversi

3 cifre binarie (B=2) 8 (23) valori diversi

Quanto più piccola è la base tanto più lunga sarà la

rappresentazione di una stessa quantità.

Es. (109)10 = (1101101)2 = (6D)16

Rappresentazioni mediante basi diverse

Page 32: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Per rappresentare un dato si ha a disposizione un

numero finito N di bit.

Con N bit si possono formare 2N combinazioni

diverse (con N cifre in base 10 se ne formano 10N )

Se voglio rappresentare valori in un certo intervallo

[min,max] posso rappresentare in modo esatto 2N

valori compresi fra min e max (inclusi) ed

equispaziati e approssimare tutti gli altri possibili

valori nell’intervallo con il valore rappresentabile più

vicino

Rappresentazione digitale binaria

Page 33: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentare i numeri nell’intervallo [min,max]=[0,7] con

N=3 bit

Con 3 bit posso ottenere 23=8 combinazioni diverse

000 001 010 011 100 101 110 111

Le faccio convenzionalmente corrispondere a 8 valori

equispaziati nell’intervallo [0,7] 23 -1 intervalli

000=0 001=1 010=2 011=3

100=4 101=5 110=6 111=7 000 001 010 011 100 101 110 111

0 1 2 3 4 5 6 7

23 valori

Tutti i valori intermedi sono approssimati con il valore

rappresentabile più vicino

Es. 3.456 viene approssimato come 011=3

Rappresentazione digitale binaria

Page 34: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Non necessariamente i valori rappresentati saranno interi

Es. [min,max] = [0, 4.2] con N=3 bit

Con 3 bit posso ottenere 23=8 combinazioni diverse

000 001 010 011 100 101 110 111

Le faccio convenzionalmente corrispondere a 8 valori

equispaziati nell’intervallo [0,4.2] 23 -1 intervalli

000=0 001=0.6 010=1.2 011=1.8

100=2.4 101=3.0 110=3.6 111=4.2 000 001 010 011 100 101 110 111

0 0.6 1.2 1.8 2.4 3.0 3.6 4.2

23 valori

In questo caso 3.456 viene approssimato come 110=3.6

Rappresentazione digitale binaria

Page 35: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Osservazioni

L’insieme di sequenze di bit utilizzato per la rappresentazione

corrisponde alla codifica binaria della sequenza dei primi 2N

(0..2N-1) numeri interi positivi (naturali).

Fissato il range di valori da rappresentare e il numero di bit

con cui rappresentarli, il massimo errore di approssimazione

che si può commettere è pari alla metà dell’ampiezza di un

intervallo (a=(Nmax-Nmin)/(2N-1)), cioè la differenza fra due

numeri consecutivi rappresentabili in modo esatto.

Più grande è N, minore è l’ampiezza degli intervalli.

Più grande è N, minore è l’errore (errore di quantizzazione)

che si commette approssimando un numero qualunque

all’interno dell’intervallo con uno dei valori rappresentabili

Rappresentazione digitale binaria

Page 36: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentazione

digitale dei dati

Page 37: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Cosa possiamo rappresentare ?

Numeri (interi e reali)

Simboli (codifica di concetti o simboli: es. vero e falso,

caratteri alfanumerici, ecc.)

Dati multimediali

- testi sequenze di simboli (lettere dell’alfabeto)

- suoni sequenze di campioni (misure nel tempo)

- immagini sequenze di campioni (misure nello spazio)

Page 38: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Tipi di dati

Tutti questi tipi di dati possono essere

rappresentati in forma binaria all’interno di un

calcolatore

La potenza e la versatilità del calcolatore

derivano dalla possibilità di utilizzare una

codifica comune per diversi tipi di dati.

Eseguendo operazioni dello stesso tipo a livello

fisico si possono ottenere risultati interpretabili in

modo molto diverso a livello logico

Page 39: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

E’ una rappresentazione di tipo DISCRETO (il numero di

elementi con cui si descrive un fenomeno anche continuo

è finito; inoltre ogni elemento può assumere un numero

finito di valori)

Per rappresentare in modo digitale grandezze continue

variabili nel tempo (es. intensità sonora, temperatura,

velocità, posizione, ecc.) o nello spazio (es.

luminosità/colore delle immagini, altitudine in una carta

geografica, ecc.) devo CAMPIONARLE (rappresentarle

come sequenze discrete di valori, equidistanti nel tempo o

nello spazio) e QUANTIZZARLE (approssimare ogni

valore col valore più simile che il computer può

rappresentare in modo esatto)

Rappresentazione digitale

Page 40: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Campionare una grandezza significa

approssimarla attraverso una sequenza ordinata

nel tempo (o nello spazio) di dati, detti campioni,

che descrivono i valori di tale grandezza in un

numero limitato di istanti di tempo (punti nello

spazio) sufficientemente vicini.

La distanza fra due campioni consecutivi è detta

tempo (intervallo, se nello spazio) di

campionamento; il suo inverso frequenza di

campionamento (risoluzione spaziale, se nello

spazio): indica quanti campioni ho a disposizione

per la descrizione nell’unità di tempo (spazio)

Rappresentazione digitale

Page 41: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

La frequenza di campionamento si misura in

campioni/secondo

La risoluzione spaziale in campioni (pixel)/millimetro

(pixel = PICTure ELement)

Quanto più sono elevate, tanto più precisa è

l’approssimazione (discreta) della realtà (che è

continua) che si può ottenere.

Rappresentazione digitale

Page 42: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Sin(x): rappresentazione continua

fc = 2

fc = 10

fc = 1

Page 43: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

1

1/5

1/10

1/100

Page 44: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

In conclusione La rappresentazione digitale, essendo discreta, introduce

due tipi di approssimazioni:

1. Errore di campionamento: dovuto all’approssimazione

del valore effettivo della grandezza che sto

rappresentando con il valore dell’ultimo campione

acquisito, fino all’acquisizione di un nuovo campione

(cioè alla rappresentazione discreta delle ascisse).

Page 45: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

In conclusione 2. Errore di quantizzazione: dovuto all’approssimazione

del valore effettivo della grandezza che sto

rappresentando con il valore rappresentabile più vicino

(rappresentazione discreta delle ordinate)

Dipende dal numero di bit disponibili per la

rappresentazione e quindi dalla precisione con cui

posso rappresentare l’effettivo valore di un campione.

Page 46: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Rappresentazione di simboli

Con N bit posso rappresentare qualunque insieme

numerabile (cioè che può essere messo in corrispondenza

con gli interi) di simboli.

Con due bit è possibile generare 4 configurazioni distinte

(00, 01, 10, 11) che possono essere associate a 4

informazioni distinte

Esempi di insiemi diversi di informazioni rappresentabili:

00 -> a 1 verde

01 -> b 2 rosso

10 -> c 3 giallo

11 -> d 4 blu

Page 47: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Codifica dei caratteri alfanumerici

26 lettere minuscole e 26 lettere maiuscole, 10 cifre, 10

segni aritmetici, 20 segni di interpunzione (spazi inclusi)

e 3 caratteri non stampabili (a capo, tabulazione,

backspace) = 95 caratteri, che rappresentano la lingua

Inglese

Per 95 simboli sono necessari 7 bit: log2M =7

Una consolidata rappresentazione a 7-bit è il codice

ASCII (American Standard Code for Information

Interchange)

Page 48: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Codifica dei caratteri alfanumerici

A metà degli anni ‘60 divenne chiaro che il codice a 7 bit

non bastava per rappresentare anche i caratteri dei

linguaggi diversi dall’inglese

IBM estese il codice ASCII a 8 bit e 256 simboli

Chiamato "Extended ASCII", la prima metà (codici da 0

a 127) è costituita dall’originale codice ASCII (con uno 0

aggiunto all’inizio di ogni gruppo di bit)

Permette di esprimere la maggior parte dei caratteri

degli alfabeti occidentali e include molti altri simboli utili

Page 49: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Codifica dei caratteri alfanumerici

Page 50: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Colori nelle immagini digitali

Codifica RGB per le immagini a colori

Ogni colore è diviso in 3 componenti fondamentali:

Rosso (R), Verde (G), Blu (B).

L’intensità di ogni componente è di solito rappresentata

su 8 bit => ogni colore è rappresentato su 24 bit.

Posso quindi rappresentare (quantizzazione) 224 colori

diversi (circa 16 milioni).

Se almeno una delle componenti è diversa dalle altre

ho percezione del colore, altrimenti vedo una tonalità

grigia più o meno intensa (0,0,0 è il nero; 255,255,255 il

bianco)

Page 51: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memoria

Page 52: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memoria Centrale Spazio di lavoro del calcolatore: contiene i dati da

elaborare, le istruzioni da eseguire e i risultati delle

elaborazioni durante il funzionamento del calcolatore.

Insieme di celle di dimensione pari a 1 byte, ciascuna delle

quali è individuata da un indirizzo, che indica la posizione

della cella all’interno della memoria

Se ogni indirizzo è lungo 32 bit posso distinguere e

accedere singolarmente a 232 celle diverse.

232 celle = 4 Gcelle -> 4 Gbyte (circa 4 x 109 celle)

Si usano normalmente indirizzi a 32 o 64 bit (16x1018 celle)

Poiché è possibile accedere direttamente a ogni cella, una

memoria di questo tipo si chiama Random Access Memory

(RAM), cioè, alla lettera, memoria ad accesso casuale.

Page 53: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memoria Centrale

La memoria centrale contiene codici binari

interpretabili come dati o istruzioni (che costituiscono

i programmi) durante il funzionamento del calcolatore.

I dati possono essere modificati durante l’esecuzione

dei programmi (elaborazione dati) come risultato delle

istruzioni eseguite.

Sulla memoria centrale deve quindi essere possibile

fare operazioni di lettura (ad es. delle istruzioni da

eseguire o dei dati da elaborare) e scrittura (ad es.

dei dati elaborati).

E’ tipicamente volatile (utilizzabile solo se alimentata).

Page 54: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memoria Centrale

Caratteristiche fondamentali:

Dimensione o capacità (n. di celle, quindi di byte)

Tempo di accesso (il ritardo dopo l’invio del

comando di lettura con cui il dato diviene

effettivamente disponibile per l’elaborazione)

Tipicamente la dimensione della memoria centrale è

dell’ordine del GByte.

Il tempo di accesso è dell’ordine delle decine di

nanosecondi.

(1 ns = 10-9 s = un miliardesimo di secondo)

Page 55: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memorie di massa

Memorie permanenti: mantengono il loro contenuto

anche dopo lo spegnimento del calcolatore.

Diverse rispetto alla memoria centrale: il loro

funzionamento è basato perlopiù su fenomeni di

tipo ottico o magnetico, non su fenomeni elettrici.

Tipicamente organizzate in dischi, fissi o asportabili.

Più economiche rispetto alle memorie RAM.

Il loro tempo di accesso è tuttavia molto maggiore,

cioè, a parità di dati da leggere, il processo di lettura

avviene in modo più lento.

Page 56: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Memorie di massa

Le memorie di massa allo stato solido (es.

“chiavette” USB) non sono basate su supporti

magnetici o ottici.

Sono basate su circuiti (flash memory) strutturati in

modo simile alle RAM. Tuttavia, nel loro uso come

memorie di massa, vengono utilizzati (e gestiti dal

computer) come le altre memorie di massa (hard

disk).

Page 57: Laboratorio di Programmazione - unipr.it · Qualsiasi manuale (recente) di MATLAB ... E’ possibile farlo direttamente in uno dei laboratorio didattici di Informatica (sede didattica

Si vogliono rappresentare i numeri nell’intervallo [0,150]

con 4 bit • In quanti intervalli viene suddiviso l’insieme ?

• Quanto è ampio ciascun intervallo ?

• Quali sono i valori che risultano rappresentabili (gli estremi

degli intervalli) ?

• A quanto ammonta l’errore che si commette approssimando

127.8 con il numero rappresentabile più vicino ?

In generale, dato un intervallo [min,max] e N bit, quanto

è ampio ciascun sottointervallo? Quale è il massimo

errore che posso commettere?

Giustificare le risposte

Esercizi


Recommended