Professional Documents
Culture Documents
Leggi n
F V
N>0
Ris= n * n Ris= n * n* n
Scrivi Ris
End
Rappresentazione dei Dati
UD 2
Informazione
Tutto ciò che possiede un significato per l ’uomo e
che viene comunicato o conservato in vista di una
utilità pratica.
Le informazioni si presentano in varie forme:
Caratteri
Numeri
Immagini
Luce
suoni
Ecc…
Trasmissione delle
informazioni
Affinchè 2 entità possano comunicare è necessario che
riescano a capirsi (esempio 2 persone che parlano lingue
diverse).
Allora occorre che siano stabiliti e rispettati:
Il CODICE della trasmissione, cioè le regole secondo
cui viene TRADOTTO il messaggio prima dell ’invio (es.
alfabeto comune e le parole in italiano)
La TECNICA di trasmissione (es. telefono)
Il PROTOCOLLO della trasmissione, cioè le Regole
per uno scambio corretto delle informazioni (es. regole
grammaticali per creare frasi che abbiano un senso
compiuto in Italiano)
Esempio
Giochiamo a carte: a poker
Il codice sono il tipo di carte (francesi)
Il protocollo sono le regole del poker
La tecnica: visualizzazione delle carte
Se decido di giocare a Texas Holdem => modifico il protocollo
regole
Esempio 2
Giochiamo a carte: a briscola
Il codice è diverso (carte napoletane o siciliane)
Il protocollo sono le regole della briscola
Se decido di giocare a scopa => modifico il protocollo
regole
Trasmissione delle informazioni(2)
I caratteri e i simboli che compongono il
Messaggio e che vengono trasformati per
viaggiare sul mezzo trasmissivo sono detti
SEGNALI
I Segnali possono essere:
DIGITALI: se associati a cifre binarie (0,1)
0110011001110011
Comunicazione Digitale
Comunicazione Analogica
Rappresentazione dei dati
Come rappresentare i numeri e le operazioni
nel pc? (sistemi di numerazione)
Come rappresentare i caratteri?
E come rappresentare immagini, suoni,
ecc…?
Rappresentazione dei numeri
Sistemi posizionali.
Es. Decimale, binario, esadecimale, ottale
Infatti:
853= 8*10 2 + 5*101 + 3*100 =800 + 50 + 3
358= 3*10 2 + 5*101 + 8*100 =300 + 50 + 8
Sistema Decimale
B=10 => A={0,1,2,3,4,5,6,7,8, 9 (=10-1) }
Esempio: 20 in binario.
Esercizio
Convertire da decimale a binario i seguenti
numeri:
(15)10
(63)10
(64)10
(1045)10
Esercizio: SOLUZIONE
Convertire da decimale a binario i seguenti
numeri:
(15)10 = (1111) 2
(63)10 = (11 1111) 2
(64)10 = (100 0000) 2
(1045)10 = (100 0001 0101) 2
In windows
Nei sistemi windows è possibile convertire un numero tra i principali sistemi
numerici :
il binario(Bin),
l’ottale (Oct).
Il decimale (Dec)
l’esadecimale (Hex).
Start/Tutti i programmi/Accessori/Calcolatrice
scegliere menu Visualizza/Scientifica.
Rappresentare i caratteri in forma
binaria
Cioè
37
Esercizi
Come si rappresentano i caratteri al PC?
Quanti bit utilizza lo Standard ASCII
Quanti caratteri puo’ rappresentare lo
standard ASCII
Quanti bit utilizza lo Standard Unicode?
Quanti bit prende la rappr. Esadecimale?
Descrivere le caratteristiche di
una immagine digitale
L’immagine digitale è un’immagine bidimensionale
rappresentata da valori numerici.
Fondamentalmente le immagini digitali sono di due tipi (in
base al tipo di rappresentazione):
RASTER (o bitmap): matrice di punti elementari, chiamati pixel
(da picture element).
VETTORIALE: insieme di nodi formanti linee e poligoni a loro volta
uniti in strutture più complesse.
Parentesi: Concetti di base
40
Risoluzione
Esempio i mosaici
43
Immagine Bitmap o Raster (2)
Sono costituite da pixel
Consentono una transizione graduale del colore
Se ingrandite si perde in qualit à
Occupano molto spazio
Possono essere salvate in diversi formati:
Compressione Lossless (senza perdita): BMP, TIFF,
PNG, RAW, ecc…
Compressione Lossy (perdita): JPEG, GIF (256 colori)
Esempi bitmap
Immagine
2. Un bel frutto
Lunguaggio macchina
Un elaboratore non può però gestire
informazioni ambigue
Il linguaggio macchina è l’unico linguaggio
capito dal computer:
risulta veloce nell’esecuzione
ma ha lo svantaggio di una difficile e lunga
scrittura della sequenza di algoritmi (programma)
e della loro messa a punto.
Linguaggi di programmazione
Non è possibile realizzare traduttori dal linguaggio
naturale al linguaggio macchina => servono i
linguaggi di programmazione
essi sono comprensibili all’uomo e, tramite un
traduttore, vengono tradotti in linguaggio macchina
Linguaggio Naturale (Algoritmi)
Linguaggio Programmazione
Traduttori (compilatori, interpreti)
CPU
Esercizi
Quali sono gli elementi del Linguaggio
macchina?
Il linguaggio naturale può essere usato per il
computer?
L’uomo programma oggi col linguaggio
macchina? Con cosa?
1.0.3.2 Distinguere il ruolo dei
connettivi logici (NOT, AND, OR)
Consideriamo le frasi:
A=“Ho fame” B=”Ho i soldi”
Queste affermazioni possono vere o false
I connettivi permettono di legare i due
suddetti enunciati e di crearne un terzo.
Esempio:
Se “ho fame” e “ho i soldi” allora “Vado al
ristorante” => A and B = C
Connettivo AND
E vero solo se i due input sono veri.
Tabella di verità:
Posso andare al ristorante
solo se ho i soldi e ho
anche fame
Tabella di verità:
Fame Soldi Ristorante
0 0 0
Anche se non ho fame, ma
ho i soldi vado al
0 1 1 ristorante e viceversa,
anche se non ho i soldi
1 0 1 ma ho vado al ristorante
1 1 1
0 0 0
0 1 1 In Algebra di Boole
1 0 1
1 1 1
Connettivo NOT
L’operazione NOT ha una variabile di input ed una
variabile di output.
Il valore della variabile di output è l’opposto di quella
di input
A Not A
0 1
1 0
In Algebra di Boole
Ripasso
A cosa serve AND?
A cosa serve OR?
A cosa serve NOT?
1.0.3.3 Distinguere fra linguaggio
macchina e linguaggi procedurali
I linguaggi di programmazione sono di due tipi:
basso livello:
linguaggi assemblativi orientati alla macchina (comunicano
direttamente con il computer utilizzando il "linguaggio
macchina");
il "linguaggio macchina“ è l’unico linguaggio compreso dal
computer
alto livello:
orientati all’uomo
fanno uso di uno pseudo linguaggio umano, utilizzando allo
scopo codici operativi in lingua inglese.
Ogni linguaggio di programmazione ha bisogno di un
traduttore
I Traduttori: Compilatori e
Interpreti
trasformano un programma sorgente (espresso in
un linguaggio di programmazione), in un programma
oggetto (tradotto in codice binario).
dipendono dal linguaggio di programmazione e
dall’architettura del computer.
Linguaggi
Linguaggi ad
ad Alto
Alto Livello
Livello
(Orientati
(Orientati all’uomo)
all’uomo)
C,
C, C++,
C++, Java,
Java, Visual
Visual
Basic,
Basic, Pascal, ecc…
Pascal, ecc…
Compilatori
Compilatori oo Interpreti
Interpreti Traduttore
Linguaggio
Linguaggio Macchina
Macchina
(codice
(codice Binario)
Binario)
Compilatori e Interpreti: le fasi
I Compilatori:
trasformano un programma “sorgente” (scritto in linguaggio di
programmazione) in un file “oggetto” (tradotto in linguaggio macchina
ma non ancora utilizzabile).
Per rendere “eseguibile” il risultato ottenuto è necessario che sia
ulteriormente trattato da un programma definito “linker” (o link editor),
che collega, tra loro, i vari moduli tradotti ed i riferimenti e sterni (ad
esempio librerie di sistema), creando il programma eseguibile .
Gli Interpreti:
leggono una istruzione alla volta
=> la traducono in codice macchina
=> e la eseguono => traduzione ed esecuzione sono contemporanei
Linguaggi Assemblativi ed
assemblatori
I linguaggi assemblativi:
Sono linguaggi di tipo simbolico in quanto utilizzano
dei nomi (simboli) per designare il codice operativo e
le variabili che compongono il programma.
Linguaggi
Linguaggi aa bassobasso Livello
Livello
Gli Assemblatori sono i traduttori dei linguaggi
assemblativi. ((orientati
orientati alla
alla macchina)
macchina)
Assembly
Assembly
L’Assembly (assemblatore):
è il primo linguaggio informatico utilizzato, Assemblatore
Assemblatore
è comprensibile agli utilizzatori umani,
ma è talmente simile al linguaggio macchina che
rimane legato al processore su cui viene sviluppato il
programma Linguaggio
Linguaggio Macchina
Macchina
Tale programma non potrà essere eseguito su (codice
(codice Binario)
Binario)
computer con processori diversi.
Alcuni linguaggi di
programmazione
Fortran (FORmula TRANslation): uno dei primi linguaggi di alto
livello ad uso scientifico
COBOL (COmmon Business-Oriented Language) ossia,
letteralmente, "linguaggio orientato alle applicazioni commercia li
comuni"
C, per uso ingegneristico. Usato per scrivere sistemi operativi
come Linux
Java, per applicazioni web
PHP, per applicazioni web
PASCAL, per uso didattico
BASIC, inizialmente per applicazioni didattiche e scientifiche.
Oggi Visual Basic
Scrivere un programma con
Pseudo linguaggio
È un modo alternativo per rappresentare gli
algoritmi
Le istruzioni sono descritte tramite frasi
rigorose
Si usano parole chiave, operatori e nomi di
variabili
Non è usabile direttamente => va tradotto in
un linguaggio di programmazione
Esempio di pseudo linguaggio
Calcolare l’area di un quadrato dato il lato.
Inizio
PSEUDO LINGUAGGIO
Leggi Lato
PROGRAMMA Area
Area = Lato * Lato INIZIO
Leggi (Lato)
Scrivi Area Area Lato*Lato
Scrivi (Area)
Fine FINE
Esercizi
Il linguaggio C è un linguaggio di alto livello?
Differenza tra Interpreti e Compilatori?
Cosa sono i Flow Chart?
L’assembly è un linguaggio di alto livello?
I compilatori traducono un file sorgente in
codice oggetto e quindi con il Linker si
genera il file eseguibile?
FINE
U.D. Algoritmi e Rappresentazione
dell’Informazione