Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Documenti analoghi
Informatica. appunti dalle lezioni del 28/09/2010 e 01/10/2010

Informa/ca. Codifica binaria

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011

Codifica binaria. Rappresentazioni medianti basi diverse

Informatica. appunti dalle lezioni del 14 e 18/10/2010

Rappresentazione dell informazione

Corso di Architettura degli Elaboratori

La codifica binaria: concetti fondamentali

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Introduzione e Nozioni di Base. Prof. Thomas Casali

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Esame di Informatica. Facoltà di Scienze Motorie LE UNITA DI MISURA (1/4) LE UNITA DI MISURA (3/4) LE UNITA DI MISURA (2/4) Lezione 2

Anno Accademico Lezione 3: La Codifica delle Informazioni Giovedì 30 Settembre Fondamenti di Informatica - Ing. Giovanni Secondulfo

ALGORITMI: PROPRIETÀ FONDAMENTALI

La "macchina" da calcolo

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Sistemi Web per il turismo - lezione 3 -

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

La Codifica e la Rappresentazione dei dati

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

La codifica. dell informazione. (continua) Codifica dei numeri. Codifica dei numeri. Sono stati pertanto studiati codici alternativi per

La codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Corso di Architettura degli Elaboratori

La codifica. dell informazione

I.4 Rappresentazione dell informazione

CONOSCERE IL LINGUAGGIO DEL COMPUTER

Modulo 2: RAPPRESENTAZIONE DEI DATI I sistemi di numerazione

La codifica. dell informazione

Codifica binaria dell informazione

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Rappresentazione dell informazione. Graziano Pravadelli (2012)

DEFINIZIONI SMART E RELATIVE ESERCITAZIONI

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

LA CODIFICA DELL INFORMAZIONE

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno. Controllo Elaborazione

La rappresentazione delle informazioni

La codifica dei numeri

Per approfondire: La rappresentazione delle informazioni all interno dei computer

Codifica dell Informazione

Tecnologie Multimediali a.a. 2016/2017. Docente: DOTT.SSA VALERIA FIONDA

Sistemi di Elaborazione delle Informazioni

Codifica dell Informazione

LA CODIFICA DELL INFORMAZIONE. Prof. Enrico Terrone A. S: 2014/15

Rapida Nota sulla Rappresentazione dei Caratteri

La rappresentazione delle informazioni in un computer. La numerazione binaria

Codifica binaria: - numeri interi relativi -

Informatica per le discipline umanistiche 2

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

TECNOLOGIA DIGITALE. TECNOLOGIA DIGITALE (segue)

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Hardware, software, codifica informazioni

La rappresentazione delle Informazioni

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Algoritmi. Informatica B. Daniele Loiacono

Diagrammi di flusso!

Informatica e Laboratorio di Programmazione Sistema Binario Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Algoritmi. Informatica B. Daniele Loiacono

= < < < < < Matematica 1

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Supporto e informazione. Il concetto di informazione

Bit, Byte, Word e Codifica Dati

Rappresentazione dell Informazione

Informatica, Informazione e Telecomunicazioni. La codifica dell informazione. Il concetto di informazione. Supporto e informazione

Algoritmi e (cenni sul) calcolatore

L'Informazione e la sua Codifica. Maurizio Palesi

Fondamenti di informatica

Programma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore

Un ripasso di aritmetica: Rappresentazione decimale - limitazioni

Codifica binaria dell informazione

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore. Rappresentazione dei numeri

La codifica digitale

Sistemi di elaborazione delle informazioni. Palmino Sacco

Codifica dell informazione

Rappresentazione informazione ed elementi di aritmetica dei computer

Sistema di numerazione binario

Aritmetica dei Calcolatori Elettronici

La codifica dei numeri

INPUT COMPUTER OUTPUT

Rappresentazione dei numeri

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Modulo 1 I numeri. Università degli Studi di Salerno

Introduzione ai sistemi informatici 1

