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 c 2 x c 1 x c 0 x 10 0 dove c 0, …, c n sono cifre da 0 a 9 Esempio: – 7523 = 7 x x x x Informatica 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 c 2 x c 1 x c 0 x 2 0 dove c 0, …, c n sono 0 o 1 Esempio: – = 1 x x x x Informatica di base – Linea 1 unoduequattro otto …

17 Per non fare confusione Per non fare confusione, indichiamo la base a pedice: – = “diciotto in base 10” – = “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 Rappresentazione: 0 2 – il numero successivo è Rappresentazione: 1 2 – il numero successivo è 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 Informatica 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: – = 1 x x x x 2 0 = = 1 x x x x 1 = = = 9 10 – = 0 x x x x x x 2 0 = = 0 x x x x x x 1 = = = Informatica 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 : 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: = 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 – 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 = Informatica 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

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 rappresenta il carattere “a” Ma sappiamo che rappresenta anche il numero intero Quando un programma legge , come fa a sapere come interpretare ? – 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; = A; 31 = B; = a; 61 = b; = 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: – , 11010, Disegna il diagramma di flusso dell’algoritmo “Da10a2” 51Informatica di base – Linea 1

52 Esercizi Ecco un messaggio in codice ASCII esteso. Cosa dice? Informatica 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