Sistemi di Elaborazione
Introduzione all’informatica
• Obiettivi del corso
• Definizioni generali
• Il calcolatore
• Codifica binaria dell’informazione
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
1
Premessa
Il corso non presuppone conoscenze
informatiche precedenti
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
2
Obiettivi del corso
Conoscere gli aspetti fondamentali
dell’Informatica e della struttura dei
calcolatori
Conoscere la struttura di alcuni
dei più utilizzati pacchetti
applicativi
Conoscere alcune delle possibilità di
informazione offerte da internet
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
3
Cos’è l’informatica ?
L’informatica è la scienza dei calcolatori
L’informatica è la scienza della programmazione
L’informatica è la scienza di Internet
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
4
Cos’è l’informatica ?
L’informatica è la scienza della
rappresentazione e dell’elaborazione
automatica dell’informazione
L’informatica è lo studio degli algoritmi:
• delle loro proprietà formali e matematiche
• delle loro realizzazioni hardware
• delle loro realizzazioni linguistiche
• delle loro applicazioni
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
5
Che cos’è un algoritmo ?
Un insieme ben ordinato e finito di operazioni
non ambigue ed effettivamente calcolabili
che, applicate ad un insieme di condizioni
iniziali, produce un risultato e termina in una
quantità di tempo finita.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
6
Esempi di algoritmi
Ricetta di cucina
Sequenza di operazioni per registrare un programma
con un video registratore
Sequenza di operazioni per montare una tenda
Sequenza di operazioni per moltiplicare due numeri
…
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
7
Un algoritmo ben scritto
La ricetta per cuocere 100 g di pasta:
1. Metti 1 l di acqua in una pentola
2. Poni la pentola sul fornello
3. Accendi la fiamma del fornello
4. Finchè l’acqua non bolle ripeti il passo 5.
5. Aspetta 1 minuto.
6. Aggiungi 10 g di sale grosso
7. Leggi sulla confezione della pasta la cottura prevista
8. Versa la pasta nell’acqua bollente
9. Aspetta il tempo di cui al punto 7.
10. Scola la pasta
11. Fine
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
8
Un algoritmo per guadagnare in borsa
1. Se le azioni sono scese al punto che non
possono far altro che salire, compra
2. Se le azioni sono salite al punto che non
possono far altro che scendere, vendi
Un insieme ben ordinato e finito di operazioni non ambigue ed effettivamente calcolabili
che, applicate ad un insieme di condizioni iniziali, produce un risultato e termina in una
quantità di tempo finita.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
9
I due ubriachi
1. Siccome Peppe è ubriaco, Ciro lo accompagna a casa
2. Siccome Ciro è ubriaco, Peppe lo accompagna a casa
3. Siccome Peppe è ubriaco, Ciro lo accompagna a casa
…
Un insieme ben ordinato e finito di operazioni non ambigue ed effettivamente calcolabili
che, applicate ad un insieme di condizioni iniziali, produce un risultato e termina in una
quantità di tempo finita.
F. Ambrosino & F. Perfetto
Laboratorio di Informatica
A.A. 2008-2009
10
Riassumendo….
L’ “algoritmo” per vincere in borsa
• non è ben ordinato
• è ambiguo
L’ “algoritmo” dei due ubriachi
• non impiega un tempo finito
• non produce un risultato
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
11
Formalizzazione del concetto di
algoritmo: perché ?
L’obiettivo è la costruzione di uno o più mezzi di calcolo in
grado di eseguire “operazioni primitive” (ovvero
effettivamente calcolabili) .
Un mezzo di calcolo che esegue operazioni primitive
permette di automatizzare una soluzione di un problema
espressa da un algoritmo.
La soluzione di un problema espressa da un
algoritmo costituito da sequenze di
operazioni primitive può essere
automatizzata
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
12
Cos’ è un programma ?
Un Programma è l’espressione di un algoritmo
in un linguaggio comprensibile all’esecutore
L’algoritmo è una rappresentazione
astratta della soluzione di un problema, il
programma è l’espressione concreta dell’
algoritmo
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
13
Linguaggi di Programmazione I
Uno stesso algoritmo può essere espresso
(codificato) attraverso diversi linguaggi di
programmazione
I linguaggi di programmazione
consentono al programmatore di
astrarre dalle caratteristiche
fisiche dell’esecutore
Esistono alcune centinaia di linguaggi di
programmazione: sono tutti basati su pochi
concetti fondamentali
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
14
Linguaggi di Programmazione II
Programmazione: una qualsiasi notazione per la
descrizione di algoritmi e strutture dati (general purpose
languages) Es. Fortran, C, C++, Basic, Java
Domain-specific: qualsiasi notazione per la
descrizione di un problema in un dominio di applicazione
determinato e circoscritto. Es HTML, LaTeX, SQL…
Scripting: linguaggi interpretati che consentono
anche di collegare tra loro delle applicazioni. Es,
Perl, TCL/TK, php, JavaScript…
Principio:
Scegliere il linguaggio più appropriato per
la risoluzione di un dato problema
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
15
Correttezza di un algoritmo
Determinare la correttezza dell’algoritmo
elaborato per un dato problema può essere
arduo…le condizioni per essere
ragionevolmente sicuri di averlo trovato sono:
• Comprensione effettiva del problema
• Validità della soluzione indipendentemente
da condizioni particolari o dal valore dei dati
in ingresso
• Livello di approssimazione del risultato
sufficiente agli scopi di progetto
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
16
Efficienza degli algoritmi
Una volta determinato un algoritmo
corretto per la soluzione di un problema,
occorre preoccuparsi della sua efficienza,
ovvero di come esso gestisca le risorse
tempo (numero di operazioni necessarie alla
soluzione) e spazio (memoria occorrente per
trovare la soluzione) che saranno
in
quantità finita per qualunque elaboratore
reale.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
17
. . . . proseguendo
Un criterio per la valutazione dell’efficienza di
un algoritmo è di grande utilità in quanto
dobbiamo assicurarci la possibilità di operare
confronti
tra
diversi
algoritmi,
indipendentemente dal linguaggio con cui
saranno implementati e dalla “potenza” della
macchina su cui saranno eseguiti.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
18
Valutare l’efficienza rispetto al
tempo
L’efficienza rispetto alla risorsa tempo può
essere valutata in generale contando il numero
di operazioni richieste dall’algoritmo per
arrivare alla soluzione del problema in funzione
del numero n dei dati in ingresso.
In questa valutazione non è importante il valore
esatto quanto la dipendenza funzionale e l’ordine
di grandezza. Si parlerà allora di algoritmi o
complessità O(n), O(n2), O(log n) , O(2n) etc. a
seconda degli andamenti.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
19
L’algoritmo di ricerca sequenziale...
Supponiamo di voler cercare un nome
in una rubrica telefonica contenente
100 nomi.
Il primo algoritmo che viene in mente
potrebbe essere:
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
20
1. Acquisisci nome1…..nome100
2. Acquisisci tel1……tel100
3. Acquisisci nome cercato
4. Poni trovato = falso
5. Poni i = 1
6. Ripeti finché trovato diventa vero o i >100
7. Se nomei = nome cercato allora
8. Stampa teli
9. Poni trovato = vero
Altrimenti
10. Incrementa i di 1
11. Fine del ciclo
12. Se trovato = falso allora
13.Stampa messaggio ‘ Nome non in elenco’
14. Fermati
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
21
…e quello di ricerca binaria
L’algoritmo di ricerca sequenziale è semplice e
corretto... ma non sfrutta il fatto che la
rubrica è ordinata !
“Riesco a trovare i nomi molto più velocemente sul
dizionario, da quando ho scoperto che sono in ordine
alfabetico ” (Groucho Marx)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
22
1. Acquisisci nome1…..nome100
2. Acquisisci tel1……tel100
3. Acquisisci nome cercato
4. Poni trovato = falso
5. Poni inizio = 1 e fine = 100
6. Ripeti finché trovato diventa vero
o fine <inizio
7. Poni i a (inizio+fine)/2
8. Se nomei = nome cercato allora
9. Stampa teli
10. Poni trovato = vero
Altrimenti
Se nome cercato precede alfabeticamente
nomei
11. Poni fine = i -1
altrimenti (nome cercato segue nomei)
12. Poni inizio = i +1
13. Fine del ciclo
14. Se trovato = falso allora
15.Stampa messaggio ‘ Nome non in elenco’
16. Fermati
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
23
Confronto fra ricerca sequenziale e
ricerca binaria
Computer: CRAY T3E-900
1360 processori in parallelo
Costo: 30 M euro
Numero di op. al secondo:
7*1011
Algoritmo ric. sequenziale
Computer: Pentium Pro 200
Costo: fuori produzione,
si può trovare a 200 euro
Numero di op. al secondo:
7*107
Algoritmo ricerca binaria
Elenco di Napoli (106 abitanti):
Elenco di New York (2*107 abitanti):
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
24
Automatizzare i calcoli
I primi mezzi automatici di calcolo compaiono nel XVII secolo
ad opera di Schickard e Pascal. Funzionano sulla base di ruote
dentate.
Macchina calcolatrice
di Schickard
Ambrosino - Noli - Perfetto
LaPascalina
Sistemi di Elaborazione A.A. 20152016
25
Il primo programma
Ma la prima macchina a disporre di un vero programma è
il telaio di Jacquard costruito nel 1804 : il disegno della
trama viene inserito tramite schede perforate e realizzato
automaticamente dalla macchina.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
26
I primi calcolatori elettronici
Motivati principalmente da esigenze belliche i primi grandi
calcolatori elettronici a valvole furono realizzati dalle
maggiori potenze in conflitto nel corso degli anni 40.
ENIAC: 18000 valvole
30 m lunghezza
30 tonnellate
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
28
Il calcolatore moderno
Il principale problema dei calcolatori fino agli anni ’40 era la
fondamentale differenza fra il modo in cui venivano
memorizzati i dati e quello in cui venivano realizzati i
programmi, che non erano memorizzati, ma realizzati
esternamente usando connessioni, fili etc.
Fu il genio di Von Neumann che permise di progettare e
realizzare, nel 1950, l’EDVAC, il primo calcolatore a
programma memorizzato. L’EDVAC pesava 8 ton e aveva
una memoria di 1024 parole… ma non era nella sostanza
diverso dal computer usato per scrivere questa
presentazione…
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
29
La macchina di Von Neumann
Lo schema della macchina di Von Neumann,
modello sul quale si basano praticamente tutti i
moderni computer è basato su quattro elementi
fondamentali:
• La memoria
• L’unità aritmetico logica (ALU)
• L’unità di controllo
Processore
• Le unità di Ingresso/Uscita (I/O)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
30
La macchina di Von Neumann (II)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
31
La memoria RAM
Controllo
ALU
Indirizzo
MAR
Contenuto
0
Dato o istruzione
1
Dato o istruzione
2
Dato o istruzione
Memory
Address
Register
F/S
Dati e istruzioni sono codificati
MDR
Memory
Data
Register
Operazioni possibili:
• Fetch (indirizzo)
• Store (indirizzo, valore)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
32
Le unità di I/O
• Dispositivi di interfaccia utente: tastiera, monitor, mouse…
• Dispositivi di comunicazione: porte e dispositivi ad esse
connessi (stampanti, modem…)
• Dispositivi di memoria di massa: (Hard disk, Floppy disk,
CDROM, DVD)
Tempi caratteristici di accesso: diversi ordini
di grandezza più lenti della memoria RAM
Controllore di I/O
Interrupt
I/O
Buffer
Driver
Dati
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
33
L’unità aritmetico logica: ALU
Il cuore calcolante del computer: effettua un insieme finito e
predeterminato di operazioni matematiche e logiche.
Gli operandi vengono letti da registri in ingresso, e il risultato
dell’operazione è scritto su un registro in uscita.
Il registro di stato (SR) riporta il segno del risultato e la presenza
di riporto o di una condizione di errore( underflow, overflow)
Registro 00
Linee di selezione
Registro 01
ALU
SR
Registro 15
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
34
L’unità di controllo (I)
Struttura di una istruzione in linguaggio macchina:
Codice operativo – Indirizzo 1 – Indirizzo 2
Esempio:
ADD X,Y (Y=X+Y)
Dati e istruzioni sono codificati
Ciclo di esecuzione di un programma:
• Instruction fetch
• Decodifica
• Esegui
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
35
L’unità di controllo (II)
Program
Counter
(++)
Registro istruzioni (IR)
Codice op. – Indirizzo 1-Indirizzo N
Decodificatore di istruzione
Memoria, ALU,controllori I/O…
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
36
Riassumendo
La struttura di Von Neumann permette di calcolare
una sequenza di istruzioni opportunamente
codificate e memorizzate e di controllare il flusso
dell’esecuzione. La gestione dell’I/O è delegata a
opportuni controllori per ottimizzare le prestazioni.
La condizione chiave per la realizzazione del
calcolatore è disporre di un sistema efficiente e
affidabile di codifica dell’informazione, ovvero
dei dati e delle istruzioni che devono essere via
via eseguite.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
37
Codifica binaria
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
38
La codifica binaria
L’alfabeto più semplice è quello costituito da soli due
simboli.
Un sistema automatico basato su un alfabeto binario è:
Facilmente implementabile su un
supporto fisico
 Sostanze magnetiche con due opposte
