La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.

Presentazioni simili


Presentazione sul tema: "Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università."— Transcript della presentazione:

1 Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università degli Studi di Milano Corsi di Laurea in Biotecnologie (primo anno interfacoltà)

2 Quinta lezione: Rappresentazione dell’informazione (Capitolo 6) 2Informatica di base – Linea 1

3 Prima parte Dove eravamo arrivati? 3Informatica di base – Linea 1

4 Nella prima lezione avevamo detto L’informatica studia: – le fondamenta teoriche della rappresentazione e dell’elaborazione dell’informazione – l’applicazione di tali teorie Abbiamo accennato ad alcuni aspetti relativi all’elaborazione dell’informazione: – gli algoritmi, i programmi 4Informatica di base – Linea 1

5 La rappresentazione dell’informazione Come rappresentiamo l’informazione che vogliamo elaborare? – ad esempio, come si rappresenta un testo? E una fotografia? E una sequenza di DNA? Durante la lezione di oggi e della settimana prossima affronteremo: – la rappresentazione dei numeri, dei caratteri e dei testi – la rappresentazione delle immagini e del suono 5Informatica di base – Linea 1

6 Seconda parte Rappresentazione dei numeri 6Informatica di base – Linea 1

7 Cos’è un numero? Numero: concetto astratto utilizzato per descrivere una quantità Non fare confusione tra: – numero concetto astratto – rappresentazione (o codifica) di un numero formalismo utilizzato per rappresentare i numeri ogni numero corrisponde ad una configurazione univoca dei simboli (cifre) usate per la sua rappresentazione 7Informatica di base – Linea 1

8 Inventiamo una rappresentazione Concentriamoci sui numeri interi: – come se dovessimo contare oggetti Inventiamo un modo di rappresentare i numeri: – x  un oggetto – x x  due oggetti – x x x  tre oggetti – x x x x  quattro oggetti –.... Cosa ci ricorda? 8Informatica di base – Linea 1

9 Due tipi di notazione “Additiva” e “posizionale”: – nella rappresentazione della slide precedente, “x x x x x” corrisponde a “cinque”  sommiamo (contiamo) i simboli nella sequenza se scambiamo la posizione di due “x”, il numero non cambia – nella nostra numerazione, “516” corrisponde a 5 centinaia più 1 decina più 6 unità: 516 è diverso da 651 ogni cifra specifica una “quantità” diversa a seconda della sua posizione 9Informatica di base – Linea 1

10 La rappresentazione decimale Sono i numeri che siamo abituati ad usare: – si compongono usando dieci simboli: 0, 1,..., 9 Quanti valori diversi posso rappresentare: – con una cifra  10 valori (0,..., 9) – con due cifre  100 valori (0,..., 99) – con tre cifre  1000 valori (0,..., 999) – in generale, con n cifre possiamo rappresentare 10 n valori (0,..., 10 n – 1) 10Informatica di base – Linea 1

11 La rappresentazione decimale La posizione delle cifre decimali e il numero corrispondente: c n x 10 n + … + c 3 x 10 3 + c 2 x 10 2 + c 1 x 10 1 + c 0 x 10 0 dove c 0, …, c n sono cifre da 0 a 9 Esempio: – 7523 = 7 x 10 3 + 5 x 10 2 + 2 x 10 1 + 3 x 10 0 11Informatica di base – Linea 1 unitàdecinecentinaia migliaia …

12 La numerazione in basi diverse Sapete contare? – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,.... – “Troppo facile, non siamo mica all’asilo!” La rappresentazione in base 10 ci sembra scontata: – abbiamo sempre usato solo questa! Ma è possibile rappresentare un numero in una base diversa da 10? – cioè, possiamo rappresentare un valore avendo a disposizione un numero diverso di simboli? 12Informatica di base – Linea 1

13 La numerazione binaria Abbiamo detto: – la memoria contiene sequenze di bit (0 o 1) Dunque è una numerazione in base 2 Attenzione: ci sono solo due simboli, ma non importa quali: – si, no – vero, falso – acceso, spento – 1, 0 (sono i più comodi, quindi useremo questi) 13Informatica di base – Linea 1

14 Rappresentazione in base 2 “Se ci sono solo 0 e 1, come faccio a rappresentare gli altri numeri, come il 5, per esempio?” Si usano sequenze di più cifre: – esattamente come si fa in base 10, quando vogliamo rappresentare, ad es., il numero “dodici” Il numero “cinque” in “base due” si rappresenta come 101: – anche questa è una notazione posizionale! 14Informatica di base – Linea 1

