ECDL modulo 1 ud1: algoritmi rappr informazione

Preview:

DESCRIPTION

 

Citation preview

UD1

U.D. Algoritmi e Rappresentazionedell’Informazione

Prof. Fabio Cantaro

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.

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 ”.

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.

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

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

Simboli dei FLOW-CHART

Esempio

La somma di due numeri

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

Rappresentazione dei Dati

UD 2

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…

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)

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 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

Trasmissione delle informazioni(3)

0110011001110011

Comunicazione Digitale

Comunicazione Analogica

Rappresentazione dei dati

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

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

ecc…?

Rappresentazione dei numeri Sistemi posizionali .

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

Es. Romano

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

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

Sistema Decimale

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

Ogni cifra decimale deve essere unadell’alfabeto

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}

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)

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

esercizio

Convertire i seguenti numeri binari indecimale: 1101 10001 111

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

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

2 e si prendono i resti in ordine inverso

Esempio: 20 in binario.

Esercizio

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

(63)10

(64)10

(1045)10

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

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 formabinaria

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

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

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

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.

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:

3737

LL’’INFORMAZIONE digitaleINFORMAZIONE digitale

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 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.

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)

Risoluzione

Esempio i mosaici

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

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)

4343

LL’’INFORMAZIONE digitaleINFORMAZIONE digitale

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

Immagine ingrandita “sgranata”

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

Esempio Immagini

Immagine Originale

Immagine Vettoriale ingrandita 8x

Immagine Raster ingrandita 8x

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

Esercizi

Da cosa è caratterizzata una immaginebitmap?

Da cosa è caratterizzata una immaginevettoriale?

Quali sono i formati più comuni per unaimmagine raster?

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

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.

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

Esercizi

Quali sono gli elementi del Linguaggiomacchina?

Il linguaggio naturale può essere usato per ilcomputer?

L’uomo programma oggi col linguaggiomacchina? Con cosa?

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

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

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

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

Ripasso

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

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

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

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

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)

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

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

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

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?

FINEU.D. Algoritmi e Rappresentazione

dell’Informazione