ECDL modulo 1 ud1: algoritmi rappr informazione

67
UD1 U.D. Algoritmi e Rappresentazione dell’Informazione Prof. Fabio Cantaro

description

 

Transcript of ECDL modulo 1 ud1: algoritmi rappr informazione

Page 1: ECDL modulo 1 ud1: algoritmi rappr informazione

UD1

U.D. Algoritmi e Rappresentazionedell’Informazione

Prof. Fabio Cantaro

Page 2: ECDL modulo 1 ud1: algoritmi rappr informazione

Obiettivi Questo modulo permetterà al discente di comprendere i concetti fondamentali delleTecnologie dell’Informazione e della Comunicazione (ICT) ad un livello generale conoscere le varie parti di un computer, quindi, sar à in grado di :

Comprendere cosa è l’hardware, conoscere i fattori che influiscono sulle prestazioni diun computer e sapere cosa sono le periferiche.

Comprendere cosa è il software e fornire esempi di applicazioni di uso comune e disistemi operativi.

Comprendere come vengono utilizzate le reti informatiche e cono scere le diversemodalità di collegamento a Internet.

Comprendere cosa sono le Tecnologie dell ’Informazione e della Comunicazione (ICT) efornire esempi della loro applicazione pratica nella vita quotid iana.

Comprendere le problematiche di igiene e sicurezza associate al l’impiego dei computer.Riconoscere importanti problematiche di sicurezza informatica a ssociate all’impiego dei

computer.Riconoscere importanti problematiche legali relative al diritto di riproduzione (copyright)

e alla protezione dei dati associate all ’impiego dei computer.

Page 3: ECDL modulo 1 ud1: algoritmi rappr informazione

Algoritmo: definizione

In informatica, con il termine algoritmo siintende un metodo per la risoluzione di unproblema adatto a essere implementato sottoforma di programma.

Dunque, più dettagliatamente esso è:“una sequenza logica di istruzioni elementari(univocamente interpretabili) che, eseguite inun ordine stabilito, permettono la soluzione diun problema in un numero finito di passaggi ”.

Page 4: ECDL modulo 1 ud1: algoritmi rappr informazione

Proprietà algoritmi

la sequenza di istruzioni deve essere finita; essa deve portare ad un risultato; le istruzioni devono essere tutte eseguibili

dall’esecutore; le istruzioni devono essere espresse in modo

non ambiguo.

Page 5: ECDL modulo 1 ud1: algoritmi rappr informazione

Esempio: somma di duenumeri digitati dall’utente

INIZIOa) Ci vogliono i due numeri interi (ingredienti);b) Acquisisci il primo numero dalla tastiera;c) Acquisisci il secondo numero dalla tastiera;d) Somma i due numeri;e) Mostra il risultato sullo schermo.

FINE

Page 6: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione degliAlgoritmi prima di passare al codice (programma)

utilizzando un linguaggio di programmazione,si usa utilizzare un diagramma di flusso odiagramma a blocchi o flow-chart

Fa uso di: SIMBOLI GRAFICI (figure geometriche), per la

sequenza di Istruzioni DATI:

Costanti: stesso valore nell’esecuzione Variabili: possono variare durante l ’esecuzione

Page 7: ECDL modulo 1 ud1: algoritmi rappr informazione

Simboli dei FLOW-CHART

Page 8: ECDL modulo 1 ud1: algoritmi rappr informazione

Esempio

La somma di due numeri

Page 9: ECDL modulo 1 ud1: algoritmi rappr informazione

Altro esempio Dato un numero n, calcolare il cubo se

n>0 il quadrato se è negativo

Start

Leggi n

N>0

Ris= n * n Ris= n * n* n

Scrivi Ris

End

VF

Page 10: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dei Dati

UD 2

Page 11: ECDL modulo 1 ud1: algoritmi rappr informazione

Informazione Tutto ciò che possiede un significato per l ’uomo e

che viene comunicato o conservato in vista di unautilità pratica.

Le informazioni si presentano in varie forme: Caratteri Numeri Immagini Luce suoni Ecc…

