La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Informatica Scienza e Tecnologia per i Beni Culturali Scienze e Turismo Alpino a.a 2003/04 Prof. Nicola Olivetti Dip. Informatica Univ.Torino.

Presentazioni simili


Presentazione sul tema: "Corso di Informatica Scienza e Tecnologia per i Beni Culturali Scienze e Turismo Alpino a.a 2003/04 Prof. Nicola Olivetti Dip. Informatica Univ.Torino."— Transcript della presentazione:

1 Corso di Informatica Scienza e Tecnologia per i Beni Culturali Scienze e Turismo Alpino a.a 2003/04 Prof. Nicola Olivetti Dip. Informatica Univ.Torino C.so Svizzera 185,Torino email:olivetti@di.unito.it tel: 011/670 67 69 home:http://www.di.unito.it/~olivetti/ sito del corso: http://www.di.unito.it/~olivetti/BCTU2004/

2 Obiettivi del corso Basi dell’informatica: l codifica dell’informazione l hardware: struttura di un computer l software: sistemi operativi l comunicazione tra computer, reti di computer (internet)

3 Obiettivi del corso (segue) Software applicativo di base per l videoscrittura l presentazioni l fogli elettronici l database l navigazione in internet l Esercitazioni in laboratorio

4 Testi per il corso Testi adottati: l L. Console, M. Ribaudo, Introduzione all'informatica, Torino Utet libreria, 1997 In alternativa: l D.Sciuto, G. Buonanno,W. Fornaciari, L. Mari. Introduzione ai sistemi informatici, Mc Graw Hill, 2002 Altri testi: l D. P. Curtin, K. Foley, K. Sen, C. Morin Informatica di base, Mc Graw Hill, 2002 l S. Grandi, E. Bonechi, Informatica Zero, Apogeo, 2000. l M. Calvo, F. Ciotti, Internet 2004, Laterza, 2004 l P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di Dati, McGraw- Hill, 1996

5 La codifica delle informazioni Lezione 1

6 Che cosa è un’informazione?

7 Aspetti dell’informazione Quando abbiamo a che fare con informazione di qualunque tipo distinguiamo: l contenuto (messaggio/significato) l rappresentazione (codifica/significante) l supporto materiale

8 Il numero dieci 10 (dieci nella numerazione araba) X (dieci nella numerazione romana)                  10

9 Significato e significante PaneCane

10 Analogico versus digitale Omino perplesso

11 Analogico/digitale: una definizione Analogico: basato sulla similitudine tra la rappresentazione e l'informazione rappresentata Digitale: basato su una rappresentazione simbolica di informazioni discrete

12 Esempi l Orologio a lancette/ orologio a cifre l il disco di vinile/ il CD l La fotocamera tradizionale/quella digitale l il telefono tradizionale/ la linea ISDN

13 Codifica di informazioni (discrete) A = alfabeto = insieme finito di simboli = {a,b,c,…} stringa = sequenza finita di simboli di A esempio: “aabcedc” è una stringa di n = 7 simboli codifica: funzione che associa in modo 1-1 (iniettivo) una stringa su A ad ogni informazione informazioni A* = insieme di tutte le stringhe su A codifica

14 Esempio: codifica binaria A = {0,1} spenta accesa 0101 La lampadina è primavera estate autunno inverno 00 01 10 11 Siamo in

15 Quante informazioni posso rappresentare con stringhe di lunghezza n su un alfabeto di k simboli? Esempio A = {    } Quante sono le stringhe di lunghezza n se A ha k simboli? Data la stringa s = x 1 … x n-1 esistono k stringhe della forma x 1 … x n-1 y con y  A

16 perciò se le stringhe di lunghezza n-1 sono m, allora quelle di lunghezza n sono m  k. Facendo variare n: l n = 1 allora k l n = 2 allora k  k … l n = 3 allora k  k  k in generale le stringhe di lunghezza n saranno: k  …  k (n volte) = k n In conclusione: con un alfabeto di k simboli posso rappresentare k n informazioni con stringhe di lunghezza n

17 Esercizio l L’alfabeto A = {    } : quante informazioni posso codificare con stringhe di lunghezza 5? 4 5 = 1024

18 Rappresentazione delle informazioni all’interno dei computer l I computer usano una codifica binaria. l L’alfabeto e’ costituito da soli due simboli, indicati convenzionalmente con 0 e 1 l L’entità minima di informazione (0 e 1) prende il nome di bit (binary digit - cifra binaria). Mediante un bit possiamo rappresentare due informazioni

19 Le ragioni di questa scelta sono prevalentemente di tipo tecnologico, infatti i due simboli corrispondono a: l due stati di polarizzazione di una sostanza magnetizzabile; l i due stati di carica elettrica di una sostanza l al passaggio/non passaggio di corrente attraverso un cavo conduttore; l al passaggio/non passaggio di luce attraverso un cavo ottico l etc.…..

