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 19 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 20
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 21 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 22
Informazione e Dati Numeri Documenti di testo Immagini Suoni Filmati Documenti ipertestuali 23 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 24
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 25 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 26
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): 2 8 configurazioni... N bit: 2 N configurazioni -> possiamo rappresentare 2 N cose diverse 27 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 28
Quanti Bit per M Informazioni? Con x bit si rappresentano 2 x informazioni ( cose ) Determinare x (numero bit) tale che 2 x M Es. x = 6 per M = 50 Infatti 2 5 = 32 (troppo pochi!) Mentre 2 6 = 64 Per l alfabeto anglosassone 26 lettere M = 26 x tale che 2 x 26 x = 5 Es. 00000 = a, 00001= b, 00010 = c, 29 Codifica dei Numeri I numeri sono sempre gli stessi, cambia solo il modo di scriverli... XVIII Notazione additiva 18 Notazione posizionale 10010 30
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! 31 Numeri Decimali ( base 10 ) c n c n-1... c 2 c 1 c 0 c 0 x10 0 + c 1 x10 1 + c 2 x10 2 + + c n x10 n dove i c i (le cifre) possono andare da zero a nove (e sono dieci in tutto - base 10 ) con N cifre riesco a rappresentare i 10 N numeri da 0 a 10 N -1 Esempio 2042 = 2 x 10 3 + 0 x 10 2 + 4 x 10 1 + 2 x 10 0 32
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: 33 Numeri Binari c n c n-1... c 2 c 1 c 0 c 0 x2 0 + c 1 x2 1 + c 2 x2 2 + + c n x2 n dove i c i possono andare da zero a uno (e quindi sono due in tutto - base 2 ) con N cifre riesco a rappresentare i 2 N numeri da 0 a 2 N -1 E possibile cambiare il modo di scrivere il tutto, convertendo da una base all altra 34
Conversione da Binario a Decimale Es. la sequenza binaria 1101 rappresenta il numero: 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 1*8 + 1*4 + 0*2 + 1*1 = 8+4+1=13 (in base 10) Generalmente si indica: 1101 2 = 13 10 35 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 c 0 divido il risultato per 2: il resto è la cifra c 1 divido il risultato per 2: il resto è la cifra c 2 divido il risultato per 2: il resto è la cifra c 3 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 13 10 1101 2 c 0 è la cifra più a destra, c 1 la penultima, e così via! 36
Conversione da decimale a binario (altro esempio) Conversione di 29 10 29/2 = 14 R = 1 (c 0 ) (...1) 14/2 = 7 R = 0 (c 1 ) (...01) 7/2 = 3 R = 1 (c 2 ) (..101) 3/2 = 1 R = 1 (c 3 ) (.1101) 1/2 = 0 R = 1 (c 4 ) (11101) 11101 2 37 Che numero è? A quale numero decimale corrisponde il numero binario 11001 1 x 2 0 + 0 x 2 1 + 0 x 2 2 + 1 x 2 3 + 1 x 2 4 = 1 + 0 + 0 + 8 + 16 = 25! 38
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 39 Da decimale a binario 40
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 41 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 42
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 2 8 dal numero letto come positivo: 151-2 8 = 151-256 = -105 43 Rappresentazione dei numeri Interi Positivi: 10010111=2 7 +2 4 +2 2 +2 1 +2 0 = =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) 44
Numeri interi [-128,127] 01111111 = 127. 00000011 = 3 00000010 = 2 00000001 = 1 00000000 = 0 11111111 = -1 11111110 = -2 11111101 = -3 11111100 = -4. 10000000 = -128 45 Non solo numeri Consideriamo il byte: 0 1 1 0 0 0 1 0 Può essere il numero 98 Oppure la lettera b 46
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 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! # $ % & ' ( ) * +, -. / 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 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. 48
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 49 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 50
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 51 Formato dei numeri Interi Positivi Unsigned char 1 Byte 0-255 Short 2 Byte 0-65536 Int 4 Byte 0-(2 32-1) Con segno Char 1 Byte -128,127 Short 2 Byte -32768,32767 Int 4 Byte -2 31,(2 31-1) razionali (floating point) 52
Formato dei numeri Razionali (floating point) 3,14159 = 3,14159 x 10 0 1937,26 = 1,93726 x 10 3 0,0005162 = 5,162 x 10-4 6,2x10 23 Servono 2 numeri: uno per la mantissa ed uno per l esponente. 53 Numeri floating point Data la mantissa m e l esponente e n=mx2 e avendo scelto la base=2 32 bit 1 8 23 segno esponente mantissa 64 bit 1 11 52 54
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 55 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 56
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 57 Formati di file 58
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) 59 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) 60
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> 61 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 62
Codifica dell informazione Esercizi 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
DIAGRAMMI DI FLUSSO