Page 12: ECDL modulo 1 ud1: algoritmi rappr informazione

Trasmissione delleinformazioni

Affinchè 2 entità possano comunicare è necessario cheriescano a capirsi (esempio 2 persone che parlano linguediverse).

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. regolegrammaticali per creare frasi che abbiano un sensocompiuto in Italiano)

Page 13: ECDL modulo 1 ud1: algoritmi rappr informazione

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

Page 14: ECDL modulo 1 ud1: algoritmi rappr informazione

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

Page 15: ECDL modulo 1 ud1: algoritmi rappr informazione

Trasmissione delle informazioni(2) I caratteri e i simboli che compongono il

Messaggio e che vengono trasformati perviaggiare sul mezzo trasmissivo sono dettiSEGNALI

I Segnali possono essere: DIGITALI: se associati a cifre binarie (0,1) ANALOGICI: se sono rappresentati da

grandezze che variano con continuit à neltempo

Page 16: ECDL modulo 1 ud1: algoritmi rappr informazione

Trasmissione delle informazioni(3)

0110011001110011

Comunicazione Digitale

Comunicazione Analogica

Page 17: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dei dati

Come rappresentare i numeri e le operazioninel pc? (sistemi di numerazione)

Come rappresentare i caratteri? E come rappresentare immagini, suoni,

ecc…?

Page 18: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dei numeri Sistemi posizionali .

Es. Decimale, binario, esadecimale, ottale Sistemi non posizionali

Es. Romano

Page 19: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dei numeri Sistemi non posizionali .

Esempio: Sistema NumerazioneRomano.

Esempio: MCD = CDMInfatti. 1000+100+500=100+500+1000

I = 1V = 5X = 10L = 50C = 100D = 500M = 1000

Page 20: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dati

Sistemi posizionaliLa posizione è importante!!!

Esempio 853 358 (sistema decimale)

Infatti:853= 8*102 + 5*101 + 3*100 =800 + 50 + 3358= 3*102 + 5*101 + 8*100 =300 + 50 + 8

Posto 2 Posto 0Posto 1

Page 21: ECDL modulo 1 ud1: algoritmi rappr informazione

Sistema Decimale

B=10 => A={0,1,2,3,4,5,6,7,8, 9 (=10-1) }

Ogni cifra decimale deve essere unadell’alfabeto

Page 22: ECDL modulo 1 ud1: algoritmi rappr informazione

Sistema Binario B=2 => A={0,1} Il Sistema Binario è un sistema posizionale

basato su due sole cifre: 0 e 1 detti BIT(Binary Digit)

Esempi di numeri binari :

101

10010101

1010211 non è binario, infatti 2{0,1}

Page 23: ECDL modulo 1 ud1: algoritmi rappr informazione

Perché il sistema binario?

I computer non parlano la nostra stessalingua, ma utilizzano un sistema formato dadue numeri 0 e 1 (On e Off, passaggio oassenza di corrente elettrica)

Page 24: ECDL modulo 1 ud1: algoritmi rappr informazione

Conversione 2 -> 10Si moltiplica ogni cifra per la potenza di 2 in base alla posizi one occupata.

corrisponde a 1*23 + 0*22 + 1*21 +1*20 = (11)10 in decimale

• Esempio: convertiamo 1011 in decimale

Page 25: ECDL modulo 1 ud1: algoritmi rappr informazione

esercizio

Convertire i seguenti numeri binari indecimale: 1101 10001 111

Page 26: ECDL modulo 1 ud1: algoritmi rappr informazione

Soluzione

Convertire i seguenti numeri binari indecimale: (1101)2 = 1*23+1*22+0*21+1*20 =8+4+0+1=13 (10001)2 = (17)10

(111)2 = (1101)2

Page 27: ECDL modulo 1 ud1: algoritmi rappr informazione

Conversione 10->2 Si divide ripetutamente il numero decimale per

2 e si prendono i resti in ordine inverso

Esempio: 20 in binario.

Page 28: ECDL modulo 1 ud1: algoritmi rappr informazione

