Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione...

33
Informatica per la comunicazione - lezione 2 -

Transcript of Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione...

Page 1: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Informatica per

la comunicazione" - lezione 2 -  

Page 2: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere
Page 3: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Abbiamo visto qualche limite (importante) del computer: si esamina un problema p, e si mostra che un computer non è in grado di risolvere p. !Tipico esempio: capire il significato di una parola. Eppure i computer sono in grado di eseguire molte operazioni, e di risolvere un gran numero di problemi (mostrarci le pagine di un libro, connetterci con amici sui social network, scaricare e ascoltare brani musicali, organizzare la nostra agenda, guardare film, etc.)!E’ arrivato il momento di delineare esplicitamente il campo di lavoro dei computer.!Esaminiamo che cosa hanno in comune tutte le soluzioni che un computer è in grado di offrire. !

Page 4: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Software  

Page 5: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni.!Il termine si contrappone ad hardware, che invece designa tutto ciò che è materiale e tangibile in un computer.!Un computer è un insieme di dispositivi elettronici: un computer è hardware.!Un computer diventa però utile solo quando fornisce un servizio, e ciò è possibile solo quando l’hardware è controllato mediante il software.!Senza il software, l’hardware è un inutile agglomerato di plastica, silicio e metalli.!Senza l’hardware, il software è solo un’idea che potrebbe essere messa in pratica.!

Page 6: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Tale idea dovrebbe essere la soluzione a un problema.!E’ facile vedere che non tutti i problemi possono essere risolti mediante il software di un computer.!La natura stessa dei computer stabilisce il tipo di problemi che essi sono in grado di risolvere.!

Page 7: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

VS."

Se c’è una differenza nell’hardware, ci sarà probabilmente una differenza anche nello spettro dei problemi che si possono risolvere.!Anche il software è coinvolto, perché comunque l’hardware deve essere controllato in maniera adeguata.!Ricordatevi che la “matica” in “informatica” viene da “automatica”: il funzionamento dell’accoppiata hardware-software deve avvenire col minor intervento umano possibile.!Tutte queste considerazioni ci aiutano a definire ciò che un computer è in grado di eseguire.!

Page 8: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

I concetti base  

Page 9: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

?"Problema" ""

"

Un ostacolo, un impedimento, una difficoltà che desideriamo eliminare." "

""

Page 10: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

!"Soluzione" ""

"

Eliminazione del problema." ""

"

Page 11: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Computer" ""

"

Elaboratore automatico di simboli." ""

"

Page 12: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

?" !"Il problema si dice risolvibile quando esiste un modo per raggiungere la soluzione."Se vogliamo che sia il computer a raggiungere la soluzione, il problema deve essere espresso sotto forma di simboli che il computer può elaborare. " ""

"

Page 13: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

!"Algoritmo" ""

"

Un modo per raggiungere la soluzione che ha le seguenti caratteristiche:1) è una sequenza finita di operazioni ben definite;2 ) d o p o l ’ e s e c u z i o n e d i o g n i operazione, è chiaro qual è la successiva (determinismo)." "

""

?"

Page 14: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Muḥammad ibn Mūsā al-Khwārizmī(780 – 850)  

Page 15: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Il termine “algoritmo” deriva dal nome del matematico persiano al-Kwarizhmi."

""

"

Tra i suoi numerosi meriti, il più grande è forse quello di aver importato in occidente il sistema numerico decimale dall’India. (Come saprete, gli antichi Romani non avevano un simbolo per lo zero.)" "

""

Un altro termine che ha le sue radici nel nome di questo matematico è “algebra”."

""

"

La figura nella slide precedente si trova su un francobollo s o v i e t i c o , c h e n e l 1 9 8 0 festeggiava il 1200° anniversario della nascita di al-Kwarizhmi."

"

""

Page 16: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

!"Programma" ""

"

Un algoritmo scritto in maniera tale da poter essere eseguito da un computer:3) tutte le operazioni consistono in elaborazioni di simboli;4) tutte le operazioni sono eseguibili dal computer." ""

"

?"

Page 17: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

!"Processo" ""

"

Un programma in esecuzione su un computer."

""

"

?"

Solitamente i programmi risiedono nell’hard disk di un computer, ed i processi nella RAM. " "

""

Page 18: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

?"!"

Attenzione: il computer non è in grado di trovare una soluzione da solo. L’algoritmo deve essere concepito prima, e poi trasferito nel computer sotto forma di programma, per essere eseguito e fornire la soluzione. " ""

"

Page 19: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Diagrammi di flusso  

Page 20: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Notazione grafica per esprimere gli algoritmi." "

""

Diagramma di flusso" ""

"

Esiste un elemento grafico (chiamato blocco) per ogni passaggio fondamentale negli algoritmi." ""

"

I blocchi sono tra loro collegati d a d e l l e f r e c c i e , c h e simboleggiano i l flusso di esecuzione, ossia la sequenza di operazioni che vengono svolte una dopo l’altra." ""

"

Page 21: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

inizio dell’algoritmo""

" operazione"

""

"

sì! no!

controllo di condizione" "

""

input" ""

"

output" ""

"

fine dell’algortimo"

Page 22: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

La freccia entrante in un blocco rappresenta l’istante in cui l’operazione descritta dal blocco sta per essere eseguita." ""

"

All’interno di ogni blocco, l’operazione da eseguire è descritta in un linguaggio a scelta, purché compreso dal destinatario del diagramma di flusso." ""

"