Sistemi Web per il turismo - lezione 5 -

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Codifica binaria: - numeri naturali -

Università degli Studi della Calabria

RAPPRESENTAZIONE DELLE INFORMAZIONI

Il linguaggio dei computer: rappresentazione in binario e algoritmi di conversione 20 settembre 2017

Transcript:

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Definizioni! Informatica: scienza per l elaborazione automatica dell informazione! Informatica = Informazione + Automatica! Informazione: sequenza di simboli a cui associamo un significato! Automatica: creazione di dispositivi artificiali a cui delegare compiti normalmente attribuiti a persone!

Contesto! Il compito di un ingegnere è di trovare la soluzione a un problema! L informatica tratta solo di problemi di elaborazione dell informazione! Una soluzione con particolari caratteristiche prende il nome di algoritmo!

Algoritmo! Un algoritmo è una sequenza finita di istruzioni comprensibili all esecutore ed eseguibili! La sequenza deve essere deterministica, ossia ogni volta che un istruzione viene eseguita, è determinata l istruzione successiva! Il caso e le scelte sono esclusi dagli algoritmi!

Computer! Escludendo il caso e la scelta, gli algoritmi sono soluzioni che possono essere automatizzate! Il computer, in origine concepito come persona che fa di conto, diventa il calcolatore come lo conosciamo oggi, perché sostituibile da una macchina!

Raffinamento di algoritmi! Un algoritmo può illustrare le azioni da eseguire a un livello arbitrario di dettaglio! Il livello giusto è quello che rende le azioni comprensibili all esecutore! La riscrittura di un algoritmo con un maggiore dettaglio prende il nome di raffinamento!

Diagramma di flusso! Notazione grafica per esprimere algoritmi! inizio! sì! condizione?! no! istruzione! fine!

Algoritmo per cuocere la pasta! acqua in pentola! pentola sul fuoco! attendi! sì! bolle?! no! sale! no! pasta! attendi! cotta?! scola! sì!

Considerazioni! Quando ci sono ripetizioni nell algoritmo, tipicamente si formano cicli (anelli, loop) nel diagramma di flusso! Il determinismo degli algoritmi vieta che vi siano due freccie uscenti da un istruzione!

Programmi! Un algoritmo può essere espresso in diversi modi:! in un linguaggio naturale (es. italiano)! con una notazione grafica (es. diagramma)! in un linguaggio comprensibile al calcolatore (es. C++)! Si definisce programma un algoritmo scritto in un linguaggio comprensibile al calcolatore!

Soluzioni a un problema! Se esiste una soluzione a un problema, ne esistono molte altre! Il problema della ricerca di un nome nell elenco telefonico, ad esempio, ha due possibili algoritmi:! ricerca sequenziale! ricerca binaria!

Ricerca sequenziale! Si parte dall inizio e si scorre l elenco fino a che non si trova il nome cercato.! Caso migliore: il nome cercato è all inizio dell elenco! Caso pessimo: il nome cercato è alla fine dell elenco!

Ricerca binaria! Si apre l elenco a metà, se il primo nome presente viene prima di quello cercato, si considera la seconda metà dell elenco, altrimenti si prende la prima metà! Si ripete finché non si trova il nome cercato!

Confronto tra algoritmi! In media la ricerca binaria fornisce risultati più rapidi (ma non sempre: se il nome è all inizio dell elenco la ricerca sequenziale è la migliore)! Per un confronto completo tra algoritmi bisogna considerare il caso ottimo, il caso pessimo, e il caso medio! Molti algoritmi si basano inoltre su importanti ipotesi: se l elenco non è in ordine alfabetico, ad esempio, la ricerca binaria non può essere applicata, e quella sequenziale è l unica scelta possibile!

Proprietà degli algoritmi! Correttezza!!Un algoritmo è corretto quando fornisce la soluzione che ci si aspetta, quella per cui l algoritmo è stato creato! Efficienza!!Un algoritmo è efficiente quando ottiene il risultato con un consumo minimo di risorse (energia, tempo, etc.)! La correttezza è generalmente più importante!!