Esercizio

Convertire da decimale a binario i seguentinumeri: (15)10

(63)10

(64)10

(1045)10

Page 29: ECDL modulo 1 ud1: algoritmi rappr informazione

Esercizio: SOLUZIONE

Convertire da decimale a binario i seguentinumeri: (15)10 = (1111)2

(63)10 = (11 1111)2

(64)10 = (100 0000)2

(1045)10 = (100 0001 0101)2

Page 30: ECDL modulo 1 ud1: algoritmi rappr informazione

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 .

Page 31: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentare i caratteri in formabinaria

A seconda del sistema, per rappresentare uncarattere servono: 1 byte (8 bit), standard ASCII 2 byte (16 bit), standard UNICODE

Page 32: ECDL modulo 1 ud1: algoritmi rappr informazione

Standard ASCII

Con 8 bit => 256 simboli => 2 8=256

Cioè

Sommando i singoli valori (1 + 2 + 4 + 8 + 16 + 32 + 64 + 128) si ottiene 255a cui, aggiungendo anche lo zero, abbiamo 256 possibili valori ottenibili.

256 possibili combinazioni di bit => posso associare a ognuna uncarattere

Page 33: ECDL modulo 1 ud1: algoritmi rappr informazione

Sistema Esadecimale

I computer “parlano in bit” => per noi sarebbemolto complicato capire cose del tipo:

0000 10011110 01101001 0011

….=> Venne quindi creato il sistema

ESADECIMALE

Page 34: ECDL modulo 1 ud1: algoritmi rappr informazione

Esadecimale

Usa 16 simboli A={0,1,2,…,9,A,B,C,D,E,F} Ogni cifra esadecimale “usa” 4 bit

Bit Hex Bit hex

I numeri decimali da 10 a 15 sono stati sostituiti con le prime 6lettere dell’alfabeto.

Page 35: ECDL modulo 1 ud1: algoritmi rappr informazione

Rappresentazione dei caratteri

Si è creata una tabella in cui a ogni numerobinario (codice) fanno corrispondere uncarattere

Nella tabella sottostante sono riportati i simboli grafici di alcuni caratteri, la loro valenza binaria ed il corrispondente valore espresso sia in decimale che in esadecimale:

Page 36: ECDL modulo 1 ud1: algoritmi rappr informazione
Page 37: ECDL modulo 1 ud1: algoritmi rappr informazione

3737

LL’’INFORMAZIONE digitaleINFORMAZIONE digitale

Page 38: ECDL modulo 1 ud1: algoritmi rappr informazione

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?

Page 39: ECDL modulo 1 ud1: algoritmi rappr informazione

Descrivere le caratteristiche diuna 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.

Page 40: ECDL modulo 1 ud1: algoritmi rappr informazione

40

Parentesi: Concetti di base

Che cos'è un pixel? un pixel è il più piccolo componente discreto di una

immagine sullo schermo normalmente un punto con colore

Che cos'è la risoluzione video? la risoluzione è il numero di pixel (o punti) per

pollice dpi (dots per inch)

Page 41: ECDL modulo 1 ud1: algoritmi rappr informazione

Risoluzione

Esempio i mosaici

Più piccoli sono i tasselli maggiore è la qualitàl’immagine

Page 42: ECDL modulo 1 ud1: algoritmi rappr informazione

Immagine Bitmap o Raster

Caratterizzata da 2 proprietà: Risoluzione: numero di pixel per centimetro

quadrato (DPI); Profondità di colore: numero di colori che si

possono usare. Si può avere profondit à: 16 colori (4 bit per pixel) 256 colori (8 bit per pixel) 65536 colori (16 bit per pixel) 16,77 milioni di colori (24-32 bit per pixel)

Page 43: ECDL modulo 1 ud1: algoritmi rappr informazione

4343

LL’’INFORMAZIONE digitaleINFORMAZIONE digitale

Page 44: ECDL modulo 1 ud1: algoritmi rappr informazione

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)

Page 45: ECDL modulo 1 ud1: algoritmi rappr informazione