La freccia uscente da un blocco rappresenta l’istante in cui l’operazione descritta dal blocco è stata eseguita e si passa a quella successiva."""

Tutti i blocchi hanno una o più frecce in ingresso e una sola in uscita, tranne il blocco di inizio (zero entranti, una sola uscente), il blocco di fine (una o più entranti, zero uscenti) e il blocco di controllo (una o più entranti, due uscenti: una per ciascun possibile esito del controllo). ""

"

Page 23: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

I cerchi gialli rappresentano l’inizio dell’algoritmo e la fine dell’algoritmo. Per mantenere il determinismo di un algoritmo ci può essere solo un inizio, mentre ci possono essere più blocchi di fine (a seconda del percorso che è stato seguito)."

""

"

Un’operazione da eseguire è descritta all’interno di un blocco rettangolare, a meno che non si tratti di un tipo speciale di o p e r a z i o n e : i n p u t (para l le logramma) , output ( fogl ie t to) , o control lo d i condizione (rombo)."

" "

""

Input: informazione oppure entità più concrete arrivano d a l l ’ e s t e r n o d e l c o n t e s t o dell’esecuzione dell’algoritmo per poter essere elaborate."

"

Output: un risultato (parziale o finale) dell’algoritmo viene inviato verso l’esterno per essere fruito dagli utenti del sistema."

""

Controllo di condizione: una condizione viene verificata e a seconda del risultato della verifica l’algoritmo segue un percorso o l’altro."

""

Page 24: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

acqua in pentola!

pentola sul fuoco!

bolle?!sì! no!

sale!

pasta!

attendi!

attendi! cotta?!

no!

sì!scola!

Algoritmo per cuocere la pasta" "

""

pasta!

acqua, pentola,

sale, pasta  

Page 25: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Tale a lgor i tmo non può diventare un programma." "

""

Perché?" "

""

Page 26: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Innanz i tu t to l ’a lgor i tmo è descr i t to in i t a l i ano . Per d i v e n t a r e u n p r o g r a m m a dovrebbe essere riscritto in un linguaggio comprensibile al computer. " ""

"

Tale traduzione risulta molto difficile da realizzare, a causa d e l l e d e s c r i z i o n i m o l t o approssimative delle varie operazioni, che solo un essere umano riesce a gestire. (Ad es.: dove si prende l’acqua? Su quale fuoco va messa la pentola? Come va messa la pentola sul fuoco?)"

Inol t re , l ’a lgor i tmo non è e s p r i m i b i l e i n t e r m i n i d i elaborazione di simboli: si tratta di vera acqua e vere pentole, e un computer non ha l’hardware per manipolare tali oggetti." ""

"

Forse un robot con telecamere, sensori, e braccia meccaniche adeguate potrebbe risolvere il problema della pasta, ma serve comunque i l software per comandarlo." ""

"

Page 27: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Disegnare il diagramma di flusso dell’algoritmo del calcolo della media degli esami di un libretto. "

""

Esercizio" ""

"

Page 28: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Soluzione" ""

"

Una possibile soluzione è quella di prendere il libretto, andare alla parte dedicata ai voti e, se ci sono dei voti, contarli, farne la somma e infine dividere la somma per il numero dei voti per ottenere la media, che è il risultato cercato."

Page 29: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

controllocondizione

"

""

Il tipo di operazioni di cui è composta questa soluzione"

"

""

Una possibile soluzione è quella di prendere il libretto, andare alla parte dedicata ai voti e, se ci sono dei voti, contarli, farne la somma e infine dividere la somma per il numero dei voti per ottenere la media, che è il risultato cercato."

input "

""

operazione ""

"

output ""

"

Page 30: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

vai alla sezione voti!

ci sono voti? !

sì! no!

n ç conto i voti    

s ç sommo i voti

m ç s/n

Algoritmo per c a l c o l a r e l a media dei voti di un libretto" ""

"

m!

libretto  

Page 31: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

s ç sommo i voti "

""

Un’operazione del tipo mostrato sopra è complessa perché in realtà include più di un passaggio. Il primo passaggio è quello descritto a destra della freccia e indica un’operazione che tipicamente produce un risultato. La freccia rappresenta il secondo passaggio: il risultato ottenuto deve essere conservato per poter essere utilizzato in un momento successivo. La lettera o il nome a sinistra delle freccia rappresenta il “luogo” dove il risultato viene salvato e può essere utilizzato come riferimento per richiamarlo."

In informatica, i “luoghi” dove vengono salvati i risultati delle operazioni si chiamano variabili. Un termine mutuato dalla matematica che vuole indicare che tale luogo può contenere, a seconda delle situazioni, valori differenti, variabili e non costanti."

Page 32: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Variabili "

""

Nel caso dell’algoritmo del calcolo della media dei voti abbiamo usato tre variabili.n per conservare il numero dei voti nel libretto;s per conservare la somma dei voti;m per conservare il valore della media, ottenuta richiamando i valori di s e n e facendo una divisione tra loro."

Come ultima operazione dell’algoritmo, visto che l’obiettivo era quello di calcolare la media dei voti, richiamiamo il vlaore di m e lo mandiamo in output."

Page 33: Informatica per la comunicazione - lezione 2 - 2014-15 Appunti 2.pdf · la comunicazione" - lezione 2 -! Abbiamo visto qualche limite ... contarli, farne la somma e infine dividere

Ricordarsi sempre che una soluzione algoritmica a un problema non è l’unica soluzione possibile: si possono eseguire diverse operazioni che portano allo stesso risultato (ad esempio 2 x 3 oppure 3 x 2 danno sempre e comunque 6 come risultato), oppure lo stesso algoritmo può essere descritto a livelli diversi di dettaglio."

Un’alternativa più dettagliata alla soluzione mostrata in questi lucidi, ad esempio, può specificare di porsi all’inizio della lista dei voti, controllare che vi sia ancora un voto da conteggiare, incrementare la somma e il conteggio volta per volta e passare alla posizione successiva ripetendo le operazioni precedenti fino a che non ci sono più voti."