La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

FONDAMENTI DI INFORMATICA I A.A prof. Angelo GALLIPPI

Presentazioni simili


Presentazione sul tema: "FONDAMENTI DI INFORMATICA I A.A prof. Angelo GALLIPPI"— Transcript della presentazione:

1 FONDAMENTI DI INFORMATICA I A.A. 2006-2007 - prof. Angelo GALLIPPI
A.A prof. Angelo GALLIPPI Data inizio: 5 marzo 2007 Data fine: 25 giugno 2007 Totale ore: 90 n° crediti: 10 Orario Lunedì Aula 3 PP2 Martedì Aula 8 PP2 Mercoledì Aula 3 PP2

2

3 TEST D’INGRESSO Cosa indicano le seguenti sigle: NMOS, NAND, DRAM, CD-ROM? Come si chiama il fisico che ha realizzato il primo microprocessore? Qual è la sua nazionalità? 3. Come si chiama il fisico, premio Nobel, che ha inventato il circuito integrato? 4. Cos’è una memoria cache? 5. Cosa si misura in Megahertz? E in Megabyte? 6. Qual è il risultato della seguente operazione: “9 modulo 4”? 7. Cosa indica la parola inglese “file”? 8. Quali sono I primi 5 termini della successione di Fibonacci? 9. A cosa può servire il triangolo di Tartaglia? 10. Quanto valgono le seguenti espressioni: 2-3 ; 0,54 ; 161/2 ?

4 PROGRAMMA Le basi dei calcolatori digitali Sistemi di numerazione binari Codifica binaria pura (Conversioni di base. Operazioni) Sistema esadecimale Codifica BCD Codici binari alfanumerici (Codifiche ASCII, EBCDIC) Codici rilevatori di errori Codifica delle grandezze fisiche (Digitalizzazione di una forma d’onda analogica. Digitalizzazione di una immagine. Vantaggi della digitalizzazione).

5 Algebra di Boole Operatori AND, OR, NOT Tabelle di verità Operatore OR esclusivo (XOR) Addizionatore binario Operatore NOR Operatore NAND Operatori logici orientati al bit Macchina di Turing Macchina sommatrice Macchina copiatrice

6 Architettura di un elaboratore elettronico
Macchina di von Neumann Unità centrale di elaborazione (processori Intel, AMD, Alpha, Mips, SPARC, ARM) ROM BIOS Bus di sistema e di espansione (ISA, MCA, EISA, SCSI) Memoria (RAM, cache) Scheda madre. Disco rigido (RAID, ATA seriale) Lettori di floppy disc, CD-ROM, DVD Porte seriali e parallele

