Tecnologia dell'informazione e della Comunicazione (TIC) Modulo 2: Informazione, dati e codifica Informazione: è lo scambio di conoscenza tra due o più persone nonché il significato che le persone coinvolte attribuiscono a tale conoscenza. L'informazione riguarda il contesto in cui i dati sono raccolti, la loro codifica e il significato attribuito a tali dati. Dato: un dato è una descrizione elementare spesso codificata, di una fatto, di una cosa, di un avvenimento o di altro. L'elaborazione di uno o più dati può portare alla conoscenza di un'informazione. Ogni tipo di dato dipende dal codice e dal formato impiegati. Esempio: i dati possono presentarsi sotto diverse forme: numeri e lettere dell'alfabeto (testo), immagini statiche (foto) e in movimento (video), suono (audio) e etc. Esempio: i dati possono essere conservati su diversi mezzi (o supporti) fisici (cartaceo, magnetico (floppy disk, hard disk), ottico (CD, DVD) ed altri supporti) o trasmessi attraverso una rete di telecomunicazioni. Teoria dell'informazione e codici: si occupa del problema del trasferimento e memorizzazione dell'informazione. Un sistema di comunicazione è costituito dai seguenti componenti: Emittente: la sorgente dell'informazione che decide il messaggio da trasmettere. Messaggio: è il contenuto informativo. Trasmettitore: trasforma il messaggio in segnale e lo adatta al mezzo di comunicazione (codifica). Codice: è costituito da un insieme di simboli usati nella comunicazione. Canale: è il mezzo attraverso il quale avviene la comunicazione tra emittente e destinatario. Ricevitore: trasforma il segnale in messaggio (decodifica). Destinatario: interpreta e utilizza il messaggio che gli è arrivato. Rumore: disturbo del segnale lungo il canale di trasmissione. Esempio: un esempio di tale sistema è il telefono il quale permette la comunicazione a distanza di suoni attraverso segnali elettrici. 1
Codice: è una modalità di rappresentazione costituita da un'insieme di segni convenzionali (alfabeto di simboli) e di regole (grammatica) per la loro combinazione usato per trasmettere e memorizzare informazioni. Esempio: un esempio di codici verbali sono le lingue mentre un esempio di codici non verbali sono il codice Morse, il codice fiscale, il codice IBAN, il codice binario, etc. Esempio: il codice binario ha un alfabeto di solo due simboli 0 e 1. L'informatica è basata sull'algebra di Boole e la logica matematica le quali utilizzano i simboli vero e falso. Il simbolo 0 rappresenta falso mentre il simbolo 1 rappresenta vero. Analogamente nell'elettronica il simbolo 0 rappresenta assenza di corrente (OFF) mentre il simbolo 1 rappresenta il passaggio di corrente (ON). Linguaggio binario: è un sistema di codifica posizionale basato su due cifre 0,1. Codifica: è il procedimento che assegna univocamente ad ogni elemento dell'insieme da rappresentare (alfabeto) un simbolo o una stringa che lo rappresenta. La codifica serve per rendere il segnale più robusto nei confronti del rumore durante la trasmissione nel canale. N.B. Un codice è detto efficiente quando utilizza un numero di simboli strettamente necessario per codificare l'informazione mentre all'opposto è detto ridondante quando usa un numero di simboli abbondanti, ma utili per semplificare la generazione e la interpretazione delle informazioni. Stringa: è una sequenza di caratteri o di simboli. Una stringa può essere composta da byte nel caso della codifica ASCII o da word nel caso della codifica Unicode e UTF. Bit: dall'inglese BInary DigiT (cifra binaria) è una singola cifra del linguaggio binario. Ogni bit è in grado di rappresentare due simboli 0,1. Byte: equivale a 8 bit. Word: equivale a 16 bit. Double word: equivale a 32 bit. Quad word: equivale a 64 bit. Double quad word: equivale a 128 bit. 2
Esempio: se si hanno a disposizione 8 bit, equivalenti a 1 byte, è possibile rappresentare 2 8 =256 simboli. Sistema numerico decimale: è il sistema di numerazione posizionale in base 10 che utilizza dieci cifre da 0 a 9 per rappresentare i numeri. Sistema numerico binario: è il sistema di numerazione posizionale in base 2 che utilizza due cifre 0 e 1 per rappresentare i numeri. La formula per convertire un numero da binario a decimale: a n 2 n +a n 1 2 n 1 +...+a 0 2 0 Esempio: numero binario 1001 2 equivale a 9 in decimale. 1001 2 1 2 3 +0 2 2 +0 2 1 +1 2 0 =9 La formula per convertire un numero da decimale a binario: in questo caso occorre procedere in modo ripetitivo. Si parte dal numero decimale e si divide per 2: se il risultato ottenuto è un numero intero il resto è 0. Viceversa se il risultato ottenuto è con la virgola il resto è 1. Si procede con la divisione per 2 della parte intera del risultato. La procedura termina quando il risultato ottenuto è 0 e la conversione in binario è pari ai resti presi in ordine inverso. Esempio: numero decimale 13 equivale a 1101 2 in binario. 13/2=6.5 1 6/2=3 0 3/ 2=1.5 1 1/2=0.5 1 Se il numero decimale ha la parte frazionaria occorre convertirla in modo indipendente dalla parte intera. La la parte frazionaria del numero decimale viene convertita nella parte frazionaria del numero binario. Si parte dalla parte frazionaria e si multipla per 2: se il risultato ottenuto è minore di 1 si annota 0. Viceversa se il risultato è maggiore di 1 si annota 0 e si sottrae 1 al risultato. Si procede con la moltiplicazione fino a quando il risultato è uguale a 1 o fino a quando otteniamo un risultato già ottenuto in precedenza. In questo ultimo caso significa che il numero binario è periodico. Il risultato è dato dalle notazioni prese in ordine diretto. N.B. Il numero convertito in binario può essere periodico anche se quello in decimale non è periodico. Esempio: numero decimale 13.75 equivale a 1101.11 2 in binario. La parte intera 13/2=6.5 1 6/2=3 0 3/2=1.5 1 1/ 2=0.5 1 La parte decimale 0.75 2=1.5 1 0.5 2=1 1 3
numero decimale 5.6 equivale a 101.1001 2 =101. 1001 2 in binario. La parte intera 5/2=2.5 1 2/2=1 0 1/2=0.5 1 La parte decimale 0.6 2=1.2 1 0.2 2=0.4 0 0.4 2=0.8 0 0.8 2=1.6 1 si ripete 0.6 il numero è periodico. Codifica del testo: la rappresentazione dei caratteri alfanumerici presenti sulla tastiera di un dispositivo (calcolatore, cellulare, etc.) utilizza sistemi standard che associano ad ogni carattere (lettera, numero e caratteri speciali) un codice binario. Il sistema più usato è detto codice ASCII (American Standard Code for Information Interchange) a 7 bit (128 caratteri). Ad ogni carattere è associato un numero decimale e il corrispondente numero binario. I codici da 0 a 31 sono non stampabili perché sono codici di controllo usati nella trasmissione dati. Un'estensione del codice ASCII utilizza 8 bit memorizzando nello stesso modo i primi 128 caratteri. Esempio: il carattere a è rappresentato dal codice ASCII 97 che corrisponde al numero binario 1100001 2 mentre il carattere ( è rappresentato dal codice ASCII 72 che corrisponde al numero binario 1001000 2. N.B. Se un carattere non è presente sulla tastiera è possibile inserirlo premendo il tasto ALT + numero decimale che corrisponde al carattere ASCII. ALT + 123 permette di stampare {. Unicode: è un sistema di codifica che assegna un numero univoco ad ogni carattere usato per la 4
scrittura di testi, in maniera indipendente dalla lingua, dalla piattaforma informatica e dal programma utilizzato. Il codice assegnato al carattere viene rappresentato con U+, seguito dalle quattro (o sei) cifre esadecimali del numero che lo individua. Il sistema Unicode è supportato dai vari sistemi operativi e dai linguaggi di programmazione moderni. N.B. Attualmente è ancora in evoluzione e supporta i caratteri usati in quasi tutte le lingue vive e in alcune lingue morte, nonché simboli matematici e chimici, cartografici, l'alfabeto Braille, ideogrammi, etc. Codifica delle immagini: un'immagine è codificata come una sequenza di 0 e 1. Per esempio l'immagine in bianco e nero nella figura a sinistra rappresenta una cifra. Se l'immagine è rappresentata in una griglia quadrata ciascun quadrato, noto come pixel, può essere nero (0) o bianco (1). L'immagine bidimensionale può essere trasformata in una sequenza lineare di 0 e 1 leggendo dall'alto verso il basso e da sinistra verso destra 01110 01000 01110 01010 01110. N.B. Nel caso di immagini a scala di grigio (a colori) a ogni pixel corrisponde un byte (3 byte RGB, red green blue) e quindi si ha una tavolozza detta palette a 2 8 =256 livelli di grigio ( 2 8 =256 livelli per ogni colore rosso, verde e blu). Pixel: il nome deriva da PICTure ELement e rappresenta il più piccolo elemento dell'immagine. Ogni pixel è caratterizzato dalla propria posizione e da valori quali colore e intensità i quali dipendo dal sistema di rappresentazione usato. Tavolozza: detta palette dall'inglese è una lista di colori scelti nell'insieme di tutti quelli disponibili. Ogni colore della tavolozza è associato ad un numero detto indice che lo identifica indice all'interno della stessa. Rappresentazione dei numeri e tipi di dato al calcolatore: Bool: anche detto booleano, è un tipo di dato che rappresenta un valore booleano, tipicamente Falso,Vero o 0,1. Intero: dall'inglese integer (int) è un tipo di dato che rappresenta un sottoinsieme dell'insieme matematico dei numeri interi. Il valore di un dato di tipo intero consiste nel numero intero a cui corrisponde. La sua rappresentazione consiste nel modo in cui esso è immagazzinato nella memoria del computer. I dati interi possono essere con segno o senza segno, cosa che ne discrimina la capacità di rappresentare numeri negativi. Un tipo di dati intero con precisione n può rappresentare fino a 2 n valori: un tipo senza segno può rappresentare i numeri da 0 a 2 n 1. Il metodo più comune per rappresentare i numeri negativi è il "complemento a due" il quale permette di rappresentare i numeri da 2 n 1 a 2 n 1 1. 5
Float: detto anche virgola mobile, dall'inglese floating point, indica il metodo di rappresentazione dei numeri razionali e di approssimazione dei numeri reali. Un numero è caratterizzato dal valore b (la base della notazione in cui è scritto il numero) e la quantità p detta precisione (numero di cifre nella mantissa). La rappresentazione in virgola mobile utilizza la rappresentazione scientifica normalizzata (la parte frazionaria sia sempre minore di 1 e la cifra più significativa sia sempre diversa da 0) insieme al sistema binario (b=2). Un numero in virgola mobile viene rappresentato attraverso: un bit di segno s, un campo di esponente E e un campo di mantissa M, ( 1) s 2 E M, in cui esponente e mantissa possono avere positivo o negativo. Lo standard IEEE 754 prevede la rappresentazione di un numero in virgola mobile: singola precisione: 32 bit dove E=8 bit e M=23 bit doppia precisione: 64 bit dove E=11 bit e M=52 bit quadrupla precisione: 128 bit dove E=15 bit e M=112 bit Carattere: è un'unità minima di informazione che corrisponde a un simbolo dell'alfabeto, a un numero o simbolo speciale (vedi codifica del testo). Stringhe: è una sequenza di caratteri. Può essere composta da byte nel caso delle stringhe con codifica ASCII o da word per le codifiche Unicode. La lunghezza di una stringa può essere memorizzata implicitamente utilizzando uno speciale carattere di terminazione (carattere nullo o NULL) oppure memorizzata esplicitamente. Esempio: int n=16 numero 11.501 1011.0011101101 2 float n=32 numero 118.5 il numero è negativo quindi s=1. Il numero 118.5 in binario 1110110.1 2 che può essere riscritto come 1110110.1 2 =1.1101101 2 6. La mantissa è la parte a destra della virgola riempita con zeri fino a riempire tutti 23 bit 11011010000000000000000. L'esponente è 6 che per rappresentarlo con la precisione singola ( n=32 ) deve essere sommato a 127 (bias) ovvero 133 in binario 10000101. Il numero finale è: 110000101 11011010000000000000000. N.B. in doppia precisione e in precisione quadrupla il procedimento è lo stesso cambiano solo il numero di bit usati per rappresentare esponente e mantissa e il numero bias. Stringa = Oggi non piove diventa utilizzando la codifica ASCII per i caratteri O g g i n o n p i o v e NULL 79 103 103 105 32 110 111 110 32 112 105 111 118 101 0 Length O g g i n o n p i o v e 14 79 103 103 105 32 110 111 110 32 112 105 111 118 101 Complemento a due (A2): è il metodo più diffuso per la rappresentazione dei numeri con segno in informatica. Il complemento a due utilizza il bit più a sinistra della rappresentazione binaria per indicare se il numero decimale è positivo (bit pari a 0) o negativo (bit pari a 1). Questo metodo è conveniente perché crea una corrispondenza biunivoca tra valori e rappresentazioni (unica rappresentazione del numero decimale 0), e perché nelle operazioni di addizione e sottrazione non è necessario distinguere tra valori con segno e senza (è sufficiente la sola addizione). Il complemento a due (A2) si ottiene prendendo il complementare (invertendo il valore dei singoli 6
bit) e aggiungendo 1 al numero binario. Esempio: 10 1010 2 6 0110 2 1001 A1 1010 A 2 14 01110 2 10001 A 1 10010 A2 5 12 5+( 10) 00101 2 01100 2 00101 2 +10100 A2 11001 A2 00111 2 7 A B Somma A + B Sottrazione A B Moltiplicazione A B Divisione A / B 0 0 0 0 0 0 0 1 1 0 (prestito 1) 0 Dipende da A 1 0 1 1 0 0 1 1 0 (riporto 1) 0 1 1 Esempio: Somma: 12+5 01100 2 +00101 2 10001 2 17 Sottrazione: 11 7 01011 2 00111 2 00100 2 4 oppure si utilizza il complemento a 2 11+( 7) 01011 2 +( 00111 2 ) 01011 2 +11001 2 00100 2 4 Moltiplicazione: 10 6 01010 2 00110 2 111100 2 60 Divisione: 17/7 010001 2 /000111 2 000010 2 conresto 000111 2 2conresto3 Software: il nome deriva dall'inglese soft (morbido, leggero) e ware (merci, articoli). Il software è l'informazione utilizzata da uno o più sistemi informatici e memorizzata su uno o più supporti informatici. Tali informazioni possono essere quindi rappresentate da uno o più programmi, oppure da uno o più dati, oppure da una combinazione delle due. Il software rappresenta la parte logica di un calcolatore. Esempi: le applicazioni dei cellulari (smartphone), i programmi di un calcolatore, il sistema operativo, etc. Hardware: il nome deriva dall'inglese hard (duro, rigido) e ware (merci, articoli) e significa ferramenta. L'hardware rappresenta la parte fisica di un calcolatore ovvero a qualsiasi componente fisico di una periferica o di una apparecchiatura elettronica. Esempi: le periferiche come mouse, tastiere, stampanti, schermo oppure i singoli componenti di una periferica come la scheda madre, la memoria centrale, la memoria di massa, etc. Calcolatore: il calcolatore da l'inglese computer è una macchina da calcolo in grado di eseguire calcoli matematici. Il calcolatore prende in ingresso dei dati (informazione), esegue l'elaborazione per cui è stato programmato e restituisce il risultato sotto forma di dati in uscita (informazione elaborata). Formato: è la convenzione usata per leggere, scrivere e interpretare i contenuti di un file. Un file è 7
un'insieme ordinato di byte, numeri, che utilizza una convenzione per associare i byte contenuti a un significato. Esempio: un formato di file per immagini può stabilire che i primi due byte sono l'altezza e la larghezza dell'immagine e i seguenti i colori secondo uno schema prestabilito. I file di testo usano vari sistemi di codifica per rappresentare lettere e formattazioni diverse. File: noto come archivio dall'inglese e detto documento, è un contenitore di informazioni/dati in formato digitale, tipicamente presenti su un supporto digitale di memorizzazione opportunamente formattato in un determinato file system. Le informazioni codificate al suo interno sono leggibili solo tramite uno specifico software in grado di effettuare l'operazione. Cartelle: è detta anche directory in inglese è una specifica entità del file system che elenca altre entità come file e altre directory e permette di organizzarle in una struttura ad albero. Essa è pertanto definibile come un indirizzo, percorso (path) o locazione del file system in cui sono presenti file o altre directory. N.B. Una directory elencata in un'altra directory è anche detta subdirectory, mentre quella che la elenca è la sua directory superiore (o directory di livello superiore). File system: è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. Il file system è un meccanismo con il quale i file sono posizionati e organizzati o su un dispositivo di archiviazione o una memoria di massa, come un disco rigido o un CD e, in casi eccezionali, anche sulla RAM (disco RAM). 8