La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corsi di Laurea in Biotecnologie

Presentazioni simili


Presentazione sul tema: "Corsi di Laurea in Biotecnologie"— Transcript della presentazione:

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

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

3 Prima parte Dove eravamo arrivati?
Informatica 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 Informatica 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 Informatica di base – Linea 1

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

7 Informatica di base – Linea 1
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 Informatica 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? Informatica di base – Linea 1

9 Informatica di base – Linea 1
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 Informatica 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 10n valori (0, ..., 10n – 1) Informatica di base – Linea 1

11 La rappresentazione decimale
La posizione delle cifre decimali e il numero corrispondente: cn x 10n + … + c3 x c2 x c1 x c0 x 100 dove c0, …, cn sono cifre da 0 a 9 Esempio: 7523 = 7 x x x x 100 unità decine centinaia migliaia Informatica di base – Linea 1

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? Informatica 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) Informatica 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! Informatica 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 2n valori diversi (0, …, 2n-1) Informatica di base – Linea 1

16 La rappresentazione binaria
La posizione delle cifre binarie e il numero corrispondente: cn x 2n + … + c3 x 23 + c2 x 22 + c1 x 21 + c0 x 20 dove c0, …, cn sono 0 o 1 Esempio: 10012 = 1 x x x x 20 otto quattro due uno Informatica di base – Linea 1

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

18 Informatica di base – Linea 1
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 010. Rappresentazione: 02 il numero successivo è 110. Rappresentazione: 12 il numero successivo è 210. Rappresentazione: 102 non abbiamo un singolo simbolo per rappresentare 210 facciamo come in base 10 quando siamo arrivati a contare fino a 9: aggiungiamo una cifra Informatica di base – Linea 1

19 Informatica di base – Linea 1
Contiamo in base 2 Base 10 Base 2 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 1010 ... Informatica di base – Linea 1

20 Informatica di base – Linea 1
“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!” Informatica di base – Linea 1

21 Informatica di base – Linea 1
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 Informatica di base – Linea 1

22 Informatica di base – Linea 1
Da base 2 a base 10 E’ facile! Esempio: 10012 = 1 x x x x 20 = = 1 x x x x 1 = = = 910 = 0 x x x x x x 20 = = 0 x x x x x x 1 = = = 2710 Informatica di base – Linea 1

23 Informatica di base – Linea 1
Da base 10 a base 2 Serve qualche passaggio in più… Dato il numero x10 che vogliamo convertire, dobbiamo: dividere x10 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 Informatica di base – Linea 1

24 Informatica di base – Linea 1
Da base 10 a base 2 Esempio: conversione di 1310 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: 1310 = 11012 E’ corretto? Provate a fare la trasformazione inversa! leggiamo i valori dei resti: il primo resto corrisponde all’ultimo bit, …, l’ultimo resto al primo bit Informatica di base – Linea 1

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

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

27 Informatica di base – Linea 1
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à? Informatica 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 Informatica 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 baseesponente 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 Informatica di base – Linea 1

30 Terza parte Rappresentazione dei caratteri e dei testi senza formattazione
“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 Informatica di base – Linea 1
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! Informatica di base – Linea 1

33 Informatica di base – Linea 1
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 Informatica 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! Informatica di base – Linea 1

35 Dimensione di una codifica
Quanti bit servono per rappresentare 26 caratteri? 4 bit? Rappresentano 16 (=24) valori diversi: non bastano! 5 bit? Rappresentano 32 (=25) 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)  28=256 caratteri diversi Informatica di base – Linea 1

36 Informatica di base – Linea 1
Informatica di base – Linea 1

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 232 (=circa 4 miliardi) di caratteri rappresentabili rappresenta tutti i caratteri di tutte le lingue (correnti e morte) Informatica 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 Informatica di base – Linea 1

39 Informatica di base – Linea 1
Esempio ciao 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 Informatica di base – Linea 1

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

41 Informatica di base – Linea 1
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 Informatica di base – Linea 1

42 Quarta parte Rappresentazione dei testi con formattazione
“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? Informatica di base – Linea 1

44 Informatica di base – Linea 1
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. Informatica di base – Linea 1

45 Informatica di base – Linea 1
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?” Informatica di base – Linea 1

46 Informatica di base – Linea 1
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 Informatica 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 Informatica di base – Linea 1

48 Informatica di base – Linea 1
Un esempio: HTML HTML (=HyperText Markup Language) è una codifica del testo formattato: “ciao <u> ciao </u>” scritto nel linguaggio HTML corrisponde a “ciao ciao” “ciao <b> ciao </b>” 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 Informatica di base – Linea 1

49 Quinta parte: Riepilogo
Informatica di base – Linea 1

50 Informatica di base – Linea 1
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 Informatica di base – Linea 1

51 Informatica di base – Linea 1
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” Informatica di base – Linea 1

52 Informatica di base – Linea 1
Esercizi Ecco un messaggio in codice ASCII esteso. Cosa dice? Informatica di base – Linea 1


Scaricare ppt "Corsi di Laurea in Biotecnologie"

Presentazioni simili


Annunci Google