15 Quanti valori diversi in base 2? Con 1 cifra, rappresentiamo 2 valori diversi: – 0, 1 Con 2 cifre, rappresentiamo 4 valori diversi: – 00, 01, 10, 11 Con 3 cifre, rappresentiamo 8 valori diversi: – 000, 001, 010, 100, 011, 101, 110, 111 In generale, con n cifre possiamo rappresentare 2 n valori diversi (0, …, 2 n -1) 15Informatica di base – Linea 1

16 La rappresentazione binaria La posizione delle cifre binarie e il numero corrispondente: c n x 2 n + … + c 3 x 2 3 + c 2 x 2 2 + c 1 x 2 1 + c 0 x 2 0 dove c 0, …, c n sono 0 o 1 Esempio: – 1001 2 = 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 16Informatica di base – Linea 1 unoduequattro otto …

17 Per non fare confusione Per non fare confusione, indichiamo la base a pedice: – 18 10 = “diciotto in base 10” – 101 2 = “uno-zero-uno in base 2” – 32 = “trentadue” (se non indichiamo nulla, è in base 10) 17Informatica di base – Linea 1

18 Contiamo in base 2 Pensate a cosa fate quando contate in base 10 (con le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Facciamo la stessa cosa in base 2 (cifre 0, 1) – iniziamo da 0 10. Rappresentazione: 0 2 – il numero successivo è 1 10. Rappresentazione: 1 2 – il numero successivo è 2 10. Rappresentazione: 10 2 non abbiamo un singolo simbolo per rappresentare 2 10 facciamo come in base 10 quando siamo arrivati a contare fino a 9: aggiungiamo una cifra 18Informatica di base – Linea 1

19 Contiamo in base 2 Base 10Base 2 11 210 311 4100 5101 6110 7111 81000 91001 101010... 19Informatica di base – Linea 1

20 “Stai dando i numeri!” “Vabbè, ma se esprimo un numero in una base diversa da 10, come faccio a sapere a cosa corrisponde in base 10?” “Oppure, viceversa, se ho un numero in base 10, come faccio a trovare la sua rappresentazione in una base diversa?” “Non dovrò mica contare tutti i numeri uno per uno!” 20Informatica di base – Linea 1

21 Conversioni tra basi Esistono degli algoritmi (abbastanza semplici) per convertire un numero rappresentato in una base, nel corrispondente numero rappresentato in una qualsiasi altra base 21Informatica di base – Linea 1

22 Da base 2 a base 10 E’ facile! Esempio: – 1001 2 = 1 x 2 3 + 0 x 2 2 + 0 x 2 1 + 1 x 2 0 = = 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1 = = 8 + 1 = 9 10 – 011011 2 = 0 x 2 5 + 1 x 2 4 + 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + + 1 x 2 0 = = 0 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 = = 16 + 8 + 2 + 1 = 27 10 22Informatica di base – Linea 1

23 Da base 10 a base 2 Serve qualche passaggio in più… Dato il numero x 10 che vogliamo convertire, dobbiamo: – dividere x 10 per due e memorizzare il resto il resto sarà 0 oppure 1 – se il quoziente (della divisione precedente) non è uguale a zero, dividere per due il quoziente e memorizzare il resto – iterare finché il quoziente non diventa zero 23Informatica di base – Linea 1

24 Da base 10 a base 2 Esempio: conversione di 13 10 – 13 : 2  quoziente: 6, resto=1 – 6 : 2  quoziente: 3, resto=0 – 3 : 2  quoziente: 1, resto=1 – 1 : 2  quoziente: 0, resto=1 – STOP! Quindi: 13 10 = 1101 2 E’ corretto? Provate a fare la trasformazione inversa! 24Informatica di base – Linea 1 leggiamo i valori dei resti: il primo resto corrisponde all’ultimo bit, …, l’ultimo resto al primo bit

25 Algoritmo “Da10a2”: converti da decimale a binario Input: un numero in rappresentazione decimale Output: un numero in rappresentazione binaria 25Informatica di base – Linea 1

26 Procedura “Da10a2” 1.Sia alfa il numero in input 2.Sia beta una lista vuota 3.Se alfa è zero, termina e restituisci beta 4.Sia gamma il resto di alfa diviso 2 5.Aggiungi gamma come simbolo più a sinistra di beta 6.alfa diventa uguale alla parte intera di (alfa diviso 2) 7.Torna al passo 3 26 Lista = “insieme in cui conta l’ordine” Parte intera = “ignora i decimali” Informatica di base – Linea 1

27 Terminazione La procedura termina, in quanto: – alfa assume sempre il valore di un intero non negativo – ad ogni iterazione il valore di alfa diminuisce – quando il valore di alfa diventa uguale a zero, l’algoritmo termina Domanda: sono soddisfatte anche le proprietà di determinatezza e calcolabilità? 27Informatica di base – Linea 1

28 Rappresentazione dei numeri Quindi, se avessimo un programma che deve salvare in memoria un numero intero positivo: – convertiamo la rappresentazione decimale in rappresentazione binaria e salviamo questa Quando dobbiamo rileggere il numero: – convertiamo la rappresentazione binaria (usata per salvare) in rappresentazione decimale 28Informatica di base – Linea 1

29 E gli altri tipi di numeri? Numeri interi con segno: – notazione in complemento a due – bit del segno: per i numeri negativi è 1, altrimenti è 0 Numeri razionali: – notazione in virgola mobile numero = mantissa x base esponente es: 6,523 = 6523 x 10 -3 – es. con 1 byte: 1 bit di segno, 3 bit per l’esponente, 4 bit per la mantissa 29Informatica di base – Linea 1

30 Terza parte Rappresentazione dei caratteri e dei testi senza formattazione 30 “ Cos’è la formattazione ?” Informatica di base – Linea 1

31 “E come rappresentiamo le lettere?” Per essere precisi, non parliamo di “lettere” ma di “caratteri”: – quando vogliamo memorizzare un testo, dobbiamo memorizzare anche dei caratteri che non sono delle lettere (es: punteggiatura, spazio, ecc.) Si decide di associare ogni carattere ad un numero: – es: A = 1, B=2,.... spazio = 89.... 31Informatica di base – Linea 1

32 Capiamoci! Abbiamo detto che: – sappiamo rappresentare i numeri (in decimale) in binario – ad ogni carattere associamo un numero (in decimale) Quindi, in pratica: – ad ogni carattere possiamo associare un numero in binario! 32Informatica di base – Linea 1

33 Le codifiche A quale numero è associata la lettera “a”? – possiamo scegliere un numero qualsiasi, a patto che poi tutti usino sempre questo numero per “a” cioè, che si decida una codifica sulla quale tutti concordano Esistono diverse codifiche: – ASCII (=American Standard Code for Information Interchange) – ASCII esteso – Unicode – … 33Informatica di base – Linea 1

34 Le differenze tra le diverse codifiche Differenza principale tra le codifiche: – i caratteri (e il numero di caratteri) che possono essere rappresentati Maggiore è il numero di caratteri che possono essere rappresentati  maggiore il numero di bit necessari per rappresentarlo! 34Informatica di base – Linea 1

35 Dimensione di una codifica Quanti bit servono per rappresentare 26 caratteri? – 4 bit? Rappresentano 16 (=2 4 ) valori diversi: non bastano! – 5 bit? Rappresentano 32 (=2 5 ) valori diversi: va bene! Quanti caratteri vogliamo rappresentare in tutto? – lettere dell’alfabeto, lettere accentate, punteggiatura, qualche spazio, qualche carattere speciale (non importa cosa sono) – Codice ASCII esteso: 256 caratteri 8 bit (1 byte)  2 8 =256 caratteri diversi 35Informatica di base – Linea 1

36 36Informatica di base – Linea 1 01100001

37 Altri caratteri da rappresentare? Non tutti scrivono nel nostro alfabeto! – arabo, cinese, greco, cirillico, ecc. Codifica Unicode: – codifica che utilizza 32 bit (= 4 byte) per ogni carattere 2 32 (=circa 4 miliardi) di caratteri rappresentabili – rappresenta tutti i caratteri di tutte le lingue (correnti e morte) 37Informatica di base – Linea 1

38 Come si rappresenta un testo non formattato? Ricorda: la formattazione è l’aggiunta di informazioni su come deve essere mostrato il testo: – es: tipo e dimensione del carattere, allineamento, spazio tra le righe, sottolineato, grassetto, ecc. Un testo non formattato si rappresenta come una serie di caratteri codificati, uno dopo l’altro 38Informatica di base – Linea 1

39 Esempio ciao Dobbiamo codificare 9 caratteri: – perché 9 e non solo 8? Quanto spazio sarà necessario per memorizzare queste informazioni? – dipende dalla codifica! – ASCII esteso: 1 byte per ogni carattere  9 byte – Unicode: 4 byte per ogni carattere  36 byte 39Informatica di base – Linea 1

40 La codifica delle informazioni Abbiamo detto che 01100001 rappresenta il carattere “a” Ma sappiamo che 01100001 rappresenta anche il numero intero 97 10 Quando un programma legge 01100001, come fa a sapere come interpretare 01100001? – ogni programma scrive (o legge) delle informazioni seguendo un formato 40Informatica di base – Linea 1

41 Nella pratica Se provi ad aprire un file che NON è un documento di testo (es: un foglio di calcolo) usando un editor di testi, cosa succede? – l’editor di testi visualizza delle informazioni senza senso – perché prova ad interpretare come testo qualcosa che non è un testo 41Informatica di base – Linea 1

42 Quarta parte Rappresentazione dei testi con formattazione 42 “ Ho capito cos’è la formattazione ” Informatica di base – Linea 1

43 Codifica del testo formattato – un tentativo Esempio: vogliamo codificare un testo con alcuni caratteri sottolineati Inventiamo una nuova codifica: – chiamiamola TNF (=Tanto Non Funziona) 1 = a; 2 = b;... 30 = A; 31 = B;... 60 = a; 61 = b;... 90 = A; 91 = B;... – qual è il problema di TNF? 43Informatica di base – Linea 1

44 Problemi con TNF Vantaggio: è semplice, basta che tutti si accordino, come con ASCII o UNICODE Tuttavia: – per codificare la sola sottolineatura abbiamo dovuto raddoppiare il numero di caratteri – se ora volessimo codificare anche il grassetto, la sottolineatura e l’italico (con tutte le loro combinazioni)? – e non abbiamo ancora considerato moltissimi altri tipi di formattazione: tipo di font, dimensione del font, colore del font, posizione del paragrafo, interlinea, ecc. 44Informatica di base – Linea 1

45 Problemi con TNF Avremmo bisogno di milioni di diverse combinazioni solo per rappresentare le lettere del nostro alfabeto: – ogni carattere occuperebbe molto spazio – non sarebbe possibile aggiungere nuovi font, nuove dimensioni del carattere, ecc. Assolutamente TNF non va bene! – e infatti non esiste “Ma allora, come si fa?” 45Informatica di base – Linea 1

46 La marcatura del testo Definiamo un carattere speciale: – ad esempio “&” Quello che segue il carattere & indica come deve essere formattato il testo Esempio: “ciao ciao” potrebbe essere codificato come: – ciao &IniziaSottolineato ciao &FineSottolineato – che a sua volta può essere memorizzato come normale testo in codifica ASCII Quindi basta accordarsi sulle marcature da utilizzare, e per il resto si usa la codifica dei caratteri tipo ASCII o Unicode 46Informatica di base – Linea 1

47 Quanto spazio occupa il testo formattato? Lo stesso spazio del testo non formattato... …più lo spazio per codificare le marcature: – dipende dal tipo di marcature utilizzate – in genere occupa molto poco spazio 47Informatica di base – Linea 1

48 Un esempio: HTML HTML (=HyperText Markup Language) è una codifica del testo formattato: – “ciao ciao ” scritto nel linguaggio HTML corrisponde a “ciao ciao” marcatura=tag, racchiusa fra parentesi triangolari Utilizzato per scrivere le pagine web Se avremo tempo, studieremo anche l’HTML 48Informatica di base – Linea 1

49 49Informatica di base – Linea 1 Quinta parte: Riepilogo

50 E’ stata efficace la lezione di oggi? “Ci sono 10 tipi di persone al mondo: quelli che conoscono la codifica binaria e quelli che non la conoscono” (anonimo) Oggi abbiamo imparato: – la rappresentazione binaria dei numeri e degli altri caratteri – la conversione da numero decimale a binario, e viceversa – la codifica di testi formattati e non formattati – i codici ASCII e Unicode 50Informatica di base – Linea 1

51 Esercizi Converti i seguenti numeri da base 10 a base 2: – 9, 15, 23 Converti i seguenti numeri da base 2 a base 10: – 10010100, 11010, 001011 Disegna il diagramma di flusso dell’algoritmo “Da10a2” 51Informatica di base – Linea 1

52 Esercizi Ecco un messaggio in codice ASCII esteso. Cosa dice? 00100010 01101000 01101111 00100000 01110100 01110010 01101111 01110110 01100001 01110100 01101111 00100000 01101100 01100001 00100000 01110011 01101111 01101100 01110101 01111010 01101001 01101111 01101110 01100101 00100001 00100010 52Informatica di base – Linea 1


Scaricare ppt "Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università."

Presentazioni simili


Annunci Google