20 Unità di Misura: bit, Byte, … 1 bit = stringa su {0,1} di lunghezza unitaria 1 byte = stringa su {0,1} di lunghezza 8 1 KB = 2 10 = 1024 byte 1 MB = 2 20 =1024 Kbyte (un milione di byte circa) 1 GB = 2 30 =1024 Mbyte (un miliardo di byte circa) 1 TB = 2 40 =1024 Gbyte (mille miliardi di byte circa)

21 Codifica binaria Con una sequenza di n bit possiamo rappresentare 2 n informazioni Viceversa: se devo rappresentare k> 1 informazioni diverse, quanti bit sono necessari? Ho bisogno di un numero di bit n tale che 2 n  k Questo numero è  log 2 k 

22 k  log 2 k  2121 3232 4242 5353 6363 7373 8383 9494 164 175 325 336

23 Esercizio l Quanti bit sono necessari per codificare i giorni della settimana? E i giorni del mese? l I giorni della settimana sono 7: ho bisogno di 3 bit l I giorni del mese sono al massimo 31: ho bisogno di 5 bit

24 La codifica dei caratteri l Dobbiamo rappresentare le lettere dell’alfabeto {a,b,c, …A,B,C, %, &, (, ),…0,1,2,3,.,; ?+,-*,...} l L’insieme di simboli comunemente usati nell’alfabeto anglosassone, incluse le cifre numeriche, lettere maiuscole e minuscole, simboli di punteggiatura, parentesi e operatori aritmetici, può essere codificato usando 7 bit (2 7 = 128) l Il metodo di codifica più diffuso tra i produttori di hardware e di software prende il nome di codice ASCII (American Standard Code for Information Interchange)

25 La codifica dei caratteri: Il codice ASCII 0000000NUL0001110SO0011100FS 0000001SOH0001111SI0011101GS 0000010STX0010000 DLE0011110 RS 0000011ETX0010001 DC10011111US 0000100EOT0010010DC20100000SP 0000101ENQ0010011DC30100001! 0000110ACK0010011DC40100010" 0000111BEL0010101NAK0100011# 0001000BS0010110SYN0100100$ 0001001 HT0010111ETB0100101% 0001010NL0011000CAN0100110& 0001011VT0011001EM0100111' 0001100NP0011010SUB0101000( 0001101CR0011011ESC0101001)

26 La codifica dei caratteri: Il codice ASCII 0101010*0111001 91000111G 0101011 +0111010 :1001000H 0101100,0111011 ; 1001001I 0101101 - 0111100 < 1001010 J 0101110. 0111101 = 1001011 K 0101111 / 0111110 >1001100L 0110000 00111111?1001101M 0110001 11000000@1001110N 0110010 21000001A1001111O 0110011 31000010 B1010000P 0110100 41000011C1010001Q 0110101 51000100D1010010R 0110110 61000101E1010011S 0111000 81000110F1010100T