Esempi bitmap

Immagine

Immagine ingrandita “sgranata”

Page 46: ECDL modulo 1 ud1: algoritmi rappr informazione

IMMAGINI VETTORIALI Contengono infomazioni:

Circa le FORME che formano l’immagine(dimensione, posizione, ecc…)

Circa i COLORI da applicare a ogni forma RENDERING: processo di creazione

dell’immagine in PIXEL partendo da questeinformazioni

MOTORE DI RENDERING: programma cheesegue il rendering

Page 47: ECDL modulo 1 ud1: algoritmi rappr informazione

Esempio Immagini

Immagine Originale

Immagine Vettoriale ingrandita 8x

Immagine Raster ingrandita 8x

Page 48: ECDL modulo 1 ud1: algoritmi rappr informazione

Acquisizione Immagini

Catturandole da schermo (tasto stamp) Scannerizzarle da formato cartaceo importarle da fotocamere digitali Scaricarle da Internet o da CD OCR: scannerizzando un documento ottengo

una immagine => con OCR di nuovodocumento

Page 49: ECDL modulo 1 ud1: algoritmi rappr informazione

Esercizi

Da cosa è caratterizzata una immaginebitmap?

Da cosa è caratterizzata una immaginevettoriale?

Quali sono i formati più comuni per unaimmagine raster?

Page 50: ECDL modulo 1 ud1: algoritmi rappr informazione

Linguaggi Con il linguaggio vengono definite:

Il Lessico: insieme delle parole con relativo significato; La Sintassi: regole per costruire una frase in modo

corretto.

L’uomo utilizza il linguaggio naturale che è moltoricco di espressività ma è ambiguo:

Esempio: “la bella pesca” può essere interpretata in duemodi:

1. La bella ragazza che pesca2. Un bel frutto

Page 51: ECDL modulo 1 ud1: algoritmi rappr informazione

Lunguaggio macchina

Un elaboratore non può però gestireinformazioni ambigue

Il linguaggio macchina è l’unico linguaggiocapito 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.

Page 52: ECDL modulo 1 ud1: algoritmi rappr informazione

Linguaggi di programmazione Non è possibile realizzare traduttori dal linguaggio

naturale al linguaggio macchina => servono ilinguaggi di programmazione

essi sono comprensibili all ’uomo e, tramite untraduttore, vengono tradotti in linguaggio macchina

Linguaggio Naturale (Algoritmi)

Linguaggio Programmazione

Linguaggio macchina

CPU

Traduttori (compilatori, interpreti)

1000100011

Page 53: ECDL modulo 1 ud1: algoritmi rappr informazione

Esercizi

Quali sono gli elementi del Linguaggiomacchina?

Il linguaggio naturale può essere usato per ilcomputer?

L’uomo programma oggi col linguaggiomacchina? Con cosa?

Page 54: ECDL modulo 1 ud1: algoritmi rappr informazione

1.0.3.2 Distinguere il ruolo deiconnettivi 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

Page 55: ECDL modulo 1 ud1: algoritmi rappr informazione

Connettivo AND E vero solo se i due input sono veri.

111001010000CBA

In generale A and B = C è vera se:

In Algebra di Boole

Tabella di verità:Posso andare al ristorante

solo se ho i soldi e hoanche fame

Page 56: ECDL modulo 1 ud1: algoritmi rappr informazione

Connettivo OR E vero se almeno uno i due input è vero.

111101110000

RistoranteSoldiFame

In generale A and B = C è vera se:

In Algebra di Boole

Tabella di verità:

111101110000

C= A and BBA

Anche se non ho fame, maho i soldi vado alristorante e viceversa,anche se non ho i soldima ho vado al ristorante

Page 57: ECDL modulo 1 ud1: algoritmi rappr informazione

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

In Algebra di Boole

0110

Not AA

Page 58: ECDL modulo 1 ud1: algoritmi rappr informazione

Ripasso

A cosa serve AND? A cosa serve OR? A cosa serve NOT?

Page 59: ECDL modulo 1 ud1: algoritmi rappr informazione

