A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013...

25
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25

Transcript of A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013...

Page 1: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Introduzione agli Algoritmi

InformaticaSara Zuppiroli

A.A. 2012-2013

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25

Page 2: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Risoluzione dei problemi

Dalla descrizione del problema all’individuazione di unasoluzione

I Definizione e proprietà di un AlgoritmoI Descrizione di un algoritmoI Diagrammi di flusso

Dalla descrizione di una soluzione alla stesura delprogramma

I Definizione di uno pseudo codiceI Stesura del programma

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 2 / 25

Page 3: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Risoluzione di un problema

È un processo che dato un problema e individuato un opportunometodo risolutivo trasforma i dati iniziali nei corrispondentirisultati finali.Osserviamo che:

Dalla descrizione del problema non si ha (generalmente) ladescrizione di uno dei possibili metodi per risolverlo.Se si usa un elaboratore questo processo deve poteressere descritto in una sequenza di operazioni elementariinterpretabili.

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 3 / 25

Page 4: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Definizione di Algoritmo

È una sequenza finita di passi per risolvere in un tempo finitouna classe di problemi

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 4 / 25

Page 5: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Schema generale

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 5 / 25

Page 6: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Proprietà di un algoritmo

finito: il numero di operazioni dell’algoritmo da eseguiredeve essere finitonon ambiguo: ogni operazione presente nell’algoritmodeve essere univocamente interpretataeseguibile: ogni operazione presente nell’algoritmo deveessere eseguibile

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 6 / 25

Page 7: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esempi di algoritmi

Trovare la soluzione dell’equazione: ax + b = 0Definire un algoritmo che calcoli l’operazione addizioneadd : N× N→ N definita come add(x , y) = x + y avendo adisposizione solo l’operazione successore: s : N→ Ndefinita come s(x) = x + 1

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 7 / 25

Page 8: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esempio 1

Trovare la soluzione dell’equazione: ax + b = 0

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 8 / 25

Page 9: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Algoritmo 1

Leggi i valori a, bSe a <> 0 allora

I Calcola −bI Calcola x = −b/aI Stampa x

AltrimentiI Se b <> 0 allora

F Stampa (l’equazione è impossibile)I AltrimentiI Stampa (l’equazione è indeterminata)

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 9 / 25

Page 10: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esempio 2

Definire un algoritmo che calcoli l’operazione addizioneadd : N× N→ N definita come add(x , y) = x + y avendo adisposizione solo l’operazione successore: s : N→ N definitacome s(x) = x + 1

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 10 / 25

Page 11: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Algoritmo 2

Leggi i valori x , yPoni a = 0Finchè a < y esegui

I x= s(x)I a=s(a)

Stampa x

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 11 / 25

Page 12: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

I diagrammi di flusso

Per rappresentare in modo efficace un algoritmo sono statidefiniti dei modelli grafici come ad esempio i diagrammi diflusso per il paradigma della programmazione procedurale.

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 12 / 25

Page 13: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

I diagrammi di flusso

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 13 / 25

Page 14: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esempio 2

Descrivere mediante un diagramma di flusso l’algoritmo checalcoli l’operazione addizione add : N× N→ N definita comeadd(x , y) = x + y avendo a disposizione solo l’operazionesuccessore: s : N→ N definita come s(x) = x + 1

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 14 / 25

Page 15: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Diagramma di flusso Esempio 2

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 15 / 25

Page 16: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

La programmazione

Un programma è un testo scritto in accordo alla sintassi ealla semantica del linguaggio di programmazione Linterpretato da una determinata macchina astrattaUn programma è la trascrizione di un algoritmo in un certolinguaggio di programmazione

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 16 / 25

Page 17: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

La programmazione strutturata

Le strutture di controllo della programmazione strutturata sono:Sequenza: permette di eseguire le istruzioni secondol’ordine in cui sono state scritteSelezione: permette di scegliere l’esecuzione di un bloccodi istruzioni tra due possibili in base a una condizioneIterazione: permette di ripetere l’esecuzione di un blocco diistruzioni in base al valore di una condizione

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 17 / 25

Page 18: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Sequenza

Le istruzioni sono eseguite nel modo in cui compaiono sulprogramma. Ad esempio:

Read (x1, · · · , xn): Legge il/i valore/ii in input e lo assegnaalla variabile x1, · · · , xn

x:=3: Assegna a x il valore 3s(x): Calcola il successore di xWrite (x1, · · · , xn): Scrive il/i valore/i assegnati a x1, · · · , xn

in output

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 18 / 25

Page 19: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Selezione

Sintassi:IF condizione THEN

I bloccoT

ELSEI bloccoF

ENDIFSemantica:

Si valuta la condizione:I se è vera si esegue il bloccoTI se è falsa si esegue il bloccoF

si esegue l’istruzione che segue ENDIF

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 19 / 25

Page 20: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Iterazione

Sintassi:WHILE condizione DO

I bloccoW

ENDWHILESemantica:

Si valuta la condizioneI fino a quando la condizione è vera si esegue il bloccoWI quando la condizione è falsa si esegue l’istruzione che

segue ENDWHILE senza eseguire il bloccoW

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 20 / 25

Page 21: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Programmazione strutturata Esempio 2

Descrivere le strutture di controllo della programmazionestrutturata l’algoritmo che calcoli l’operazione addizioneadd : N× N→ N definita come add(x , y) = x + y avendo adisposizione solo l’operazione successore: s : N→ N definitacome s(x) = x + 1

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 21 / 25

Page 22: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Programmazione strutturata Esempio 2

Read(x , y)a:=0WHILE a<y DO

I x:=s(x)I a:=s(a)

ENDWHILEWrite (x)

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 22 / 25

Page 23: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Riassumendo: dal problema allaprogrammazione

I passi per la risoluzione di un problema:Capire e scomporre il problema trovando il procedimentorisolutivo (ANALISI)Descrizione il procedimento risolutivo in un insieme dioperazioni (ALGORITMO)Rappresentazione grafica dell’algoritmo (DIAGRAMMA DIFLUSSO)Rappresentazione dei dati e dell’algoritmo attraverso unformalismo comprensibile da un elaboratore(PROGRAMMA)Controllare che il Programma sia corretto (DEBUG)

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 23 / 25

Page 24: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esercizio

Scrivere l’algoritmo, il diagramma di flusso e il programma inpseudo codice che risolva il seguente problema:

Alice distribuisce i suoi dadi colorati in un numero n discatole. Alice li distribuisce in modo tale che in ogni scatolaci sia un numero diverso di dadi colorati. Quanti dadicolorati possiede Alice?

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 24 / 25

Page 25: A.A. 2012-2013 Sara Zuppiroli Informatica 8.pdf · Informatica Sara Zuppiroli A.A. 2012-2013 Informatica Introduzione agli Algoritmi A.A. 2012-2013 1 / 25. Risoluzione dei problemi

Esercizio

Scrivere l’algoritmo, il diagramma di flusso e il programma inpseudo codice che risolva il seguente problema:

In quanti modi è possibile che n (dato di input) studentiprendano posto su n banchi?

Scrivere l’algoritmo, il diagramma di flusso e il programma inpseudo codice che risolva il seguente problema:

Dati in input n voti calcolare la media aritmetica.

Informatica () Introduzione agli Algoritmi A.A. 2012-2013 25 / 25