Ricordarsi che...! Il computer fa quello che gli dite di fare, NON quello che volete che lui faccia.!

Altro problema: MCD! Dati due numeri x, y, trovarne il massimo comun divisore! Un algoritmo molto semplice cerca il MCD a partire dal più piccolo tra x e y, e diminuendo ogni volta di un unità, finché non si trova un numero che li divide entrambi (caso migliore: uno dei due è il MCD, caso peggiore: il MCD vale 1)!

: input x,y : output : assegnamento di valore sì x y? no m y m x sì m divide sia x sia y? no m m m- 1

Assegnamento e variabili! la scrittura x y rappresenta l operazione che copia il valore di y in x, chiamata assegnamento! x e y si chiamano variabili (perché il loro valore può variare)! attenzione: il vecchio valore di x viene sovrascritto (e quindi perso)!

Sulla correttezza degli algoritmi! Dimostrare la correttezza degli algoritmi è tutt altro che semplice! Per dimostrare che un algoritmo NON è corretto basta UN SOLO caso in cui esso non fa quello che ci si aspetta! Per la correttezza, invece, si dovrebbe dimostrare che l algoritmo funziona in TUTTI i casi! Per certi algoritmi, tale dimostrazione è possibile (ad esempio per un algoritmo per l MCD inventato dal matematico Euclide, si può fare la dimostrazione in matematica)! Per gli algoritmi per cui non è possibile fare una dimostrazione di correttezza, non rimane che il testing: farli funzionare con una serie di input e controllarne gli output! Più è grande l insieme di input usati per il testing, più possiamo essere certi della correttezza!

Le operazioni della CPU! Il processore di un calcolatore, dal momento che è un circuito elettronico, può solo ricevere segnali elettrici in ingresso, ed emetterne altri in uscita! Un modo di vedere la sua attività è quello di interpretare questi segnali elettrici come numeri, e vedere il processore come un esecutore di operazioni logico-aritmetiche!

Interpretazione! Ciò che realmente succede: può essere visto come: input numerico CPU output numerico

Il concetto di codifica! La codifica è una corrispondenza iniettiva tra entità di qualunque genere e numeri interi!

Codifica binaria! Il processore, abbimo detto, lavora solo con segnali elettrici, che vanno codificati numericamente perché il computer sia in grado di elaborare testi, immagini e suoni! Segnali elettrici a valori alti di tensione vengono fatti corrispondere al numero 1! Segnali elettrici a valori bassi di tensione vengono fatti corrispondere al numero 0! Questa si chiama codifica binaria! Da questo punto di vista, il calcolatore opera solo con due cifre: 0 e 1! Tutta l informazione che un calcolatore elabora viene espressa con queste due cifre, per mezzo della codifica binaria!!

Numerazione: le basi! Noi siamo abituati a una numerazione basata su 10 cifre: da 0 a 9! La base della nostra numerazione è il 10:!!147 = 7 x 10 0 + 4 x 10 1 + 1 x 10 2! La base del sistema binario è il 2:!!1011 = 1 x 2 0 + 1 x 2 1 + 0 x 2 2 + 1 x 2 3!!Se si svolge il calcolo si ottiene il numero che, in base 10, corrisponde a 1011 in base 2.!!

Base 2 -> Base 10! 1011 2, ossia 1011 in base 2, a che numero in base 10 corrisponde?! Stiamo cercando la x tale che: 1011 2 = x 10! Basta ricordarsi la definizione di base 2:!!1011 = 1 x 2 0 + 1 x 2 1 + 0 x 2 2 + 1 x 2 3 = 11! Perciò 1011 in base 2 vuol dire 11 in base 10:!!1011 2 = 11 10! Il nostro 11 è per il calcolatore 1011!