7 Algoritmi. Diagrammi di flusso
Algoritmi. Diagrammi di flusso. Il controllo del programma (Selezione binaria. Selezione multipla. Iterazione). Strutturazione degli algoritmi. Struttogrammi. Iterazione enumerativa (for). Iterazione con guardia all’inizio (while). Calcolo del fattoriale. Iterazione con guardia alla fine (do-while). Calcolo della radice quadrata. Cicli nidificati. Confronto tra do-while e while. Iterazione e ricorsività (Definizione ricorsiva di fattoriale e di potenza). Algoritmi di ricerca (lineare; binaria; tempo di esecuzione). Notazione O-grande. Algoritmi di ordinamento (a bolle; per selezione; per inserimento; Shell Sort; Heap Sort; per fusione; Quicksort; esterno; fusione bilanciata). Cifratura RSA (Chiavi asimmetriche. Cifratura e decifrazione. Strutture dati. Tipi dati predefiniti (Tipi dati semplici. Tipi dati strutturati).

8 3. La programmazione nel linguaggio C
Introduzione: la modularità Funzioni: main(), printf() Commenti Tipi di dati, dichiarazioni e visualizzazioni Assegnazioni, indirizzi e ingresso interattivo Selezione (if, switch) Iterazione (while, for, do-while) Funzioni definite dall’utente Tipi di dati complessi (array, indirizzi, puntatori, stringhe, strutture) 4. Software di base Sistemi operativi (processi; memoria virtuale; file e indirizzari; strati del sistema operativo; utilità) Cenni ai sistemi operativi Dos e Windows Gerarchia e tipologie dei linguaggi di programmazione

9 5. Il sistema operativo Linux
Cenno sulle principali distribuzioni (SuSE, DLD, Mandrake, RedHat, Slackware, Turbo) Shell e utilità Principi di amministrazione Il kernel Processi e comunicazioni Il file system Il sistema X Windowing

10 TESTI CONSIGLIATI: Gallippi, A. Dizionario di informatica Inglese/Italiano, Tecniche Nuove, Milano, 2006 Deitel, H.M. C Corso completo di programmazione, Apogeo, Milano, 2004. Medri, D. Linux facile, Edizioni Seven Star, Roma, 2001. Missiroli, M. Linux da zero, Edizioni Seven Star, Roma, 2002.

11 INTRODUZIONE Il termine informatica deriva dalla contrazione delle parole informazione e automatica, e indica appunto il trattamento automatico delle informazioni, di tipo numerico o no, reso possibile da quelle macchine che sono i computer o calcolatori elettronici costruiti a partire dagli anni ’40. Gli attuali computer sono praticamente tutti di tipo digitale, cioè elaborano i dati considerandoli come dei numeri costituiti da un numero finito di cifre (in inglese digit). Tuttavia questa scelta non si è imposta con immediatezza ai progettisti dei primi calcolatori, i quali avevano di fronte anche l’alternativa analogica, se non altro perché su essa era basato il più diffuso strumento di calcolo allora esistente: il regolo calcolatore. Le due concezioni si sono confrontate per un certo periodo, fino a che la scelta digitale è risultata vincente, relegando i calcolatori analogici in nicchie applicative assai specializzate. Nel seguito ci interesseremo esclusivamente dei calcolatori digitali.

12 LE BASI DEI CALCOLATORI DIGITALI
Affinché una macchina basata sull’elettricità possa compiere in modo automatico delle operazioni matematiche (ma anche di altro tipo) sono necessari evidentemente tre passaggi: la trasformazione dei numeri (o di altri tipi di informazioni) in segnali elettrici; la disponibilità di dispositivi in grado di eseguire su tali segnali elettrici le stesse operazioni che gli operatori matematici eseguono sui numeri; la possibilità di eseguire istruzioni precedentemente impartite dall’uomo, ed eventualmente delle scelte fra più alternative.

13 Ebbene, a partire dagli anni ’40 queste tre esigenze sono risultate contemporaneamente soddisfatte, grazie all’esistenza di tre costruzioni logiche fondamentali sviluppate in tempi diversi e in modo indipendente l’una dall’altra. Esse sono: il sistema di numerazione binario di Leibniz; l’algebra di Boole; la macchina di Turing. Essenziale dal punto di vista pratico per la applicazione pratica di questi risultati, e quindi per la realizzazione del computer, è stata la realizzazione di dispositivi elettronici sufficientemente veloci, piccoli ed economici quali il transistore, realizzato nel 1948 da John Bardeen, Walter Houser Brattain e William Bradford Shockley ai Bell Telephone Labs (Nobel 1956); il circuito integrato, realizzato nel 1958 da Jack St. Clair Kilby, alla Texas Instrument (Nobel 1970); il microprocessore, realizzato nel 1971 da Federico Faggin alla Intel.

14 Sistemi di numerazione binari
Il sistema di numerazione binario, ideato dal filosofo tedesco Gottfried Wilhelm Leibniz [1], consente di rappresentare un qualsiasi numero usando i due soli simboli o cifre (in inglese digit) “0” e “1”, e di compiere con essi tutte le usuali operazioni aritmetiche. [1] Leibniz espose il suo sistema in diversi scritti, tra i quali De progressione dyadica che porta la data del 15 marzo 1679, una lettera a Claudio Filippo Grimaldi del gennaio/febbraio 1697 e una al padre gesuita Joachim Bouvet del 18 maggio In quest’ultima, in particolare, Leibniz scrive: Erano ben più di venti anni che avevo in testa questa aritmetica fondata sullo 0 e sull’1, della quale vedevo le mirabili conseguenze per condurre la scienza dei numeri a una perfezione che supera tutto quello che possediamo.

15 Leibniz’s medallion for the Duke of Brunswick
from the Postdoctoral Thesis by Johann Bernard Wiedeburg of Jena (1718) Leibniz’s medallion for the Duke of Brunswick from the Postdoctoral Thesis by Johann Bernard Wiedeburg of Jena (1718)

16 Le stesse cifre 0 e 1 consentono di codificare anche dati testuali o alfabetici e, attraverso il processo di digitalizzazione, una qualsiasi grandezza analogica, cioè variabile in maniera continua nel tempo. Le cifre 0 e 1 - o, più in generale, i termini antitetici “vero-falso”, “sì-no” e simili - possono essere rappresentate dagli stati fisici (“acceso-spento”, “aperto-chiuso”, “conduttore-isolante”, ecc.) di dispositivi quali lampadine, interruttori e transistori, e ciò determina la grande versatilità dei calcolatori elettronici.

17 Codifica binaria pura La rappresentazione di un numero tramite le sole cifre “0” e “1” può avvenire secondo diversi criteri; la codifica binaria pura (detta semplicemente “binaria”, senza altra specificazione) rappresenta i numeri in modo che continuino a valere le stesse regole dell’aritmetica decimale. Negli altri tipi di notazione binaria, invece, i risultati della conversione non possono essere impiegati in operazioni aritmetiche, perché non fornirebbero i risultati corretti.

18 Il sistema binario è, come quello decimale, di tipo “posizionale”, in quanto la posizione di una cifra in un numero determina il valore o “peso” di quella cifra. Ciò a differenza, per esempio, del sistema di numerazione degli antichi romani, che era solo parzialmente posizionale. MDCCXIV Per esempio, nei due numeri 300 e la stessa cifra 3 ha un valore diverso, in quanto nel primo viene moltiplicata per 100, nel secondo per (come si avverte anche leggendo i due numeri). Ciò si esprime dicendo che le cifre (prima della virgola) di un numero decimale vengono moltiplicate per le successive potenze con esponente positivo del numero 10 (detto base del sistema di numerazione), che sono:

19 Invece le cifre dopo la virgola di un numero in base 10 vengono moltiplicate per le successive potenze con esponente negativo del numero 10, che sono:

20 Anche nel sistema binario le cifre di un numero vanno pensate moltiplicate per una opportuna potenza, in questo caso della base 2. Per quanto riguarda la parte prima della virgola di un numero in base 2, tali potenze sono:

21 Per quanto riguarda la parte dopo la virgola di un numero in base 2, le successive potenze del 2 sono: Vediamo le regole per convertire un numero dal sistema decimale a quello binario e viceversa.

22 Conversione da base 10 a base 2 (parte intera)
Per convertire la parte intera di un numero da base 10 a base 2 si può seguire il seguente algoritmo delle divisioni successive: si divide il numero per 2 annotando il quoziente e il resto della divisione si ripete l’operazione fino a ottenere per quoziente 0 la successione dei resti ottenuti, scritti dall’ultimo al primo, fornisce la conversione desiderata.

23 Per indicare esplicitamente che un numero è scritto nel sistema di numerazione decimale, gli si aggiunge il pedice 10; se il numero è scritto nel sistema binario si aggiunge il pedice 2. Ad esempio, la conversione in binario di 3710 si effettua secondo lo schema seguente: Quindi 3710 

24 Conversione da base 10 a base 2 (parte dopo la virgola)
 Per convertire la parte dopo la virgola di un numero da base 10 a base 2 si può seguire il seguente algoritmo delle moltiplicazioni successive: si moltiplica il numero per 2, annotando la prima cifra del prodotto se essa vale “1”, altrimenti annotando “0”; si ripete la moltiplicazione del risultato ottenuto, terminando il procedimento quando si ottiene come prodotto una potenza del 10 la successione degli “0” e “1” ottenuti, scritti a partire dal primo, fornisce la conversione desiderata.

25 Nel caso, ad esempio, del numero 0,812510 la conversione si effettua secondo lo schema seguente:
Quindi 0,  0,11012.

26 Esercizio. Convertire il numero 0,310 in base 2.
Si ottiene: 0,310 → 0,01(0011)2 Quindi nel convertire la parte dopo la virgola di un numero da base 10 a base 2 può succedere che il numero, non periodico nel primo sistema di numerazione, diventi periodico nel secondo. Questo fatto può comportare una perdita di esattezza quando si eseguano operazioni tra numeri con la virgola che siano stati convertiti nel sistema binario.

27 Conversione da base 2 a base 10
Per convertire un numero da base 2 a base 10 si segue il seguente algoritmo: si moltiplica ogni bit del numero per il valore dalla corrispondente potenza del 2, e si sommano i valori così ottenuti. Nel caso, ad esempio, del numero la conversione si effettuerebbe secondo lo schema seguente:

28 Quindi  3710.

29 Osserviamo che tale procedimento si applica sia alla parte intera sia a quella decimale del numero.
Quindi nel caso, ad esempio, del numero 0,11012 la conversione si effettua secondo lo schema seguente.

30 Operazioni nel sistema binario
Le operazioni sui numeri binari si eseguono secondo le regole ordinarie dell’aritmetica, con l’ulteriore semplificazione derivante dall’operare su due sole cifre. Somma. La somma si esegue allineando i numeri sulla destra e applicando alle cifre sulla stessa verticale le regole della somma binaria riportate in tabella. Per esprimere in modo più uniforme i 4 risultati indicati in tabella, conviene ragionare in termini di: “due addendi / un risultato e un riporto”, ossia:

31 Tuttavia, dato che in pratica si sommano numeri costituiti da più di una cifra binaria, conviene utilizzare ragionare in termini di “due addendi e un riporto / un risultato e un riporto”, ossia

32 Ad esempio, la somma di 10110 e 11111 si esegue secondo lo schema seguente:

33 Moltiplicazione. Anche la moltiplicazione tra due numeri si esegue come nel sistema decimale; in particolare: si applicano ai prodotti parziali delle singole cifre le regole della tabella seguente quindi si sommano i prodotti parziali con le regole della somma viste in precedenza. Osserviamo che la tabella costituisce un sottoinsieme della familiare tavola pitagorica (scritta, di solito, senza la riga e la colonna dello “0”).

34 Sottrazione. La sottrazione nel sistema binario si potrebbe eseguire come nel sistema decimale ma di fatto, per evitare la situazione di dovere “prendere in prestito” una unità dalla cifra di sinistra quando una cifra del sottraendo superi quella corrispondente del minuendo, conviene eseguire la sottrazione tramite due operazioni più semplici per i circuiti binari: la complementazione e l’addizione. Ricordiamo che nel sistema decimale il complemento a 9 di un numero è quel numero che sommato al primo dà un risultato costituito da tutte cifre 9. Quindi il complemento di un numero di due cifre si ottiene sottraendo il numero da 99, di uno a tre cifre sottraendo il numero da 999 e così via. Per esempio il complemento di 13 è ( ) = 86.

35 L’uso del complemento evita di eseguire una sottrazione, sostituendola con un’addizione. Infatti, per esempio nell’identità 13 – 9 = 4 si può sottrarre 99 a entrambi i membri, ottenendosi 13 – 9 – 99 = 4 – 99 e, cambiando segno a entrambi i membri,  (99 – 13) + 9 = (99 – 4) Dato che la parentesi a primo membro rappresenta il complemento del minuendo e quella a secondo membro il complemento del sottraendo, se ne trae la seguente regola:

36 Per eseguire una sottrazione si può:
eseguire il complemento a 9 del minuendo, sommargli il sottraendo, eseguire il complemento a 9 della somma ottenuta. La stessa regola vale ovviamente anche nel sistema binario - dove anzi risulta di applicazione ancora più semplice - sostituendo il complemento a 9 con il complemento a 1. Complemento a 1. Si definisce complemento a 1 di un numero quel numero che sommato al primo dà un risultato costituito da tutte cifre 1. Ad esempio il complemento a 1 di 11012 è 00102 dato che 00102 = ----- 11112

37 il complemento a 1 di un numero si ottiene
Si vede che: il complemento a 1 di un numero si ottiene cambiando i suoi 0 in 1 e viceversa. Applichiamo allora la regola precedente alla sottrazione 13 – 9: Tuttavia, nel sistema decimale si considera anche il complemento a 10 di un numero, definito come quel numero che sommato al primo dà tutte cifre 0 (trascurando la cifra di riporto più a sinistra).

38 Ad esempio, il complemento a 2 di 1101 è 0011 dato che 1101 + 0011 =
Complemento a 2. Allo stesso modo, nel sistema binario si considera il complemento a 2 di un numero, definito come quel numero che sommato al primo dà un risultato costituito da tutte cifre 0 (trascurando il bit di riporto più a sinistra). Ad esempio, il complemento a 2 di 1101 è 0011 dato che 1101 + 0011 = ------ 1 0000 Si vede che: il complemento a 2 di un numero si ottiene sommando 1 al complemento a 1 del numero.

39 Per eseguire una sottrazione si può:
Usando il complemento a 2, la sottrazione si può eseguire con la seguente regola: Per eseguire una sottrazione si può: sommare al minuendo il complemento a 2 del sottraendo sopprimere la cifra più a sinistra della somma ottenuta. Applichiamo questa regola alla solita sottrazione 13 – 9

40 Sistema esadecimale Molto usato in informatica è il sistema di numerazione esadecimale, che impiega i 16 simboli A B C D E F Pertanto anche le “lettere” A-F vanno considerate cifre, di valori rispettivamente: A=10 B=11 C=12 D=13 E=14 F=15 Anche il sistema esadecimale è di tipo posizionale, in quanto le cifre di un numero vanno pensate moltiplicate per una opportuna potenza, in questo caso della base 16. Per quanto riguarda la parte prima della virgola di un numero esadecimale (la sola di effettivo utilizzo) tali potenze sono:

41 Nel linguaggio C i numeri esadecimali iniziano con le cifre 0x
Nel linguaggio C i numeri esadecimali iniziano con le cifre 0x. Così, ad esempio, vale la conversione 0x2A7F

42 in quanto Questo è pertanto il metodo per convertire un numero da base 16 a base 10.

43 Conversione da base 16 a base 2.
Per convertire un numero esadecimale in binario si convertono successivamente, le sue cifre tramite gruppi di 4 bit, secondo la corrispondenza della tabella a fianco. Lo stesso criterio vale ovviamente per il passaggio inverso binario > esadecimale, con l’avvertenza di iniziare la sostituzione partendo dal gruppo di 4 bit meno significativi (quelli più a destra). Conversione da base 10 a base 16. Per questa conversione conviene passare attraverso la base 2. Quindi, ad esempio: 3710   0x25

44 Codifica BCD Un altro tipo di codifica binaria è costituito dalla notazione BCD (da Binary Coded Decimal, decimale codificato in binario), nella quale ogni cifra di un numero decimale viene rappresentata tramite le quattro cifre della sua codifica in binario puro. Ad esempio, il numero 2310 viene rappresentato in BCD come dato che questi due gruppi di 4 cifre sono gli equivalenti binari rispettivamente dei numeri 2 e 3. Questo tipo di codifica non consente di eseguire le operazioni aritmetiche applicando le solite regole, e presenta quindi un interesse minore rispetto alla codifica in binario puro.

45 CODICI BINARI ALFANUMERICI
Come abbiamo detto, l’uso delle cifre “0” e “1” permette di codificare anche dati testuali o alfabetici[1]. [1] Il primo esempio di codifica binaria delle lettere dell’alfabeto si deve a Francis Bacon, il quale escogitò il codice omnia per omnia al fine di cifrare i suoi messaggi diplomatici segreti. Il suo codice sostituiva a ogni lettera dell’alfabeto un gruppo di cinque lettere costituito da varie combinazioni della a e della b. Ulteriori elaborazioni erano poi eseguite per garantire la segretezza della comunicazione.

46 Naturalmente questi comprendono come loro sottoinsieme anche i dati numerici (e allora si parla, più propriamente, di caratteri alfanumerici), ma quando si parla di dati alfabetici, si esclude implicitamente che su di essi si possano eseguire le operazioni aritmetiche. Per esempio un numero quale un codice di avviamento postale, sul quale non si dovranno eseguire né addizioni né sottrazioni, può essere codificato convenientemente in forma testuale o alfanumerica, considerando le sue cifre alla stregua degli altri simboli presenti su una tastiera. A differenza della codifica dei dati numerici, quella dei dati alfanumerici è puramente convenzionale, nel senso che non c’è alcuna ragione particolare per attribuire a una lettera una certa successione di “0” e “1” piuttosto che un’altra. Le due codifiche più diffuse sono i codici ASCII ed EBCDIC.

47 Codifica ASCII. Il codice ASCII (da American Standard Code for Information Interchange, Codice standard americano per lo scambio di informazioni) è impiegato in quasi tutti i personal computer e in buona parte dei sistemi di elaborazione medio-grandi. Usa una codifica a 7 bit per codificare 128 simboli standard, mentre un ottavo bit può essere impiegato per codificare in modo non standard lettere di particolari alfabeti, caratteri semigrafici o simboli speciali, oppure per aggiungere un controllo di parità.

48

49 I primi 32 caratteri del codice corrispondono a codici di controllo, cioè non codificano i tasti presenti su una tastiera, ma determinano particolari operazioni quando sono ricevuti da una periferica. Nel codice ASCII i caratteri minuscoli vengono dopo quelli maiuscoli, e sono “sfasati” rispetto a essi di 32 caratteri; ciò consente di trasformare un carattere minuscolo in maiuscolo sottraendo 32 al numero che lo codifica. Per esempio, il numero 1234 avrebbe nel codice ASCII la codifica seguente.

50

51 Codifica EBCDIC. Il codice EBCDIC (da Extended Binary Coded Decimal Interchange Code, Codice di scambio decimale codificato in binario esteso) è un codice a 8 bit impiegato in prevalenza dai mainframe IBM. In esso non tutte le 256 posizioni sono occupate, la collocazione delle lettere dell’alfabeto è discontinua e alcuni caratteri del codice ASCII sono assenti (ma vale anche il viceversa). Pertanto non vi è una corrispondenza tra i due codici, cosicché nel collegare personal computer a mainframe IBM si devono utilizzare dispositivi di traduzione specifici.

52

53

54 Codici rilevatori di errori
Quando si trasmettono caratteri codificati mediante stringhe di “0” e “1” attraverso una rete dati, può succedere che uno degli “0” o degli “1” venga modificato da disturbi di trasmissione, trasformandosi nel bit opposto: uno “0” in un “1” o viceversa. È allora utile che il sistema di comunicazione sia in grado di rilevare quando un bit della stringa è stato modificato, in modo da segnalare la necessità di ripetere la trasmissione. Per potere rilevare un cambiamento di un singolo bit, è necessario che nel codice adottato non ci siano due caratteri la cui rappresentazione differisca di un solo bit. Se così non fosse, infatti, il risultato sarebbe la codifica dell’altro carattere e non sarebbe possibile rilevare l’errore avvenuto. Se per esempio si inviassero i bit della codifica ASCII del carattere “A”

55 e si verificasse un cambiamento nella sesta posizione da sinistra, verrebbe inviato il codice del carattere “C” e non vi sarebbe modo di accorgersi che si è verificato un errore. Una possibilità per trasformare il codice ASCII in modo che non vi siano codici che differiscano in una sola posizione consiste nel fare seguire ai 7 bit che codificano un carattere un ottavo bit detto di parità.

56 Esso viene scelto in modo che il numero totale dei bit “1” di qualsiasi codice sia pari o, come anche si dice, che ogni gruppo di 8 bit abbia parità pari (naturalmente si potrebbe anche scegliere l’ottavo bit in modo che il gruppo abbia una parità dispari). Dato che due sequenze di bit che abbiano entrambe parità pari non possono differire per un solo bit (ma almeno per due), ne concludiamo che l’aggiunta di un bit di parità fornisce un codice rilevatore di errori per la codifica dei caratteri. Se, infatti, nell’esempio precedente aggiungiamo il bit di parità ai codici ASCII delle lettere “A” e “C”, otteniamo rispettivamente le stringhe

57 che, come è evidenziato, differiscono in due posizioni (la sesta e l’ottava da sinistra).
Osserviamo che utilizzando n bit si possono costruire 2n sequenze diverse, e quindi codificare 2n caratteri; se tuttavia si aggiunge un bit di parità, il numero di caratteri codificabili si dimezza, a parità di numero di bit impiegati.

58 Codifica delle grandezze fisiche
Oltre ai dati numerici o testuali, un computer può ovviamente elaborare anche grandezze fisiche quali una temperatura o una pressione. Per esempio un computer potrebbe essere collegato costantemente con una termocoppia che gli invia una tensione elettrica proporzionale alla differenza di temperatura tra due punti, in maniera da eseguire determinate operazioni a seconda dei valori di temperatura rilevati. La prima operazione che si deve compiere perché un sistema informatico possa memorizzare, elaborare e trasmettere i dati relativi a una grandezza fisica, è quella di trasformarla in una forma adatta a essere trattata dal sistema stesso. Date le caratteristiche degli attuali calcolatori elettronici, tale forma è quella cosiddetta digitale binaria, nella quale cioè i dati vengono dapprima trasformati in una serie di numeri (ingl. digit), che successivamente vengono espressi secondo il sistema di numerazione binario (forma binaria).

59 Una volta che i dati siano stati così codificati in una opportuna successione di “0” e “1”, essi potranno essere trattati direttamente dai circuiti elettronici del computer. Naturalmente, dopo il trattamento essi subiranno la trasformazione inversa, riassumendo la forma originaria o comunque una comprensibile agli utenti del sistema.

60 Digitalizzazione di una forma d’onda analogica
Digitalizzazione di una forma d’onda analogica. Vediamo su un esempio schematico come sia possibile codificare un segnale analogico, cioè variabile nel tempo in modo continuo, in un segnale digitale, cioè costituito da una serie di numeri (interi), che successivamente sono convertiti in forma digitale. Consideriamo il diagramma seguente, che potrebbe essere per esempio il grafico di un segnale audio analogico o di un’onda di pressione acustica.

61 Per trasformarlo in una serie di numeri si considera un certo numero di punti sull’asse x e sull’asse y. Quindi si segnano sulla curva i punti in cui essa interseca le ordinate alzate dai punti considerati sull’asse x (procedimento detto di campionamento), e si legge sull’asse y l’ordinata dei punti della curva, assegnando a ciascuno di essi il valore più vicino tra i valori discreti considerati sull’asse y (procedimento detto di quantizzazione).

62 In pratica ciò equivale a sostituire una curva continua con una spezzata, per cui si vede che quanto più ravvicinati sono i punti considerati sui due assi, tanto meglio la spezzata approssima la curva. In particolare, se l’asse y è stato suddiviso in 2 intervalli si parla di quantizzazione a 1 bit, se è stato suddiviso in 4 intervalli si parla di quantizzazione a 2 bit, in 8 intervalli a 3 bit e così via. Digitalizzazione di una immagine. Vediamo come sia possibile digitalizzare una immagine, iniziando dal caso più semplice che essa sia in bianco/nero.

63 1. Immaginiamo di sovrapporre alla immagine da digitalizzare una griglia a maglie quadrate (in questo caso di 34 righe e 32 colonne).

64 2. In ogni quadratino della griglia scriviamo “0” se esso è riempito per meno della metà, “1” se è riempito per metà o più.

65 3. Abbiamo così ottenuto 34 numeri binari da 32 bit ciascuno, che permettono di ricostruire l’immagine di partenza riga per riga (ovviamente al crescere del numero dei quadratini della griglia cresce la definizione della digitalizzazione). I singoli elementi che costituiscono l’immagine digitalizzata si chiamano pixel (da picture element), e nel caso di immagini in bianco/nero valgono 0 o 1. Se l’immagine da digitalizzare è a colori, a ogni suo pixel si associa un valore variabile in un intervallo più ampio, che ne codifica il colore (prevalente). Per codificare 8 colori servono 3 bit, per 16 colori 4 bit e così via. In pratica, a ciascun colore si associa un numero esadecimale di 6 cifre del formato #RRGGBB, dove RR rappresenta la quantità del colore fondamentale rosso (Red), GG la quantità di verde (Green), BB la quantità di blu (Blue) presenti in quel colore. Sono possibili in tal modo 2563 = sfumature diverse di colori.

66 La figura seguente mostra i nomi dei 16 colori standard e i loro codici esadecimali.

67 Vantaggi della digitalizzazione
Vantaggi della digitalizzazione. La digitalizzazione di una grandezza analogica comporta diversi vantaggi, qui di seguito illustrati: · possibilità di compressione. Una volta digitalizzati, i testi, i segnali audio e le immagini video e possono venire “compressi”, cioè occupare uno spazio anche molte volte inferiore a quello originario, senza perdita apprezzabile di informazione. La forma compressa è particolarmente adatta per trasmettere velocemente o per memorizzare in spazi ridotti le informazioni, che quando serve vengono “decompresse” in modo assai facile; · integrazione di media diversi. Il fatto di trattare informazioni di natura diversa – quali testi e disegni, brani audio, immagini video – nella stessa forma digitale consente la loro integrazione in prodotti “multimediali” e “interattivi”, dei quali l’esempio forse più conosciuto è costituito dalle diffuse “Enciclopedie multimediali”;

68 · possibilità di manipolazione
· possibilità di manipolazione. Sulle informazioni di tipo digitale sono possibili diversi tipi di manipolazioni, quali per esempio la formattazione automatica di un testo secondo una varietà di parametri (tipo e grandezza del carattere, lunghezza e spaziatura delle righe, giustificazione del margine, divisione in sillabe, ecc.), l’eliminazione di un rumore di fondo in un brano audio, la trasformazione di un colore in una immagine, la generazione automatica di immagini (effetti speciali, attori virtuali nei film); · qualità della riproduzione. Se si duplica ripetutamente una registrazione audio, una videocassetta o una immagine tramite fotocopia, la qualità del duplicato peggiora progressivamente a ogni copia successiva. Invece la duplicazione digitale conferisce al duplicato la stessa qualità dell’originale, consentendo una riproducibilità all’infinito; · crittazione sicura. Le informazioni digitali si possono cifrare in maniera estremamente difficile da decifrare, e quindi si possono trasmettere con elevati margini di sicurezza.

69 utilizzo più efficiente della larghezza di banda
utilizzo più efficiente della larghezza di banda. La trasmissione di segnali radiofonici e televisivi in forma digitale richiede una disponibilità di frequenze inferiore di 4-5 volte rispetto a un'analoga trasmissione in tecnica analogica, e costituisce uno dei rincipali vantaggi della prossima televisione digitale terrestre. Quest'ultima richiede anche una potenza di emissione minore - a parità d copertura - della televisione analogica.


Scaricare ppt "FONDAMENTI DI INFORMATICA I A.A prof. Angelo GALLIPPI"

Presentazioni simili


Annunci Google