ECDL modulo 1 ud1: algoritmi rappr informazione

  • 1,527 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,527
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
63
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UD1 U.D. Algoritmi e Rappresentazione dell’Informazione Prof. Fabio Cantaro
  • 2. Obiettivi Questo modulo permetter à al discente di comprendere i concetti fondamentali delle Tecnologie 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 di un computer e sapere cosa sono le periferiche. Comprendere cosa è il software e fornire esempi di applicazioni di uso comune e di sistemi operativi. Comprendere come vengono utilizzate le reti informatiche e cono scere le diverse modalità di collegamento a Internet. Comprendere cosa sono le Tecnologie dell ’Informazione e della Comunicazione (ICT) e fornire 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.
  • 3. Algoritmo: definizione In informatica, con il termine algoritmo si intende un metodo per la risoluzione di un problema adatto a essere implementato sotto forma di programma. Dunque, più dettagliatamente esso è: “una sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione di un problema in un numero finito di passaggi ”.
  • 4. 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.
  • 5. Esempio: somma di due numeri digitati dall’utente INIZIO a) 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
  • 6. Rappresentazione degli Algoritmi prima di passare al codice (programma) utilizzando un linguaggio di programmazione, si usa utilizzare un diagramma di flusso o diagramma 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
  • 7. Simboli dei FLOW-CHART
  • 8. Esempio La somma di due numeri
  • 9. Altro esempio Dato un numero n, calcolare il cubo se n>0 il quadrato se è negativo Start Leggi n F V N>0 Ris= n * n Ris= n * n* n Scrivi Ris End
  • 10. Rappresentazione dei Dati UD 2
  • 11. 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…
  • 12. 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)
  • 13. 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
  • 14. 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
  • 15. 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) ANALOGICI: se sono rappresentati da grandezze che variano con continuit à nel tempo
  • 16. Trasmissione delle informazioni(3) 0110011001110011 Comunicazione Digitale Comunicazione Analogica
  • 17. 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…?
  • 18. Rappresentazione dei numeri Sistemi posizionali. Es. Decimale, binario, esadecimale, ottale Sistemi non posizionali Es. Romano
  • 19. Rappresentazione dei numeri Sistemi non posizionali . Esempio: Sistema Numerazione I=1 Romano. V=5 X = 10 L = 50 Esempio: MCD = CDM C = 100 Infatti. 1000+100+500=100+500+1000 D = 500 M = 1000
  • 20. Rappresentazione dati Sistemi posizionali La posizione è importante!!! Esempio 853 358 (sistema decimale) Posto 2 Posto 0 Posto 1 Infatti: 853= 8*10 2 + 5*101 + 3*100 =800 + 50 + 3 358= 3*10 2 + 5*101 + 8*100 =300 + 50 + 8
  • 21. Sistema Decimale B=10 => A={0,1,2,3,4,5,6,7,8, 9 (=10-1) } Ogni cifra decimale deve essere una dell’alfabeto
  • 22. 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}
  • 23. Perché il sistema binario? I computer non parlano la nostra stessa lingua, ma utilizzano un sistema formato da due numeri 0 e 1 (On e Off, passaggio o assenza di corrente elettrica)
  • 24. Conversione 2 -> 10 Si moltiplica ogni cifra per la potenza di 2 in base alla posizi one occupata. • Esempio: convertiamo 1011 in decimale corrisponde a 1*23 + 0*22 + 1*21 +1*20 = (11)10 in decimale
  • 25. esercizio Convertire i seguenti numeri binari in decimale: 1101 10001 111
  • 26. Soluzione Convertire i seguenti numeri binari in decimale: (1101)2 = 1*23+1*22+0*21+1*20 =8+4+0+1=13 (10001) 2 = (17)10 (111)2 = (1101) 2
  • 27. Conversione 10->2 Si divide ripetutamente il numero decimale per 2 e si prendono i resti in ordine inverso Esempio: 20 in binario.
  • 28. Esercizio Convertire da decimale a binario i seguenti numeri: (15)10 (63)10 (64)10 (1045)10
  • 29. 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
  • 30. 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.
  • 31. Rappresentare i caratteri in forma binaria A seconda del sistema, per rappresentare un carattere servono: 1 byte (8 bit), standard ASCII 2 byte (16 bit), standard UNICODE
  • 32. 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 255 a cui, aggiungendo anche lo zero, abbiamo 256 possibili valori ottenibili. 256 possibili combinazioni di bit => posso associare a ognuna un carattere
  • 33. Sistema Esadecimale I computer “parlano in bit” => per noi sarebbe molto complicato capire cose del tipo: 0000 1001 1110 0110 1001 0011 …. => Venne quindi creato il sistema ESADECIMALE
  • 34. 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 6 lettere dell’alfabeto.
  • 35. Rappresentazione dei caratteri Si è creata una tabella in cui a ogni numero binario (codice) fanno corrispondere un carattere Nella tabella sottostante sono riportati i si mboli grafici di alcuni caratteri, la loro vale nza binaria ed il corrispondente valore espre sso sia in decimale che in esadecimale:
  • 36. L’INFORMAZIONE digitale 37
  • 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?
  • 38. 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.
  • 39. 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) 40
  • 40. Risoluzione Esempio i mosaici Più piccoli sono i tasselli maggiore è la qualità l’immagine
  • 41. 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)
  • 42. L’INFORMAZIONE digitale 43
  • 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)
  • 44. Esempi bitmap Immagine Immagine ingrandita “sgranata”
  • 45. 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 queste informazioni MOTORE DI RENDERING : programma che esegue il rendering
  • 46. Esempio Immagini Immagine Originale Immagine Vettoriale ingrandita 8x Immagine Raster ingrandita 8x
  • 47. 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 nuovo documento
  • 48. Esercizi Da cosa è caratterizzata una immagine bitmap? Da cosa è caratterizzata una immagine vettoriale? Quali sono i formati più comuni per una immagine raster?
  • 49. 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 è molto ricco di espressività ma è ambiguo: Esempio: “la bella pesca” può essere interpretata in due modi: 1. La bella ragazza che pesca 2. Un bel frutto
  • 50. 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.
  • 51. 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 Linguaggio macchina 1000100011 CPU
  • 52. 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?
  • 53. 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
  • 54. 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 In generale A and B = C è vera se: A B C 0 0 0 0 1 0 In Algebra di Boole 1 0 0 1 1 1
  • 55. Connettivo OR E vero se almeno uno i due input è vero. 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 In generale A and B = C è vera se: A B C= A and B 0 0 0 0 1 1 In Algebra di Boole 1 0 1 1 1 1
  • 56. 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
  • 57. Ripasso A cosa serve AND? A cosa serve OR? A cosa serve NOT?
  • 58. 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
  • 59. 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 ad Alto Livello Linguaggi ad Alto Livello (Orientati all’uomo) (Orientati all’uomo) C, C++, Java, Visual C, C++, Java, Visual Basic, Pascal, ecc… Basic, Pascal, ecc… Compilatori o Interpreti Compilatori o Interpreti Traduttore Linguaggio Macchina Linguaggio Macchina (codice Binario) (codice Binario)
  • 60. 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
  • 61. 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 a basso Livello Linguaggi a basso Livello Gli Assemblatori sono i traduttori dei linguaggi assemblativi. ((orientati alla macchina) orientati alla 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 Macchina Linguaggio Macchina Tale programma non potrà essere eseguito su (codice Binario) (codice Binario) computer con processori diversi.
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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?
  • 66. FINE U.D. Algoritmi e Rappresentazione dell’Informazione