27 La codifica dei caratteri: Il codice ASCII 1010101U1100011 c1110001q 1010110 V1100100 d1110010r 1010111 W1100101 e1110011s 1011000 X1100110 f1110100t 1011001 Y1100111g1110101u 1011010 Z1101000 h1110110v 1011011 [1101001i1110111w 1011100 \1101010j1111000x 1011101 ]1101011k1111001y 1011110 ^1101100 l1111010z 1011111 _1101101m1111011{ 1100000 `1101110n1111100¦ 1100001 a1101111o1111101} 1100010 b1110000p1111110~ 1111111 DEL

28 Il codice ASCII Sebbene 7 bit siano sufficienti per codificare l’insieme di caratteri di uso comune, il codice ASCII standard utilizza 8 bit, il primo dei quali è sempre 0 Codici ASCII con 1 iniziale sono utilizzati per codificare caratteri speciali, ma la codifica non è standard. Codifica della parola cane 01100011 01100001 01101110 01100101 c a n e

29 Problema inverso: decodifica quale testo è codificato da una data sequenza? –si divide la sequenza in gruppi di otto bit (un byte); –si determina il carattere corrispondente ad ogni byte 011010010110110000000000011100000110111100101110 i l P o.

30 Osserva che: La decodifica è possibile (e facile) perchè i caratteri sono codificati con stringhe binarie di lunghezza costante

31 Altri formati l ECBDIC formato alternativo a 8 bit l UNICODE nuovo standard a 16 bit contiene simboli per la maggiorparte degli alfabeti esistenti (compreso arabo, giapponese, etc…) l MSWINDOWS codifica proprietaria della Microsoft simile a UNICODE

32 Esercizio l Un testo di 400 caratteri occupa 1600 bit, quanti caratteri ha l’alfabeto? l Ogni carattere occupa 1600/400 = 4 bit l con 4 bit posso codificare 2 4 = 16 caratteri

33 Codifica di un documento l Un documento può essere formattato: –i caratteri hanno una dimensione, uno stile, un font –il testo può essere giustificato, avere margini, tabulazioni, centrature, incolonnato etc. l Tutte queste caratteristiche possono venire codificate e memorizzate insieme al testo l formato solo-testo (text-only) rimuove tutte le informazioni di formattazione aggiuntive

34 Il codide ASCII codifica anche le cifre decimali l la codifica ASCII è troppo costosa in spazio: 24 = 00110010 00110100 l non è possibile usare direttamente le codifiche ASCII per le operazioni aritmetiche: Esempio: Numero ASCII 3 +00110011 2 =00110010 ----------------- e01100101 Rappresentazione dei numeri

35 l La numerazione decimale utilizza una notazione posizionale basata sul numero 10. La sequenza “234” rappresenta il numero 2 x 10 2 + 3 x 10 1 + 4 x 10 0 l La notazione posizionale può essere utilizzata in qualunque altro sistema di numerazione (con base diversa da 10)

36 Sistemi di numerazione Ogni numero può essere rappresentato in qualunque base B > 1 Fissata una base B > 1 c n c n-1 … c 1 c 0 dove ciascun c i < B, rappresenta il numero r = c n  B n + c n-1  B n-1 +… + c 1  B 1 + c 0  B 0

37 Basi usate comunemente l Base decimale B = 10: cifre 0,1,2,3,4,5,6,7,8,9 l Base binaria B=2: cifre 0,1 l Base ottale B=8: cifre 0,1,2,3,4,5,6,7 l Base esadecimale B=16: cifre 0,1,…,9,A,B,C,D,E,F

38 Sistema di numerazione binaria Nel caso binario la sequenza c n c n-1 c n-2... c 1 c 0 (ogni “c i ” è la cifra “0” o la cifra “1”) rappresenterà il numero c n x 2 n + c n-1 x 2 n-1 +... c 1 x 2 1 + c 0 x 2 0 La sequenza “1011” in base 2 denota il numero 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 1 x 2 0 = 11 (in base 10) Per evitare ambiguità si usa la notazione 1011 2 = 11 10

39 Esempio: numerorappresentazione binaria 0000 1001 2010 3011 4100 5101 6110 7111

40 Metodo di conversione da base 10 a base 2 Dato k = c n x 2 n + c n-1 x 2 n-1 +... c 1 x 2 1 + c 0 x 2 0 siano m il quoziente di k diviso 2 e r il resto, hai che m = c n x 2 n-1 + c n-1 x 2 n-2 + …+ c 1 x 2 0 r = c 0 k = 2m + c 0 c 0  {0,1} è l’ultimo bit (il meno significativo) ripeti il procedimento su m determinando in questo modo gli altri bit, fino a che m diventa 0

41 Esempio 22 10 22 = 11  2 + 0 10110 2 10110 2 = 1  2 4 + 0  2 3 + 1  2 2 + 1  2 1 + 0  2 0 = 22 10 2 = 1  2 + 0 1 = 0  2 + 1 5 = 2  2 + 1 11 = 5  2 + 1

42 Esercizio l Esercizio: convertire in binario il numero 37 l soluzione: 37 10 = 100101 2 37 10 = 1  2 5 + 0  2 4 + 0  2 3 + 1  2 2 + 0  2 1 + 1  2 0

43 Conversioni decimale-ottale decimale-esadecimale Per le conversioni decimale-ottale, decimale- esadecimale, si usano esattamente gli stessi metodi: l 75 10 = 9 x 8 + 3 l 9 = 1 x 8 + 1 l 1 = 0 x 8 + 1 = 113 8 verifico: 1x 8 2 + 1x8 1 + 3x 8 0 = 75 10 l 75 10 = 4 x 16 + 11 l 4 = 0 x 16 + 4 = 4B 16 verifico: 4 x 16 1 + 11 x 16 0 = 75 10

44 Conversioni binario-ottale Sono Facili! l Binario --> ottale raggruppiamo i bit in gruppi di 3 a partire da destra e convertiamo ciascuna tripletta in una cifra (< 8) Es: 1111011 2 = 173 8 = 123 10 l ottale --> binario processo inverso: codifica in binario ogni cifra ottale con tre bit

45 Conversioni binario-esadecimale Altrettanto Facili! l Binario --> esadecimale raggruppiamo i bit in gruppi di 4 a partire da destra e convertiamo ciascuna quadrupla in una cifra (< 16) Es: 1111011 2 = 7B 16 = 123 10 l esadecimale --> binario processo inverso: codifica in binario ogni cifra esadecimale con quattro bit

46 Esercizio l Converti in ottale e in esadecimale il seguente numero binario: 1100101010 1100101010 = 1452 ottale = 32A esadecimale = 810 decimale

47 Aritmetica binaria 0 + 0 = 0 con riporto 0 0 + 1 = 1 con riporto 0 1 + 0 = 1 con riporto 0 1 + 1 = 0 con riporto 1 1 1 1 1 0 1 + 1 1 = 1 0 0 0 1 1 0 1  1 1 = 1 1 0 1 1 0 0 1 1 1

48 Esercizio l Calcola 10011+1101 l risultato = 100000 = 32

49 Limiti della rappresentazione di numeri Consideriamo la base dieci: con 3 cifre decimali si possono rappresentare i numeri compresi tra 0 e 999, il numero successivo (1000) richiede una quarta cifra Se si vuole rappresentare 1000 con 3 cifre decimali si ha un problema di overflow, ossia si esce dal numero di cifre destinato alla rappresentazione, e si genera un errore perché il numero non può essere rappresentato

50 Poiché il numero 999 può essere scritto come 10 3 -1 (ossia 1000-1), possiamo enunciare la seguente regola: con N cifre decimali si possono rappresentare i numeri da 0 a 10 N -1 Consideriamo la base due: con tre cifre binarie si possono rappresentare i numeri compresi tra 0 e 2 3 -1 (ossia 8-1), possiamo enunciare la seguente regola: con N cifre binarie si possono rappresentare i numeri da 0 a 2 N -1

51 Overflow nelle operazioni 2 +010 + 3 =011 = ___ ______ 5101 5 + 101 + 4 = 100 = ___ ______ 91001 *** ERRORE: OVERFLOW *** (non può essere codificato con tre bit) Questo problema può essere osservato anche con la rappresentazione decimale 5 + 6 = _____ 11 *** ERRORE: non basta una sola cifra

52 Standard per numeri interi l Numeri piccoli: 1byte <= 255 l Interi: 2-4byte <= 2 32 l Interi lunghi: 4-8byte <= 2 64

53 Rappresentazione di numeri razionali in virgola mobile (floating point) Rappresentazione di numeri razionali, esempio 12,5 Abbiamo che 12,5 = 125/10 = 125 * 10 -1 = 1250/100 = 1250 * 10 -2 possiamo quindi rappresentare 12,5 con la coppia (125, -1)

54 Si adotta una rappresentazione dei numeri razionali (con segno) del tipo segno  mantissa  base esponente

55 Rappresentazione di numeri grandi Esempio: supponiamo di avere a disposizione solo 2 byte di dover memorizzare 23.077.130 (non si può: 2 16 ~ 65.000) O si usano più byte o si sacrifica la precisione, adottando una rappresentazione in virgola mobile 23.077.130 = (2.307 x 10.000) + 7.130 = = (2.307 x 10 4 ) + 7.130

56 l Se siamo disposti a trascurare l'ultimo addendo (7.130), possiamo memorizzare il numero dedicando i primi 4 bit all'esponente (il 4 di 10 4 ) e i restanti 12 bit al moltiplicatore 2.307 (mantissa) 0111110000000000 ESPONENTE MANTISSA 1° BYTE 2° BYTE

57 Codifica standard a 32 bit l 1 bit per il segno dell’esponente l 1 bit per il segno della mantissa l 8 bit per il valore assoluto dell’esponente l 22 bit per il valore assoluto della mantissa Uso di hardware specializzato per operazioni con floating point: coprocessore matematico

58 Esempio: rappresentazione dei razionali (con base 10) 0 -1x10 -255 1x10 -255 2 22 x10 255 -2 22 x10 255 Numeri Negativi rappresentabili Numeri Positivi rappresentabili

59 Esercizio l Supponi di avere –1 bit per segno mantissa –1 bit per segno esponente –2 bit per esponente e –8 bit per mantissa m l e i numeri siano scritti in base 10 come m* 10 e l quali sono il minimo e il massimo numero positivo e negativo rappresentabili? l osservare le lacune: i numeri compresi strettamente tra 25,5 e 26 non sono rappresentabili

60 Fissando il numero complessivo di bit si hanno due scelte: l Meno bit per l’esponente, più bit per la mantissa: –maggiore precisione –intervallo piccolo dei numeri rappresentabili (numeri densi) l Più bit per l’esponente, meno per la mantissa: –minore precisione, –intervallo grande dei numeri rappresentabili (numeri sparsi)


Scaricare ppt "Corso di Informatica Scienza e Tecnologia per i Beni Culturali Scienze e Turismo Alpino a.a 2003/04 Prof. Nicola Olivetti Dip. Informatica Univ.Torino."

Presentazioni simili


Annunci Google