1.0.3.3 Distinguere fra linguaggiomacchina e linguaggi procedurali

I linguaggi di programmazione sono di due tipi: basso livello:

linguaggi assemblativi orientati alla macchina (comunicanodirettamente con il computer utilizzando il "linguaggiomacchina");

il "linguaggio macchina“ è l’unico linguaggio compreso dalcomputer

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

Page 60: ECDL modulo 1 ud1: algoritmi rappr informazione

I Traduttori: Compilatori eInterpreti trasformano un programma sorgente (espresso in

un linguaggio di programmazione), in un programmaoggetto (tradotto in codice binario).

dipendono dal linguaggio di programmazione edall’architettura del computer.

Linguaggi ad Alto Livello(Orientati all’uomo)

C, C++, Java, VisualBasic, Pascal, ecc…

Linguaggi ad Alto Livello(Orientati all’uomo)

C, C++, Java, VisualBasic, Pascal, ecc…

Compilatori o InterpretiCompilatori o Interpreti

Linguaggio Macchina(codice Binario)

Linguaggio Macchina(codice Binario)

Traduttore

Page 61: ECDL modulo 1 ud1: algoritmi rappr informazione

Compilatori e Interpreti: le fasiI Compilatori: trasformano un programma “sorgente” (scritto in linguaggio di

programmazione) in un file “oggetto” (tradotto in linguaggio macchinama non ancora utilizzabile).

Per rendere “eseguibile” il risultato ottenuto è necessario che siaulteriormente trattato da un programma definito “linker” (o link editor),che collega, tra loro, i vari moduli tradotti ed i riferimenti e sterni (adesempio 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

Page 62: ECDL modulo 1 ud1: algoritmi rappr informazione

Linguaggi Assemblativi edassemblatori I linguaggi assemblativi:

Sono linguaggi di tipo simbolico in quanto utilizzanodei nomi (simboli) per designare il codice operativo ele variabili che compongono il programma.

Gli Assemblatori sono i traduttori dei linguaggiassemblativi.

L’Assembly (assemblatore): è il primo linguaggio informatico utilizzato, è comprensibile agli utilizzatori umani, ma è talmente simile al linguaggio macchina che

rimane legato al processore su cui viene sviluppato ilprogramma

Tale programma non potrà essere eseguito sucomputer con processori diversi.

Linguaggi a basso Livello(orientati alla macchina)

Assembly

Linguaggi a basso Livello(orientati alla macchina)

Assembly

AssemblatoreAssemblatore

Linguaggio Macchina(codice Binario)

Linguaggio Macchina(codice Binario)

Page 63: ECDL modulo 1 ud1: algoritmi rappr informazione

Alcuni linguaggi diprogrammazione 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 licomuni"

C, per uso ingegneristico. Usato per scrivere sistemi operativicome Linux

Java, per applicazioni web

PHP, per applicazioni web

PASCAL, per uso didattico

BASIC, inizialmente per applicazioni didattiche e scientifiche.Oggi Visual Basic

Page 64: ECDL modulo 1 ud1: algoritmi rappr informazione

Scrivere un programma conPseudo linguaggio

È un modo alternativo per rappresentare glialgoritmi

Le istruzioni sono descritte tramite frasirigorose

Si usano parole chiave, operatori e nomi divariabili

Non è usabile direttamente => va tradotto inun linguaggio di programmazione

Page 65: ECDL modulo 1 ud1: algoritmi rappr informazione

Esempio di pseudo linguaggio

Calcolare l’area di un quadrato dato il lato.Inizio

Fine

Leggi Lato

Scrivi Area

Area = Lato * Lato

PSEUDO LINGUAGGIO

PROGRAMMA AreaINIZIO

Leggi (Lato)Area Lato*LatoScrivi (Area)

FINE

Page 66: ECDL modulo 1 ud1: algoritmi rappr informazione

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 sigenera il file eseguibile?

Page 67: ECDL modulo 1 ud1: algoritmi rappr informazione

FINEU.D. Algoritmi e Rappresentazione

dell’Informazione