Base 10 -> Base 2! Il metodo per esprimere in base 2 un numero dato in base 10 è il seguente! Cerchiamo la x tale che: 25 10 = x 2! Si procede con una sequenza di divisioni per 2, fintantoché il quoziente non diventa 0, e scrivendo la sequenza dei resti in ordine inverso!

Come si scrive 25 in base 2?! 25 : 2 = 12 con resto 1! 12 : 2 = 6 con resto 0! 6 : 2 = 3 con resto 0! 3 : 2 = 1 con resto 1! 1 : 2 = 0 con resto 1! Una volta ottenuto il quoziente pari a 0, scriviamo i resti in ordine inverso:!!25 10 = 11001 2!

Verifica del metodo! 11001 è davvero la codifica in base 2 di 25?! Basta svolgere i calcoli basati sulla definizione di sistema binario! 11001 2 = 1 x 2 0 + 1 x 2 3 + 1 x 2 4 = 1 + 8 + 16 = 25 10 (gli addendi con lo 0 sono stati omessi perché ovviamente non influiscono sulla somma)!

Numeri binari in memoria! In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come parole) di lunghezza fissa dipendente dalla struttura del calcolatore stesso.! Ad esempio, una parola di 4 bit può contenere il numero 0101 2! 0 1 0 1

Combinazioni possibili di numeri! Una parola di 4 bit può contenere 2 4 = 16 numeri binari diversi: da 0000 a 1111! In generale, una parola di n bit può contenere 2 n numeri binari diversi!

Dimensioni delle memorie! 8 bit = 1 Byte (1B)! 2 10 Byte = 1024 Byte = 1 KiloByte (1KB)! 2 20 Byte = 1048576 Byte = 1 MegaByte (1MB)! 2 30 Byte = 1073741824 Byte = 1 GigaByte (1GB)! 2 40 Byte = 1099511627776 Byte = 1 TeraByte (1TB)!

Interpretazioni possibili dei numeri! Se non ci preoccupiamo del segno dei numeri, e li consideriamo sempre positivi, la sequenza che va da 0000 2 a 1111 2 corrisponde ai numeri da 0 10 a 15 10! In generale, data una parola da n bit e interpretando i numeri binari come numeri senza segno, solo positivi, i numeri esprimibili con tale parola vanno da 0 a 2 n -1!

Numeri con segno! Se vogliamo introdurre anche i numeri negativi, una possibililità è di usare il primo bit a sinistra per esprimere il segno del numero: 0 sta per +, 1 sta per -! Con questa convenzione, chiamata modulo e segno, 1010 2 = -2 10, e 0111 2 = 7 10! In generale, con una parola di n bit si possono esprimere i numeri compresi tra (2 n-1 1) e 2 n-1 1!

Complemento a due! La rappresenazione modulo e segno ha un inconveniente: ci sono due rappresentazioni per 0 10 : ad esempio, se si hanno parole da 4 bit, sia 0000 2 sia 1000 2 corrispondono a 0 10! Con la rappresentazione in complemento a due si ovvia a questo problema: 0 10 si rappresenta solo con 0000 2, +1 10 come al solito con 0001 2 mentre per ottenere la rappresentazione binaria di -1 10, si procede come segue!

Da numero positivo a negativo (1)! Data la rappresentazione binaria di +1 10 :!!0001 2! La rappresentazione di si ottiene così:! si invertono tutti i bit! si somma 1! Quindi, la rappresentazione in complemento a due di -1 10 è:!!1111 2!

Da numero positivo a negativo (2)! Analogamente per +2 10 :!!0010 2! La rappresentazione in complemento a 2 di per -2 10 è:!!1110 2! E così via fino a utilizzare tutte le configurazioni di bit possibili della parola! Con una parola da n bit, in complemento a due si possono rappresentare i numeri compresi tra tra 2 n-1 e 2 n-1 1 (da notare che c è un numero in più grazie al fatto che 0 10 ha un unica rappresentazione)!