polarizzazioni
 Passaggio o meno di corrente
 Passaggio o meno di luce
. . . .
Piu’ economico
Piu’ affidabile
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
39
Es. Codice binario di Morse: . A
.-
J
.---
S
...
B
-...
K
-.-
T
-
C
-.-.
L
.-..
U
..-
D
-..
M
--
V
...-
E
.
N
-.
W
.--
F
..-.
O
---
X
-..-
G
--.
P
.--.
Y
-.--
H
....
Q
--.-
Z
--..
I
..
R
.-.
Ambrosino - Noli - Perfetto
• Codifica solo le lettere
maiuscole
• Il numero di simboli in
successione non e’ fisso
per ogni lettera
Sistemi di Elaborazione A.A. 20152016
40
Sistema di numerazione decimale
1. E’ posizionale (unità, decine, centinaia)
2. E’ costituito da 10 cifre (base = 10)
peso
504.31 = 5 • 102 + 0 • 101 + 4 • 100 + 3 • 10-1 + 1 • 10-2
Cifra più
significativa
Ambrosino - Noli - Perfetto
valore
intrinseco
della cifra
Cifra meno
significativa
Sistemi di Elaborazione A.A. 20152016
41
Notazione posizionale
La notazione posizionale consente di scrivere un numero N
di una certa base generica b come una sequenza di cifre.
504.31 = 5 • 102 + 0 • 101 + 4 • 100 + 3 • 10-1 + 1 • 10-2
Generalizzando, data una base b ed un insieme di b cifre:
an-1 a n-2 a n-3 . . .a 2 a 1 a 0 . a -1 a -2 …. . . a-m-2 a m-2 am-1 a-m
Valore decimale del
numero N
Ambrosino - Noli - Perfetto
V(N) =
n -1
åab
i = -m
i
Sistemi di Elaborazione A.A. 20152016
i
0 £ ai £ b - 1
42
Sistemi posizionali
Sistema
Base
Cifre
binario
2
01
ottale
8
01234567
decimale
10
0123456789
esadecimale
16
0123456789
ABCDEF
(208) 10=(11010000)2=(D0)16=(320)8
base
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
43
Sistema non posizionale
Il sistema di numerazione romano non è posizionale: il
valore associato a ciascun simbolo non dipende dalla sua
posizione.
Es: nei due numeri XII e XIX la seconda cifra, pur avendo
la stessa posizione, assume due pesi diversi:
XII = 10 + 1 + 1
XIX = 10 + 10 - 1
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
44
Limiti della rappresentazione posizionale
(I)
Data un sistema di numerazione di base b qual è il
massimo numero intero positivo rappresentabile in una
sequenza di n cifre?
Es. in 4 cifre il sistema decimale può
rappresentare interi positivi da 0 a 9999,
ovvero 104 valori diversi, ovvero b4 valori.
Formalmente, il numero massimo Nmax rappresentabile con
n cifre nella base b è:
Nmax =
Ambrosino - Noli - Perfetto
n -1
å
(b - 1) bi = bn - 1
i= 0
Sistemi di Elaborazione A.A. 20152016
45
Limiti della rappresentazione
posizionale (II)
Quante cifre sono invece necessarie per rappresentare
un dato numero in una base?
Basta invertire la relazione precedente:
Ceiling: minimo intero superiore
nmin = élogb ( N + 1)ù
Es. in una sequenza di 16 cifre il sistema binario può
rappresentare 216 = 65536 interi positivi che vanno
da 0 a 65535; il numero minimo di cifre per
rappresentare il numero 1000 è ceil(log2(1001)) =
10
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
46
Il computer e l’informazione
Il sistema posizionale binario permette la codifica
dell’informazione numerica attraverso l’uso di solo due
cifre. Con opportune convenzioni si possono rappresentare
anche i numeri relativi interi e frazionari, i caratteri, le
immagini ed i suoni.
A causa della maggiore facilità implementativa ed
affidabilità su un supporto fisico, i calcolatori digitali
trattano solo informazione codificata in forma binaria.
L’unità elementare d’informazione manipolata e
memorizzata da un computer è detta bit (binary
digit), e può assumere i valori 1 e 0.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
47
Alcune convenzioni
byte
 sequenza di 8 bit (Es. 01001011)
