



















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti completi di informatica per la comunicazione con esercizi Algoritmi.
Tipologia: Appunti
1 / 27
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




















Informatica deriva dal francese informatique , in quanto essa si occupa degli aspetti che riguardano gli aspetti di elaborazione di informazioni. L'informazione è codificata attraverso simboli. I vantaggi dell'elaborazione automatica sono:
ICT : Information & Communication Technology. Collegare gli elaboratori tra di loro, quindi c'è stata una convergenza fra tecnologie dell'informazione e telecomunicazioni, dando vita all'ICT.
Breve storia degli elaboratori automatici L'automatizzazione delle funzioni aritmetiche si sono formati già nell'antichità, come con l’uso dell’abaco. I primi modelli di calcolo automatici avvengono nel XVII secolo come il regolo calcolatore, Pascalina → essi svolgono solo un compito quelli matematici. Nell'800 si pensano ad elaboratori universali, ovvero che non svolgono più un unico compito. Babbage progettò il primo elaboratore con un'unità di memoria per memorizzare i dati e un'unità di calcolo. Ada Lovelace scrisse i primi programmi che potevano risolvere dei problemi ed essere utilizzati per la probabile macchina. Boole inventò l' algebra booleana , l'espressione può avere solo due valori vero o falso. Nel 900 arrivano i primi risultati concreti. Il matematico Alan Turing ideò un modello teorico, detto macchina di Turing. Il primo prototipo di macchina venne ideato in Germania nel '41, detta Z1. A partire dal 1943 vengono progettati modelli di calcolatore elettronico. EDVAC: Electronic Discrete Variable Computer, primo elaboratore funzionante; Von Neumann lavorò a questo progetto, oltre a costruire la macchina costruiscono anche lo schema delle componenti principianti della macchina e come devono comunicare fra loro. Anni '50: introduzione di transistor. Anni ’60: produzione dei primi microprocessori (che occupano meno spazio), basati su circuiti integrati. Negli anni ‘70 diffusione dei PC: iniziano ad essere utilizzati da tutti i cittadini. Negli anni ‘80 ci fu un cambio interazione tra macchina e utente → nascita interfaccia grafica.
Macchina di Turing Alan Turing è considerato il padre dell'informatica. La Macchina di Turing è un modello teorico di elaborazione automatica; Turing voleva rendere automatico il processo di una persona quando svolge i calcoli. Elementi che costituiscono la macchina di Turing:
Il funzionamento della macchina di Turing è un funzionamento meccanico guidato da un insieme di regole in base allo stato della testina e il simbolo letto. La regola indica: il simbolo da scrivere nella cella, il cambio di stato dell'unità di controllo e il movimento della testina (stare ferma, a sinistra o a destra).
Secondo Turing è possibile costruire una macchina universale , una macchina che imita il comportamento di qualunque macchina di Turing. Essa ha due tipi di input: da una parte i dati e dall'altra le istruzioni. Ci sono dei problemi che non sono risolvibili. Ci sono modelli alternativi che possono risolvere i problemi che la macchina di Turing non è in grado di fare? I modelli sono equivalenti che risolvono gli stessi problemi, Turing equivalenti. Tesi Church-Turing: l’insieme dei problemi risolvibili tramite metodi meccanici equivale all’insieme dei problemi risolvibili dalla macchina di Turing.
Elaborazione è divisa in tre parti:
Diagrammi di flusso I Diagrammi sono forme grafiche per definire le fasi dell'elaborazione. Di flusso: descrivere i flussi dell'elaborazione. I blocchi rappresentano le fasi di un algoritmo, che sono collegati fra di loro con linee di flusso, che servono per descrivere il flusso dell'elaborazione. C'è un solo blocco di inizio (ovali), questo perché serve per garantire il determinismo. Possono esserci più blocchi di fine (ovali)
Blocco operazione (rettangoli): operazione svolta, descritta all’interno del blocco. Blocchi di input (parallelogramma) rappresentano la lettura. Blocchi di output (foglio) rappresentano la scrittura.
Un algoritmo deve prevedere la memorizzazione di dati (in input, in output, dati intermedi). Il dato è una quantità di informazione memorizzabile e si può elaborare con una singola operazione. Per memorizzare
Verificare l'uguaglianza tra due valori (==) confrontare il contenuto di una variabile con qualcosa d'altro, es. x == y → Se x e y valgono 5 → vero; Se x vale 3 e y vale 5 → falso Operatore di disuguaglianza tra due valori (!) , es. x!=y → Se x vale 3 e y vale 5 → vero; Se x vale 3 e y vale 3 → falso Per i numeri ci sono i numeri di ordinamento < oppure > verifica se il primo valore è minore oppure maggiore del secondo valore, es. x<y Se x = 3, y = 5 → vero; Se x = 5, y = 5 → falso; si può usare anche <= e >= Operazioni logiche che cambiano i valori logici e altre che servono per combinare dei valori. Operazioni logiche minimali:
Esempio 1: !(x==y) : vera quando x e y hanno valori differenti → x = 5 e y = 10: !(x==y) ha valore vero si nega quello all'interno delle parentesi (da falso a vero) → se x = 10 e y = 10: !(x==y) ha valore falso
Esempio 2: (x>=100) & (x <y): vera quando x ha un valore:
=
Esempio 3: (x>100) | (x <y) vera quando
Tipologie di strutture di controllo:
Diramazioni : Quando si arriva al blocco di controllo, se la condizione è vera si segue una strada se è falsa un'altra. Nei linguaggi di programmazione diramazione → costrutto IF-THEN-ELSE
→ ci può essere un'altra diramazione, una operazione, ecc…
Esempio 1 Un algoritmo che: Legge due numeri e Restituisce il numero massimo
Esempio 2 Se bilancio >= 0 attivo Se bilancio < 0 passivo
Esempio 3 Scriviamo un algoritmo che legge tre numeri e restituisce il numero massimo → 3 numeri coinvolti quindi tre diramazioni
Esempio 4 Legge un numero in ingresso Se n< 100, stampa in output n<100 Se n≥100, stampa in output “n ≥ 100”
Esempio 2: Scrivere un algoritmo che usando solo le operazioni aritmetiche di base ● Legge un dato x ● Calcola 2 𝑥
2*x volte Potenza >=1 per contenere un valore "corretto" e non crea problemi
X ← x-1 ogni volta che faccio una moltiplicazione 2 tolgo un valore x>=1 oppure x> x=1 vero p= Alla variabile p assegna 2 ← 1 Variabile x -1 → 1 -1 = 0 X = 0 falso
Esempio 3: Scrivere un algoritmo che ● Legge la base x e l’esponente y ● calcola il valore 𝑥𝑦
x * y volte La variabile y ci dice quante volte fare l'iterazione
Esempio 4: Scrivere un algoritmo usando l'iterazione per ● la lettura di dieci numeri ● la copiatura nel vettore v dei numeri, nelle celle 𝑣𝑜,v1 ,…, v
Variabile i ← 0 (primo indice dove si memorizza il dato V0)
Quando si arriva a 9 finiscono le celle
Esempio 6: Scrivere un algoritmo per calcolare il valore massimo in un vettore v di 10 celle Max ← 𝑣 0 perché bisogna trovare il massimo tra i vettori Secondo blocco di controllo 𝑣𝑖> max per vedere se il vettore è maggiore o minore del max precedente. Max ← 𝑣𝑖 se condizione vera in quanto più alta Prima iterazione sempre falsa
Esempio 5: Scrivere un algoritmo per determinare la somma dei numeri contenuti in un vettore di 5 elementi (v0 , v1 ,…, v4)
h ← 0 perché non altera il risultato essendo una somma I ← 0 perché si inizia dalla cella 0 I ← i + 1 perché passo alla cella successiva Es. 0 <= 4 vero 8 + 0 = 8 (h) 0 +1 --> 1(i) → vettori 1<= 4 vero 8 + 2 =10 (h) 2 ← 1 + 1 (i) 2 <= 4 vero 10 + 12 = 22 (h) 3 ← 2 +1 (i) 3<= 4 vero 22 + 3 =25 (h) 4 ← 4 +1 (i) 4<=4 vero 25 + 5 = 30 (h) 5 ← 4 +1 (i) 5 <= 4 falso Output 5
Per calcolare la media aritmetica? H ← h/i i sarà 5 (numero di valori che si sono sommati) →
Esempio 7: Scrivere un algoritmo per determinare la somma dei primi 5 numeri > 10 di un vettore T ← 0 variabile che indica quanti valori > di 10
T <=4 perché al quinto numero "finiscono i posti" H ← h + 𝑣𝑖 T ← t +1 poiché aggiungo il numero tra quelli maggiori di 10
Esempio 8: Scrivere un algoritmo che: dati due vettori x, y di 5 celle, scrivere in un vettore v di 10 celle: ● Il contenuto di x nelle prime 5 celle di v ● Il contenuto di y nelle ultime 5 celle di v
X0 X1 X2 X3 X
Y0 Y1 Y2 Y3 Y
V0 V1 V2 V3 V4 V5 V6 V7 V8 V Vi ← Xi Vi+5 ← Yi perché passa alla seconda parte del vettore V
● Memoria primaria , quella utilizzata dalla CPU ● Memoria secondaria , affiancata a quella primaria ● Periferiche di input e output ● Bus di comunicazione ● Orologio di sistema ● Case : involucri che ricoprono le componenti interne alla macchina ● Alimentatore ● Scheda madre : circuito stampato che ha diversi alloggiamenti al suo interno in cui si inseriscono i vari componenti. Permette la comunicazione tra le componenti: bus.
Il processore La CPU (Central Processing Unit) è l’unica componente di elaborazione ed esegue istruzioni in linguaggio macchina. Il ciclo macchina avviene in modo sequenziale (a ogni impulso inizia un ciclo macchina e viene fatta solo un'operazione) e ciclico. Quando inizia il ciclo la CPU non conosce subito l'istruzione, ma deve leggerla nella memoria centrale. La CPU è costituita da circuiti integrati in cui ci sono degli transistor. I transistor quando riceve energia possono trasmettere in uscita due segnali: tensione alta o tensione bassa (no corrente) → due perché il linguaggio è binario. I numeri di transistor sulla cpu continuano ad aumentare, migliorando la macchina. Legge di Moore : la quantità di transistor su una CPU raddoppia ogni due anni. Evoluzione di elaborazione e capacità di memorizzazione La CPU ha due parti fondamentali: ● ALU (Arithmetic Logic Unit): svolge operazioni aritmetiche e logiche (logiche → legate alle condizioni dei diagrammi o quelli booleani). Dotata di alcuni registri per la memorizzazione dei dati di input/output ● Unità di controllo : controlla la fase di elaborazione. Unità di controllo coordina il funzionamento della CPU e trasferimento dati dalla memoria. La macchina deve usare il registro PC e IR La CPU deve avere delle piccole memorie, dette registri, per lavorare: ● IR (Instruction Register): registro della CPU che immagazzina l'istruzione in fase di elaborazione, la memoria copia quello scritto dell’istruzione da eseguire ● PC (Program Counter): al proprio interno regista un indirizzo di memoria che contiene l'istruzione che si deve eseguire ● PSW (Process Status Word)
Fasi del ciclo macchina:
La velocità dipende dalla frequenza degli impulsi → hertz unità di misura degli impulsi, i gigahertz vengono inviati miliardi di impulsi. P rocessori multi-core (chip con due o più CPU integrate) hanno più di una cpu e svolgono le operazioni in modo parallelo.
La memoria La CPU ha bisogno di una memoria per comunicare. Dispositivo di memorizzazione: immagazzinamento dati e istruzioni utili per l’elaboratore. Caratteristiche fondamentali di una memoria generica: ● velocità della memoria ● capacità di memorizzazione ● memorizzazione permanente o temporanea ● costo della memoria
Tipi di memoria: ● registri interni alla CPU ● memoria centrale : memoria temporanea o di lavoro oppure memoria RAM (Random Access Memory, memoria ad accesso casuale oppure accesso dirett o). Per accedere alla cella bisogna specificare l'indirizzo. È volatile, deve essere alimentata da energia elettrica ● memoria di massa (o secondaria): area di memorizzazione permanente ● di sola lettura o ROM (Read Only Memory )
La memoria centrale o memoria RAM prevede l'accesso all'accesso casuale, che si accende in modo diretto ad una cella tramite l'indirizzo. Qualunque sia la cella il tempo di accesso è sempre lo stesso, quindi detto costante. Caratteristiche della memoria centrale:
Le memorie hanno altri tipi di accesso: ● Accesso sequenziale : si fa una sequenza di operazioni predefinite che per arrivare in una zona di memoria si deve passare da altre zone. Per leggere un dato il tempo è variabile, dipenda dal punto dove è posizionata la testina e la zona che si deve raggiungere. Esso è tipico dei nastri. ● Accesso misto : serie di accessi seguiti da una ricerca sequenziale e il tempo varia a seconda di dove si trova il dato, dipende da dove si deve recuperare il dato e dove si trova la testina. Esso è tipico dei dischi. ● Accesso associativo : utilizzata dalla memoria Cash
Memoria ROM (Read Only Memory) : ha scopi limitati, è una memoria di sola lettura ed è permanente. Contiene delle informazioni che servono alla macchina quando è in fase di avvio (bootstrap).
La memoria secondaria o di massa è nata perché bisognava coprire i problemi della memoria centrale, in quanto essa volatile e con capacità limitata. Caratteristiche memoria secondaria: ● Permanente ● Grande capacità, si possono memorizzare moltissimi dati ● Modificabile Capacità di memorizzazione dei dispositivi di memoria: ● Memoria centrale → attualmente si arriva ad alcuni GB ● Memoria secondaria → centinaia di GB o TB
Ci sono diversi dispositivi di memorizzazione di massa e hanno diverse caratteristiche: ● Persistenza dei dati ● Tempo di accesso maggiore rispetto alla RAM ● Minor costo per bit
Cache → dati che il dispositivo raccoglie Memoria Cache: Consideriamo un dispositivo di memoria M: ● Una cache per M è un dispositivo → Con capacità inferiore rispetto a M e Maggiore velocità rispetto a M ● Nell’accesso ai dati in M → Copia di una parte dei dati nella cache, qui la CPU guarda per prima se c'è un dato, diminuendo il tempo Principi di località, organizzano la gerarchia e indicano quali dati devono stare nella memoria cache, ci sono due tipi: ● Località spaziale : se un programma accede ad una cella di memoria, nel prossimo accesso macchina avverrà anche un accesso alle celle vicine ● Località temporale : se un programma accede ad una cella, nel nuovo accesso avverrà nella medesima cella. L’aggiornamento della memoria cache di M segue una politica di aggiornamento: ● accesso a cella x non contenuta nella cache di M ● ricerca in M ● spostamento del dato nella cache, insieme ad altri dati nelle vicinanze (località spaziale) ● dati eliminati dalla cache → usati nel momento più lontano (località temporale)
Accesso associativo : esso è dipendente dal valore che si sta cercando, tempo di accesso costante per ogni cella, usato nelle memorie cache, questo equivale a un accesso diretto, ma più veloce. Esso è usato nelle memorie cache.
Le periferiche Componenti che permettono di comunicare con l'esterno; ci sono due tipologie: ● Periferiche di input ● Periferiche di output Le periferiche sono controllate da interfaccia: scheda collegata a bus di sistema. Esse internamente hanno delle schede che sono collegate alla scheda madre, esternamente queste schede hanno delle porte di comunicazione. Ci sono diversi connettori: USB, VGA, HDMI, … Le periferiche di input sono: ● tastiera ● strumenti di puntamento : servono per interazione con il computer, il primo di questi strumenti è il mouse, altre son trackball, touchscreen e touchpad ● scanner esse servono per ricevere informazioni in ingresso. Le periferiche di output sono: ● schermo : rappresentazione di informazione finita e i valori dell'informazione → discretizzazione. Elemento rappresentato come una serie di elementi minimali in una griglia. Le immagini discretizzate sono costituite da punti: pixel (picture element). I pixel sono costituiti da cristalli liquidi. Ogni pixel è suddiviso in tre piccoli parti (rosso, verde, blu, detti subpixel) e permette la formazione dei colori, ogni subpixel controlla un colore, ci sono 256 possibili gradazioni. Ogni pixel ha 256256256= 16.777.216 colori. Profondità di colore : numero colori utilizzati per ogni pixel. Risoluzione di uno schermo : numero massimo di pixel rappresentabili: n. pixel orizzontali * n. pixel verticali Dimensione dell’immagine visibile in pollici: diagonale del monitor Rapporto d’aspetto : rapporto tra base e altezza ● stampanti , uso della discretizzazione, immagine rappresentata da punti discreti ● casse.
La GPU supporta la CPU ed evita che essa sia sovraccarica di calcoli. Frequenza di aggiornamento : il contenuto dello schermo deve essere aggiornato. La frequenza cambia in base al contenuto. Angolo di visibilità : misura quanto la visione è buona quando l'utente si sposta
Tre tecnologie principali delle stampanti: ● Getto d'inchiostro : diffusa soprattutto in ambito domestico, il foglio scorre sotto una testina che applica l'inchiostro. ● Laser : usano tecnologia simile alle fotocopiatrici. I punti delle immagini sono definiti dal raggio laser che passa sul foglio, i punti del rullo caricati elettrostaticamente. L'inchiostro, detto toner, è fatto in polvere. Tramite il riscaldamento i punti vengono trasferiti sul foglio. ● A impatto Discretizzazione: valutare la qualità del processo, quanto è fedele all'immagine che deve essere stampata. La risoluzione (misura standard), ovvero la densità di punti stampati sul foglio, si misura con il dpi (dots per inch). La velocità di stampa, numero di pagine che si stampano in un certo tempo, si misura in ppm (pages per minute) , questa misura non è standardizzata, perché le pagine non sono tutte uguali e perché si può gestire la qualità di stampa.
Lo Scanner è una periferica di input, viene usata la discretizzazione. Lo scanner permette di acquisire testi e immagini di un documento cartaceo. Il foglio viene diviso in puntini e questi devono contenere un colore. Lo scanner utilizza un meccanismo ottico: una luce colpisce il foglio, bisogna vedere se il puntino riflette la luce o meno. La qualità del monitor riguarda la risoluzione, con l'unità di misura ppi (points per inch). Qualunque testo acquisito per l'elaboratore è sempre un'immagine. Dopo la scansione vengono applicate le tecnologie OCR ( Optical Character Recognition ), ovvero un software che riconosce i punti come i caratteri corrispondenti.
Esistono varie tipologie di software e ci sono due famiglie principali: ● Software applicativo : costituito da tutti i programmi e applicazioni per risolvere problemi specifici ● Software di base o sistema operativo : software che ha come scopo quello di gestire l'elaboratore Le funzioni che ha il sistema operativo sono due: ● Gestisce tutte le componenti della macchina, come CPU, periferiche…, per far si che il computer funzioni nel miglior modo possibile ● Semplificare l'uso della macchina e di tutte le sue componenti, per ognuna delle risorse viene applicata la virtualizzazione o astrazione. Questo viene fatto a beneficio per l'interfaccia per l'utente e per i programmi applicativi Elementi del sistema operativo: ● Gestore della CPU: Nucleo (kernel) ● Gestore della memoria centrale ● File system, memorizzazione di massa ● Gestore della rete ● Interprete dei comandi, interfaccia con cui si interagisce con la macchina ● Gestione delle periferiche Sistemi operativi: Microsoft Windows; Unix; Linux; Mac OS
Gestione della CPU I primi elaboratori avevano un interazione diretta e il lavoro della Memoria RAM era tutta dedicata a un solo programma in esecuzione ( sistemi monoprogrammati). Erano privi di sistemi operativi. Uso di
dei meccanismi di memorizzazione. Tipologie di elementi usa il file system: cartelle (contenitori di altri elementi) e file (contengono dati). Il file system utilizza cartelle e file per costituire una struttura ad albero è una struttura logica gerarchica: la radice dell'albero è una cartella che contiene tutti i dati che stanno sul computer; i file sono le foglie è il punto finale della gerarchia. I file possono essere identificati con il nome, il percorso assoluto specifica il percorso che si fa dalla radice dell'albero fino a un determinato file (Pathname). Ci può essere anche il percorso relativo ovvero il percorso che parte dalla cartella corrente. Il file system memorizza alcune caratteristiche fondamentali di un file:
Gestione delle periferiche L'obiettivo del gestore è quello di offrire agli utenti finali delle periferiche virtuali. I gestori offrono dei comandi di alto livello, virtualizzano la comunicazione con le periferiche, anche le applicazioni si affidano al sistema operativo. I conflitti di utilizzo si hanno quando le risorse sono condivise (es. stampanti di rete condivise con più utenti). Il driver è una componente software (già compresa nel sistema oppure viene aggiunto) e gestisce la comunicazione di una periferica. Esso nasconde i dettagli del controller, fornisce comandi di alto livello e traduce dei comandi astratti in comandi specifici.
Interfaccia utente Interazione tra utente e macchina. Anni '70-'80 passaggio da un interazione all'altra: interazione avveniva con la linea di comando , per vedere qualcosa si deve digitare un comando, se il comando è corretto la macchina restituisce la soluzione in un elenco testuale. Questo modello è troppo complesso per gli utenti quindi si progettano delle interfacce GUI; l'interazione cambia e avviene tramite oggetti, ovvero finestre (circoscrizione dell'interazione), icone WIMP (windows icon mouse pointing). Metodi di autenticazione degli utenti:
Software maligni Applicazioni o programmi il cui obiettivo è infiltrarsi in un dispositivo sfruttando le debolezze di un sistema. La famiglia dei software maligni è detta Malware , esistono vari tipi:
Modalità in cui i dati vengono rappresentati sui dispositivi. Ci sono diverse tipologie di dati:
Il codice binario rappresenta tutte queste tipologie di dati. La codifica rappresenta una determinata informazione, bisogna rappresentare un legame (corrispondenza biunivoca) tra i possibili valori che si vogliono rappresentare e un insieme/sottoinsieme di numeri naturali. Non ci devono essere possibili ambiguità. La codifica viene definita per facilitare la comunicazione tra dispositivi e quindi vanno definite degli standard basati sulle convenzioni di comunicazioni. Se non ci sono delle regole condivise ci sono dei problemi e delle ambiguità e delle incongruenze. I dispositivi fanno una doppia operazione: codifica e decodifica. Gli elaboratori usano il codice binario e quindi devono associare i dati a una successione delle sequenze di 0 1. Tutte le codifiche devono avere la stessa lunghezza, es. K=1 (2^1) → 1, 0 ; K=2 (2^2) → 00, 01,
10, 11; … Se ho k bit posso costruire una codifica univoca per al più 2 𝑘 entità.
Teoria dell'informazione è l'ambito che studia la codifica e la decodifica. Ingegnere Claude Shannon studia questi aspetti nel 1948. Misura della quantità di informazione contenuta in un supporto.
Informazione analogica e digitale L'informazione viene codificata (anche codificare le relazioni tra dati) in due modi diversi:
Rappresentazione binaria di informazione non numerica L'elemento che viene rappresentato è fatto dai simboli dell'alfabeto (codifica univoca). Individuare la codifica del testo:
Codifica degli immagini Rappresentazione digitale delle immagini.Vanno considerati i colori e la forma dell'immagine. La rappresentazione del colore utilizza la codifica RGB , questa codifica additiva , con combinazione colori con varia intensità da 0 a 255; poiché al massimo dei colori ho il bianco per crearlo 255, 255, 255. Codifica CMYK (Ciano, magenta, giallo, nero) ed è un modello sottrattivo , quando hanno intensità nulla hanno si ottiene il bianco. I primi tre colori al massimo non
basati sull'informazione ridondante. Meccanismi di protezione:
Compressione L'informazione approssimata ma che richiede minor spazio di memoria. Si parte da una certa codifica e si ricodifica quell'informazione occupando meno spazio oppure un'approssimazione dell'informazione. L'efficienza della compressione si misura un rapporto tra file compresso e File non compresso → rapporto di compressione. Esempio Testo da codificare su alfabeto A,C,G,T A: 50 occorrenze C: 20 occorrenze G, T :10 occorrenze
Codifica 1 A: 00 C: 01 G: 10 T: 11
Codifica 2 – più efficiente A: 0 C: 10 G: 110 T: 111
Tecniche di compressione senza perdita di informazione, detta lossless ; codificare stesso messaggio: ● Processo reversibile, non si perde qualità e si può tornare sempre indietro ● Tecniche statistiche → frequenza di simboli ● Sostituzione → ripetizione di simboli ● Compressione non elevata ● WinZip
Tecniche di compressione con perdita di informazione, detta lossy : ● Processo irreversibile ● Eliminazione informazione non rilevante ● Non si rappresenta realmente la stessa immagine, si usano per video, audio e immagini ● Elevati rapporti di compressione ● JPEG, MP3, MP
Rappresentazione dei numeri La rappresentazione dei numeri è anche detta codifica posizionale. Serie di cifre che assumono valori in funzione alla loro posizione. Le cifre sono elevate a potenze della base:
(248) 10 = 2 * 10^2 + 4 * 10^1 + 8 * 10^0
(10010) 2 = 1 * 2^4 + 0 * 2^3 + 1 * 22 + 1 * 2^1 + 0 * 2^0 = (18) 10
Codifiche posizionali rilevanti: ● Codifica binaria (base 2); simboli →{0,1} ● Codifica decimale (base 10); simboli usati →{0,1,2,3,4,5,6,7,8, 9} ● Codifica ottale (base 8); simboli usati →{0,1,2,3,4,5,6,7} → Compattamento maggiore (2^3) ● Codifica esadecimale (base 16); simboli usati → {0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E,F} → compattamento maggiore (2^4)
Se la cifra più a destra è 1 avrò un numero dispari, se è 0 pari in base decimale.
Codifica binaria: rappresentazione dell’informazione nell’elaborazione Il bit è l'unità minima di informazione, permette di distinguere tra due informazioni-possibilità → incertezza tra due configurazioni. Ci sono informazioni più grandi e quindi sono nati multipli del bit: Il Byte è una sequenza di 8 bit → 0 a 2^8 - Kilobyte (KB) 2^10=1.024 byte, si usa l'approssimazione (circa mille byte), quindi si dice circa mille byte, metodo usato anche per le altre misure Megabyte (MB) 2^20=1.048.576 byte (circa un milione di byte) Gigabyte (GB) 2^30=1.073.741.824 byte (circa un miliardo di byte) Terabyte (TB) 2^40=1.099.511.627.776 byte(circa mille miliardi di byte)
Qual è la rappresentazione decimale del numero binario "111"? 12^0 + 12^1 + 1*2^2 = 7 Qual è la rappresentazione in binario del numero decimale "11"? 11/2=5 resto 1 ; 5/2=2 resto 1 2/2= resto 0 1/2= 0 resto 1 → 1011
La telematica è la fusione dell'informatica e le telecomunicazioni; si capisce che i dispositivi potevano trasmettere a distanza informazioni e nasce la rete di calcolatori, ovvero insieme di dispositivi interconnessi. La rete dipende dall'estensione e ce ne sono diverse: ● Reti PAN sono reti personali, numero di utenti molto limitato ● Reti LAN sono reti locali, usati da istituzioni o aziende ● Reti MAN sono reti metropolitane, estensione di una grande città ● Reti WAN sono reti geografiche, estensione regionale o nazionale Distinzione del mezzo in cui la rete viaggia: ● Mezzi guidati , dati viaggiano via cavi. Uso di cavi telefonici (Velocità: 200 Mbps) oppure fibre ottiche (Velocità: 10 Gbps) ● Mezzi non guidati , segnale irradiato nell'etere come Wi-Fi o rete telefoni mobili
Tecnologia DSL (Digital Subscriber Line): la linea telefonica trasmette dei segnali, la prima parte delle frequenze erano usate sia per la voce sia per i dati. Poi si è scoperto che ci sono altre frequenze: si potevano trasmettere altro su altre frequenze più potenti e quindi usato solo trasmissione di dati → due vantaggi: usare più dispositivi e aumento velocità di comunicazione. Si è notato che gli utenti domestiche