Informatica
• Non è la scienza dei calcolatori
• “scienza della rappresentazione e della
elaborazione dell’informazione”
• Il termine scienza indica un tipo di
trattamento dell’informazione rigoroso,
oggettivo e riproducibile
• Il giornalismo è indubbiamente legato
all’informazione, ma non è scienza
AA 2010/11
19
Informatica di base
Introduzione
Definizione ACM
(Association for Computing Machinery)
• L’informatica è lo studio sistematico
degli algoritmi che descrivono e
trasformano l’informazione: la loro
teoria, analisi, progetto efficienza,
realizzazione e applicazione
AA 2010/11
20
Informatica di base
Introduzione
Algoritmo
• Una sequenza di passi definiti con
precisione che portano all’esecuzione di
un compito
• esempi:
• Somma di due numeri a molte cifre
• Istruzioni per il bancomat
• Ricette di cucina
AA 2010/11
21
Informatica di base
Introduzione
Informatica e calcolatori
• Problema: addizione di due numeri:
• Elaborare un algoritmo astratto
• Scrivere un programma in ‘C’ che esegua
la somma
• Compilare ed eseguire il programma su un
PC
• Cercare la calcolatrice in Windows Xp
• Imparare ad utilizzare un programma già pronto
AA 2010/11
22
Informatica di base
Introduzione
Informazione e Dati
•
•
•
•
•
•
Numeri
Documenti di testo
Immagini
Suoni
Filmati
Documenti ipertestuali
AA 2010/11
23
Informatica di base
Introduzione
Memorizzazione Codifica
• Ogni dato deve essere codificato per essere
memorizzato
• Anche il software è codificato e memorizzato
• Programmi sorgenti
• programmi scritti in linguaggio comprensibile da noi
• Librerie
• pezzi di programmi che svolgono compiti particolari e
predefiniti
• spesso dovete installarle per utilizzare programmi già
fatti
• Eseguibili
• programmi direttamente interpretabili dal processore
AA 2010/11
24
Informatica di base
Introduzione
Memorizzazione
• Si usano unità di memoria con 2 possibili
stati:
• Cifre [0] e [1]
• Magnetizzazione ↑ oppure ↓
• Carica + oppure –
• La natura del segnale dipende dal dispositivo
fisico
• Dal punto di vista logico il mezzo fisico non
ha importanza
AA 2010/11
25
Informatica di base
Introduzione
Da analogico a digitale
• Analogico
• Segnale che può assumere infiniti valori con
continuità
• Digitale
• Dal latino “digitus” (dito) o inglese “digit” (cifra)
• segnale che può assumere solo valori discreti
• Alla base c’è la coppia di valori [0] e [1]
• Segnali più complessi si ottengono per
combinazione di parecchie unità binarie
AA 2010/11
26
Informatica di base
Introduzione
Bit e Sequenze di Bit
• Con un bit: si possono rappresentare 2 informazioni
(o “stati” diversi
•
•
•
•
1 e 0 (rappresentazione convenzionale del valore dei bit)
vero e falso
bianco e nero
acceso e spento
• Con sequenze di bit: si possono rappresentare più
informazioni
• 2 bit: 4 configurazioni possibili (00, 01, 10, 11)
• 3 bit: 8 configurazioni (000, 001, 010, 011, 100, 101, 110,
111) ...
• 8 bit (1 Byte): 28 configurazioni ...
• N bit: 2N configurazioni -> possiamo rappresentare 2N “cose”
diverse
AA 2010/11
27
Informatica di base
Introduzione
Codifica dell’Informazione
• Processo di associazione di informazioni a
sequenze di bit
• È una convenzione ma deve essere intesa
allo stesso modo tra chi deve condividere
l’informazione
• chi scrive e chi legge
• Esempio: come rappresentare numeri, testi,
immagini, suoni
• “Formato”: modo con cui un’informazione
viene rappresentata in bit
AA 2010/11
28
Informatica di base
Introduzione
Quanti Bit per
M Informazioni?
• Con x bit si rappresentano 2x informazioni
(“cose”)
• Determinare x (numero bit) tale che 2x ≥ M
• Es. x = 6 per M = 50
• Infatti 25 = 32 (troppo pochi!)
• Mentre 26 = 64
• Per l’alfabeto anglosassone
•
•
•
•
26 lettere Æ M = 26
x tale che 2x≥26
x=5
Es. 00000 = a, 00001= b, 00010 = c,
AA 2010/11
Informatica di base
Introduzione
29
Codifica dei Numeri
• I numeri sono sempre gli stessi, cambia
solo il modo di scriverli....
Notazione
“additiva”
XVIII
18
Notazione
“posizionale”
10010
AA 2010/11
30
Informatica di base
Introduzione
Notazione posizionale
• Quando scriviamo un numero, ad esempio 239,
intendiamo dire:
• 2 centinaia PIU’
• 3 decine PIU’
• 9 unità
• A seconda della posizione, una cifra specifica cose
diverse
• BASE: se usiamo 10 cifre (0-9) allora la base è 10
• BASE: se usiamo 2 cifre (0-1) allora la base è 2
• INDIPENDENTEMENTE dalla base utilizzata, i
numeri sono sempre gli stessi, cambia la
rappresentazione!
AA 2010/11
31
Informatica di base
Introduzione
Numeri Decimali (“base 10”)
cn cn-1 .... c2 c1 c0
c0x100 + c1x101 + c2x102 +…+ cnx10n
dove i ci (le cifre) possono andare da zero a
nove (e sono dieci in tutto - “base 10”)
con N cifre riesco a rappresentare i 10N numeri
da 0 a 10N-1
• Esempio
2042 = 2 x 103 + 0 x 102 + 4 x 101 + 2 x 100
AA 2010/11
32
Informatica di base
Introduzione
I Numeri in un Computer
• La rappresentazione dei numeri in un
computer deve essere la più efficiente
possibile, in modo da ottimizzare la
velocità di calcolo
• Il modo in cui gli “umani” fanno calcoli,
incolonnando i numeri uno sotto l’altro
potrebbe essere utile..
• ... ma un computer mette a disposizione
solo due cifre, lo zero e l’uno... e quindi:
AA 2010/11
33
Informatica di base
Introduzione
Numeri Binari
cn cn-1 .... c2 c1 c0
c0x20 + c1x21 + c2x22 +…+ cnx2n
dove i ci possono andare da zero a uno (e
quindi sono due in tutto - “base 2”)
con N cifre riesco a rappresentare i 2N numeri
da 0 a 2N-1
E’ possibile cambiare il modo di scrivere il
tutto, convertendo da una “base” all’altra
AA 2010/11
34
Informatica di base
Introduzione
Conversione
da Binario a Decimale
• Es. la sequenza binaria 1101
rappresenta il numero:
1*23 + 1*22 + 0*21 + 1*20
= 1*8 + 1*4 + 0*2 + 1*1
= 8+4+1=13 (in base 10)
• Generalmente si indica: 11012 = 1310
AA 2010/11
35
Informatica di base
Introduzione
Conversione
da Decimale a Binario
• Partendo da un numero decimale, costruisco il
numero binario da destra a sinistra
•
•
•
•
divido il numero per 2: il resto è la cifra c0
divido il risultato per 2: il resto è la cifra c1
divido il risultato per 2: il resto è la cifra c2
divido il risultato per 2: il resto è la cifra c3
• e così via: mi fermo quando il risultato della divisione
è 0 (eventualmente con resto 1)
•
•
•
•
13 / 2 = 6 resto 1
6 / 2 = 3 resto 0
3 / 2 = 1 resto 1
1 / 2 = 0 resto 1
• Quindi 1310 Æ 11012
• c0 è la cifra più a destra, c1 la penultima, e così via!
AA 2010/11
36
Informatica di base
Introduzione
Conversione
da decimale a binario (altro esempio)
• Conversione di 2910
29/2 = 14 R = 1 (c0) (....1)
14/2 = 7 R = 0 (c1) (...01)
7/2 = 3 R = 1 (c2) (..101)
3/2 = 1 R = 1 (c3) (.1101)
1/2 = 0 R = 1 (c4) (11101)
• 111012
AA 2010/11
37
Informatica di base
Introduzione
Che numero è?
• A quale numero decimale corrisponde il
numero binario
11001
• 1 x 20 + 0 x 21 + 0 x 22 + 1 x 23 + 1 x 24
=
• 1 + 0 + 0 + 8 + 16 = 25!
AA 2010/11
38
Informatica di base
Introduzione
Che numero è?
• Qual è la rappresentazione binaria del
numero decimale 24?
• 24 : 2 = 12 resto 0 (....0)
• 12 : 2 = 6 resto 0 (...00)
• 6 : 2 = 3 resto 0 (..000)
• 3 : 2 = 1 resto 1 (.1000)
• 1 : 2 = 0 resto 1 (11000) --> stop!
• 11000
AA 2010/11
39
Informatica di base
Introduzione
Da decimale a binario
AA 2010/11
40
Informatica di base
Introduzione
Codifica dell’informazione
• L’informazione è codificata in formato binario
• la specifica codifica –associazione tra i dati e le
stringhe binarie- dipende dalle applicazioni
• stringa = sequenza di caratteri alfanumerici
• L’unità minima (0/1) prende il nome di bit
• Dati e programmi sono memorizzati in unità
chiamate Byte
• Un byte è a sua volta costituito da 8 bit
• simboli base: le cifre binarie
• unità minima di informazione digitale
AA 2010/11
41
Informatica di base
Introduzione
Codifica dell’informazione
Byte
1 0 0 1 0 1 1 1
bit
Il significato della stringa di bit dipende dalla codifica
•se letto come intero “unsigned”, è il valore 151
•se letto come intero “Complemento a 2”, è il valore -105
AA 2010/11
42
Informatica di base
Introduzione
Codifica dell’informazione
• 151 è il valore decimale corrispondente al
valore binario 1 0 0 1 0 1 1 1
• Perché il byte 151 corrisponde all’intero
–105 nella codifica 2C?
• perché nella codifica 2C il bit più significativo è
il bit di segno (1: -, 0: +)
• Una volta stabilito che il numero è negativo, il
valore si ottiene togliendo 28 dal numero letto
come positivo: 151-28 = 151-256 = -105
AA 2010/11
43
Informatica di base
Introduzione
Rappresentazione dei numeri
Interi Positivi:
10010111=27+24+22+21+20=
=128+16+4+2+1=151
Negativi: esistono varie rappresentazioni
2C(complemento a 2)
Per cambiare segno ad un numero, si nega il
numero (scambiare 0 con 1 e viceversa) e si
somma 1
(se <0 il primo bit è sempre 1)
AA 2010/11
44
Informatica di base
Introduzione
Numeri interi [-128,127]
•
•
•
•
•
•
•
•
•
•
•
•
01111111
…….
00000011
00000010
00000001
00000000
11111111
11111110
11111101
11111100
……….
10000000
AA 2010/11
=
127
=
=
=
=
=
=
=
=
3
2
1
0
-1
-2
-3
-4
=
-128
45
Informatica di base
Introduzione
Non solo numeri
Consideriamo il byte:
0 1 1 0 0 0 1 0
•Può essere il numero 98
•Oppure la lettera “b”
AA 2010/11
46
Informatica di base
Introduzione
Codifica dell’informazione
• Codice testuale
• ASCII: codice a 7 bit
• rappresenta le 26 lettere maiuscole e minuscole
dell’alfabeto inglese, le 10 cifre, segni di interpunzione
per un totale di 120 simboli distinti circa
• esteso a 8 bit per includere lettere accentate e altri segni
• Unicode: codice a 16 bit che rappresenta anche i
simboli di altri alfabeti e delle lingue orientali
• 65536 simboli distinti (I primi 128 sono quelli ASCII)
• comunque insufficiente
• lingue non alfabetiche
AA 2010/11
Informatica di base
Introduzione
47
Caratteri ASCII
(american standard code for information)
dec.
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
testo
spazio
AA 2010/11
!
“
#
$
%
&
'
(
)
*
+
,
.
/
dec.
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
testo
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
dec.
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
testo
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
dec.
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
48
testo
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
dec.
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
testo
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
dec.
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
testo
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
canc.
Informatica di base
Introduzione
Codifica dell’informazione
• Le applicazioni possono salvare i dati
su file in formati differenti
• compatibilità verso altre analoghe
applicazioni
• Formato: insieme delle regole che
specificano come codificare le
informazioni e le istruzioni per il loro uso
e/o per la loro rappresentazione
• può essere pubblico o proprietario
AA 2010/11
49
Informatica di base
Introduzione
Codifica dell’informazione
• Due classi di formato
• testo: l’informazione è rappresentata come
sequenza di caratteri alfanumerici
opportunamente codificati
• binario: l’informazione è rappresentata
come sequenze binarie il cui significato
può essere quello numerico o altro a
seconda della codifica adottata
dall’applicazione
AA 2010/11
50
Informatica di base
Introduzione
Codifica dell’informazione
• Codice binario
• sequenze di 32 (64) bit interpretate come
istruzioni macchina (es. file con suffisso
.exe), istruzioni di formattazione, o numeri
• dipende dalle applicazioni
• sequenze di lunghezza arbitraria in funzione
della codifica adottata
• comprensibile solo ai programmi che
conoscono il codice
AA 2010/11
Informatica di base
Introduzione
51
Formato dei numeri
• Interi
• Positivi
• Unsigned char
• Short
• Int
1 Byte
2 Byte
4 Byte
0-255
0-65536
0-(232-1)
1 Byte
2 Byte
4 Byte
-128,127
-32768,32767
-231,(231-1)
• Con segno
• Char
• Short
• Int
• razionali (floating point)
AA 2010/11
52
Informatica di base
Introduzione
Formato dei numeri
Razionali (floating point)
• 3,14159… = 3,14159 x 100
• 1937,26
= 1,93726 x 103
• 0,0005162 = 5,162 x 10-4
• 6,2x1023
• Servono 2 numeri: uno per la mantissa
ed uno per l’esponente.
AA 2010/11
53
Informatica di base
Introduzione
Numeri floating point
Data la mantissa m e l’esponente e
n=mx2e avendo scelto la base=2
1
8
23
32 bit
segno esponente
mantissa
64 bit
1
AA 2010/11
11
52
54
Informatica di base
Introduzione
Codifica dell’informazione
• Il formato non dipende dalla semantica
delle informazioni in un file (e viceversa)
• es: numeri in formato testo
• (a) Il numero 155 è codificato come stringa di 3
caratteri
• es: numeri in formato binario
• (b) Il numero 155 è codificato dalla sequenza di
bit corrispondente al suo valore binario
• si noti che (a) richiede 3 byte (se si usa la
codifica ASCII) mentre (b) 1 byte
AA 2010/11
55
Informatica di base
Introduzione
Altri tipi di dato
• Immagini
• Campionamento spaziale e memorizzazione come
sequenza di numeri
• Valori di intensità luminosa
• Musica
• Campionamento temporale
• Valori di Intensità e frequenza delle vibrazioni
• Filmati
• Serie di fotogrammi
• Differenze fra un fotogramma ed il successivo
AA 2010/11
56
Informatica di base
Introduzione
Codifica dell’informazione
• Il formato è interpretato dal programma con
cui si accede al file
• capisce le istruzioni
• capisce la codifica dei dati
• È specificato dal suffisso nel nome del file
• .exe, .txt, .rtf, .html, .xml, .pdf, .ps, .ppt, .doc, .xls,
.c, .gif, .jpg, .mp3, ecc.
• Il sistema operativo manda in esecuzione il
programma corrispondente in base al suffisso
AA 2010/11
57
Informatica di base
Introduzione
Formati di file
AA 2010/11
58
Informatica di base
Introduzione
Codifica dell’informazione
• Il formato dei file è fondamentale per la
condivisione delle informazioni
• Massima portabilità: formato testo
• nei documenti salvati come testo, si può perdere
la formattazione
• non si può operare sui valori numerici
• minimo ingombro
• facile l’analisi di stringhe
• leggibile da qualunque applicazione
• spedibile direttamente via mail, senza bisogno di
allegati (attachment)
AA 2010/11
59
Informatica di base
Introduzione
Codifica dell’informazione
• formato testo: è alla base di molti altri formati
• le informazioni contenute sono interpretate
come particolari istruzioni dalle applicazioni
(ad es. un file .html per un browser)
• esempi: .ps, .html, .c, .java, ….
• usano tutti una codifica testuale
• è possibile visualizzarne il contenuto usando un
semplice editor di testo (es. Wordpad)
AA 2010/11
60
Informatica di base
Introduzione
Codifica dell’informazione
• esempio: un frammento di un file .html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0055)http://homes.dsi.unimi.it/prog/turno2/lab/progetti.html -->
<!-- saved from url=(0060)http://homes.dsi.unimi.it/prog/turnoSerale/lab/progetti.html -->
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
AA 2010/11
61
Informatica di base
Introduzione
Codifica dell’informazione
• La scelta del formato deve tener conto
dell’impiego del file
• sulla rete: codifica “leggera”
• per elaborazione locale: binaria
• per scambio: testo
AA 2010/11
62
Informatica di base
Introduzione
Codifica dell’informazione
• Esercizi
•
•
•
•
•
AA 2010/11
apriamo un file .exe con un editor di testo
apriamo un file .rtf con un editor di testo
apriamo un file .pdf con un editor di testo
apriamo un file .ppt con un editor di testo
proviamo a fare le stesse operazioni usando
Word
63
Informatica di base
Introduzione
DIAGRAMMI DI FLUSSO
Scarica

Scarica la Lezione 1 - Dipartimento di Matematica e Informatica