word
 da 16 a 64 bit a seconda dell’architettura;
convenzionalmente 16bit
longword  convenzionalmente 32 bit
Multiplo
Sigla
Kilo
Mega
Giga
Tera
Peta
Exa
k
M
G
T
P
E
Ambrosino - Noli - Perfetto
Valore
210
220
230
240
250
260
Approssimazione
= 1024
= 10242
= 10243
= 10244
= 10245
= 10246
Sistemi di Elaborazione A.A. 20152016
 103
 106
 109
 1012
 1015
 1018
48
Codifica dei numeri interi
Nell’ aritmetica binaria vi sono 4 tecniche di
organizzazione dei numeri interi con segno.
1. Modulo e segno;
2. Complemento alla base diminuita;
3. Complemento alla base;
4. Eccesso M (o bias);
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
49
Codifica dei numeri interi
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
50
Codifica dei numeri interi
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
51
Codifica dei numeri interi
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
52
Codifica dei numeri interi
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
53
Codifica dei numeri interi
In pratica, il complemento a 2 si ottiene invertendo
tutti i bit e aggiungendo 1.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
54
Codifica dei numeri razionali
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
55
Codifica dei numeri irrazionali
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
56
Codifica dei numeri irrazionali
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
57
Float, double, long double
L’esempio precedente si riferisce a un numero di tipo float o
singola precisione.
Lo standard ANSI/IEEE754 definisce anche il numero di bit per
ciascun campo per rappresentare numeri di tipo double (doppia
precisione) e long double (quadrupla precisione).
S (1 bit) E (8 bit)
S (1 bit) E (11 bit)
F (23 bit)
F (52 bit)
Float
Double
Long double
S (1 bit) E (15 bit)
Ambrosino - Noli - Perfetto
F (112 bit)
Sistemi di Elaborazione A.A. 20152016
58
Overflow e underflow
Nelle operazioni fra floating point, possono verificarsi due
condizioni di errore :
•Overflow: in un qualsiasi passo l’esponente
calcolato è superiore al massimo rappresentabile;
può verificarsi quando si maneggiano numeri dal
valore assoluto molto elevato.
•Underflow: in un qualsiasi passo l’esponente
calcolato è inferiore al minimo rappresentabile; può
verificarsi quando si maneggiano numeri molto
vicini allo “zero” della macchina.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
59
Propagazione degli errori
I calcoli in virgola mobile vengono effettuati riportando i numeri
allo stesso esponente, lavorando poi sulle mantisse e infine
normalizzando il risultato.
Tali procedure introducono un arrotondamento nei calcoli:
la cifra meno significativa della mantissa sarà sempre affetta da un
errore.
Per minimizzare questo errore lo standard IEEE 754 prevede di
memorizzare tutti i risultati intermedi di un’operazione in
virgola mobile con due cifre aggiuntive dette di cifra di guardia
e cifra di arrotondamento.
In questo modo i calcoli in virgola mobile garantiscono una
precisione inferiore a metà dell’unita sulla cifra meno
significativa.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
60
Codifica dei caratteri
Mentre per codificare numeri si usano tecniche basate sul loro valore,
per codificare dei caratteri c’è bisogno di una relazione
convenzionale, ovvero di una tabella che faccia corrispondere a una
data sequenza di bit un dato carattere.
Nel progettare tale tabella bisogna tener conto ovviamente anche di
caratteri non direttamente stampabili, ma che rappresentino la
formattazione del testo, come ad esempio il carriage return CR
(“a capo”).
Le tabelle “standard” oggi più usate sono quella cosiddetta ASCII
e quella UNICODE
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
61
Codifica dei caratteri (II)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
62
Codifica dei caratteri (III)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
63
Il codice ASCII
Lo standard internazionalmente adottato per la codifica dei
caratteri è il codice ASCII, acronimo di American Standard Code
for Information Interchange.
Le caratteristiche del codice ASCII sono:
•7 bit ovvero 128 caratteri da 0 a 127
•32 caratteri speciali non stampabili
•Cifre del sistema decimale, maiuscole, minuscole, !”#$&’()*+,./@:;<=>? Etc.
•Le lettere e le cifre conservano l’ordine alfabetico/numerico
•La distanza fra maiuscole e minuscole è fissata
Il codice viene spesso esteso a 8 bit per comprendere set di
caratteri specifici di una certa area geografica, come è,Ç
I primi 8 bit del codice UNICODE corrispondono a quelli
dell’ASCII esteso.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
64
Il codice ASCII (II)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
65
Il codice UNICODE
Per aumentare il numero di caratteri rappresentabili nel
1991 è stato introdotto il sistema di caratteri UNICODE,
che utilizzando codici di 16 bit, consente di rappresentare
fino a 65536 caratteri diversi (sufficienti per la maggior
parte delle lingue del mondo).
Trasmettere un testo in formato UNICODE comporta
l’invio di una quantità doppia di dati, rispetto ad una
codifica ASCII estesa.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
66
Il codice UCS
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
67
Il codice UCS (II)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
68
Esercizio
Nell’alfabeto di Venere sono previsti 375 simboli;
Quanti bit si devono utilizzare per rappresentarli tutti?
L’esercizio richiede di trovare il numero di bit che sono
necessari per codificare 375 informazioni diverse.
Dobbiamo quindi applicare la formula:
2N >= M e ricavare N
2N >= 375 se N=9
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
69
Esercizio (II)
Quanti byte occupa la frase “biologia marina” se la si codifica
utilizzando il codice ASCII esteso?
Poichè sappiamo che ogni carattere in codice ASCII esteso occupa un
Byte dobbiamo contare il numero di caratteri (inclusi gli spazi
bianchi) che formano la frase “biologia marina” e moltiplicare per 1
15 caratteri ---> 15 byte
Quanti byte occupa la stessa frase scritta in codice UNICODE?
Poichè ogni carattere in codice UNICODE occupa due byte avremo
15 caratteri --> 15 x 2 byte = 30 byte
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
70
Immagini (I)
Non c’è un “quanto” naturale di informazione elementare come
la cifra per i numeri o la lettera per i testi.
Si introduce allora un reticolo di punti detti pixel
Ad ogni pixel viene poi associato un certo numero di bit, che
indica l’intensità luminosa di ciascun colore primario,
ovvero della combinazione RGB RedGreenBlue .
Una tipica codifica utilizza 8 bit per colore (=256 livelli di
intensità) ovvero 24 bit/pixel. In questo modo si possono
rappresentare 224 ~ 16 milioni di diverse tonalità di colore.
Il numero di bit/pixel impiegati viene chiamato profondità di
colore dell’immagine.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
71
Immagini (II)
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0001100001100110010000101001000110001001010000100110011000011000
3 zeri 2 uno 4 zeri 2 volte (2 uno 2 zeri) uno 4 zeri 1 0 1 2 zeri …
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
72
Immagini (III)
Codifica delle immagini
• Assegnando un bit ad ogni pixel è possibile
codificare solo immagini in bianco e nero
• Per codificare le immagini con diversi livelli di grigio
oppure a colori si usa la stessa tecnica: per ogni
pixel viene assegnata una sequenza di bit
• Per memorizzare un pixel non è più sufficiente un
solo bit. Ad esempio, se utilizziamo 4 bit possiamo
rappresentare 24 = 16 livelli di grigio o 16 colori
diversi, mentre con 8 bit ne possiamo distinguere
28=256, ecc
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
73
Immagini (IV)
L’uso del colore
• Il colore può essere generato componendo 3 colori:
Red, Green, Blue (RGB)
• Ad ogni colore si associa una possibile sfumatura
• Usando 2 bit per ogni colore si possono ottenere 4
sfumature per il rosso, 4 per il blu e 4 per il verde
che, combinate insieme, danno origine a 64 colori
diversi
• Ogni pixel per essere memorizzato richiede 6 bit
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
74
Immagini (V)
L’uso del colore
• Usando 8 bit per ogni colore si possono ottenere 256
sfumature per il rosso, 256 per il blu e 256 per il
verde che, combinate insieme, danno origine a circa
16,7 milioni di colori diversi (precisamente 16777216 colori)
• Ogni pixel per essere memorizzato richiede 3 byte
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
75
Immagini (VI)
Colori e risoluzione
• Il numero di pixel presenti sullo schermo (colonne x
righe) prende il nome di risoluzione
• Risoluzioni tipiche sono:
800 x 600
1024 x 768
1280 x 1024
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
76
Immagini (VII)
La dimensione di un’immagine con profondità di colore a 24 bit e
risoluzione tipica di un monitor di PC (1024x768 pixels) è già di
2.25 MB. Per poter stampare immagini di qualità fotografica
occorre una risoluzione decisamente superiore….
COMPRESSIONE dei dati
Vari tipi di file, con diversi livelli di compressione, ad es.:
TIFF: Tagged Image File Format
GIF: Graphics Image Format (solo per immagini semplici)
JPEG: (Joint Photographers Expert Group) molto usato per
immagini fotografiche
BMP: basso livello di compressione, immagini ingombranti.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
77
.bmp 3841 Kb
.tiff 3842 Kb
.jpeg 425 Kb
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
78
.jpeg 425 Kb
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
79
.bmp 3841 Kb
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
80
Immagini (IV)
Un discorso a parte meritano le immagini vettoriali,
usatissime nel campo della progettazione meccanica,
architettonica, elettronica etc.
L’immagine, piuttosto che in punti, è scomposta in forme
geometriche astratte come poligoni, cerchi etc.
Per descrivere una circonferenza bastano ad es. posizione
del centro e raggio.
Vantaggi:
Svantaggi:
•indipendenza dalla risoluzione del
•non applicabile in modo semplice a
dispositivo di visualizzazione/stampa
fotografie e immagini complesse
•dimensioni ridotte delle immagini
Tipici formati vettoriali: PostScript, PDF (Portable Data Format)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
81
Immagine
tridimensionale
vista da diverse prospettive
ottenuta con un programma di
CAD
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
82
Suoni e filmati
Le tecniche di compressione dei dati, unite a studi di
psicoacustica hanno permesso di realizzare rappresentazioni
di filmati e di sequenze audio di dimensioni accettabili,
dell’ordine di qualche MB. Questo ha aperto la strada
all’utilizzo della multimedialità nell’informatica.
Tipici formati audio/video sono MP3, MPEG, AVI,
RealAudio, RealVideo.
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
83
Rappresentazione di suoni
• Caratteristiche dell’audio (e dei segnali analogici)
tempo
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
84
Rappresentazione di suoni (2)
• Campionamento dell’audio ad intervalli di tempo fissi
tempo
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
85
Rappresentazione di suoni (3)
• Campionamento dell’audio ad intervalli di tempo fissi
tempo
Ogni campione viene
rappresentato con un numero
finito di bit (quantizzazione)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
86
Rappresentazione di suoni (4)
• L’accuratezza della ricostruzione dipende :
• da quanto sono piccoli gli intervalli di campionamento
• da quanti bit uso per descrivere il suono in ogni campione
nella fase di quantizzazione
• al solito … maggiore accuratezza significa maggior quantità
di memoria occupata!
• Anche per i suoni si possono utilizzare tecniche di
compressione per migliorare l’occupazione di memoria della
sequenza di campioni
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
87
Rappresentazione di suoni (5)
• Algoritmi lossy per suoni : sfruttano il fatto che per
l’orecchio umano suoni a basso volume sovrapposti ad altri di
volume maggiore sono poco udibili e possono essere eliminati
• è quello che accade nello standard MPEG Layer 3 , detto
anche MP3
Esempi di formati sono:
– WAV (Microsoft)
– AIFF (Audio Interchange File Format, Apple)
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
88
Video non compresso (originale)
Video compresso con tecnica intraframe
Ambrosino - Noli - Perfetto
Sistemi di Elaborazione A.A. 20152016
89