LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di...

13
LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda

Transcript of LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di...

Page 1: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

LABORATORIO DI INFORMATICACorso di laurea in Scienze della Formazione Primaria

a.a.2014/2015

A cura del Prof. Sergio Miranda

Page 2: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

LEZIONE N.6Algoritmi2

Page 3: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

GLI ALGORITMI (1/5)

Un algoritmo è una sequenza di istruzioni la cui

esecuzione consente di realizzare un particolare

trattamento dell’informazione o più in generale di

risolvere uno specifico problema:

Calcolare la somma di due numeri

Calcolare la lunghezza dell’ipotenusa di un triangolo

rettangolo

Risolvere una equazione di secondo grado

Una ricetta di cucina

Le istruzioni per montare un mobile

3

Page 4: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

IL TERMINE ALGORITMO DERIVA

DA …

4

Page 5: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

GLI ALGORITMI (2/5)

Un algoritmo presuppone la presenza di qualcuno (o qualcosa) in grado di eseguirlo: l’esecutore (in informatica è il calcolatore) Ogni esecutore ha il suo modello di elaborazione ed il suo

ciclo di esecuzione: Es. Macchina di Turing, Macchina di Von Neumann

L’algoritmo viene letto dall’esecutore il quale, partendo dai dati in input, esegue, in un ben preciso ordine, le istruzioni in esso riportate giungendo, al termine, a ottenere i dati in output

Per essere eseguito, l’algoritmo deve essere formulato in un linguaggio comprensibile dall’esecutore

Un esecutore può eseguire un algoritmo formulato in un linguaggio che non conosce a patto che l’algoritmo stesso sia preventivamente tradotto in un linguaggio che invece gli è noto 5

Page 6: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

UN ESEMPIO DI

ALGORITMO

Procedura per fare la frittata

6

Page 7: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

GLI ALGORITMI (3/5)

L’algoritmo deve prevedere soltanto istruzioni elementari, che richiedono all’esecutore la conduzione di operazioni elementari (operazioni che egli sa compiere senza bisogno di ulteriori specificazioni)

Un algoritmo può richiedere l’esecuzione di altri algoritmi precedentemente specificati all’esecutore

L’algoritmo deve essere formulato in un linguaggio non ambiguo, in cui cioè ogni istruzione caratterizzi univocamente una delle operazioni che l’esecutore è in grado di compiere

L’algoritmo deve specificare senza ambiguità l’ordine di esecuzione delle istruzioni cui l’esecutore deve attenersi scrupolosamente 7

Page 8: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

8

Area di una campana (1)

h2

h1

B

r=b/

2

b

Problema

h2b

h1

B

Sottoproblema 1

Sottoproblema 2

Sottoproblema 3

soluzione elementare:

s = ½ r 2

soluzione

elementare:

s = b h 2

r

Scomposizione del

problema in tre

sottoproblemi

soluzione

elementare:

s = ??

soluzione

elementare:

s = ??

8

Page 9: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

9

Area di una campana (2)

Sottoproblema 3h1

bh1

½ (B–b)

h1

½ (B–b)

Sottoproblema 3.1

soluzione

elementare:

s =½ (½(B–b) h1)

Sottoproblema 3.2soluzione

elementare:

s = b h1

soluzione effettiva:

s = ½ (½(B–b) h1) +

b h1 +

½ (½(B–b) h1)Sottoproblema 3.3

soluzione

elementare:

s =½ (½(B–b) h1)

Scomposizione del sottoproblema 3

in tre ulteriori sottoproblemi

Composizione delle soluzioni dei tre

sottoproblemi 3.1, 3.2 e 3.3 per

risolvere il sottoproblema 3

h1

B

b

9

Page 10: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

1

0

Area di una campana (3)

h2

h1

B

r=b/

2

b

Problema

h2b

h1

B

Sottoproblema 1

Sottoproblema 2

Sottoproblema 3

soluzione elementare:

s = ½ r2

soluzione

elementare:

s = b h2

r

soluzione effettiva:

s = ½ (½(B–b) h1) +

b h1 +

½ (½(B–b) h1)

soluzione effettiva:

s = ½ r2 +

b h2 +

½ (½(B–b) h1) +

b h1 +

½ (½(B–b) h1)

Composizione delle

soluzioni dei tre

sottoproblemi 1, 2 e

3 per risolvere il

problema originario

10

Page 11: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

GLI ALGORITMI (4/5)

L’algoritmo deve essere formulato in un numero

finito di istruzioni

L’esecuzione di un algoritmo deve terminare

fornendo i dati in output in un tempo finito

L’algoritmo deve essere deterministico:

eseguendo lo stesso algoritmo più volte sugli

stessi dati di input, l’esecutore deve generare

sempre gli stessi dati di output

08

/06

/201

5

11

Dott. F

ran

cesco

Orciu

oli

Page 12: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

GLI ALGORITMI (5/5)

Un algoritmo parametrico è un algoritmo che,

facendo riferimento ai dati di input

È in grado di risolvere non un solo problema ma una

classe di problemi

Algoritmo per risolvere 12 + 24

Algoritmo parametrico per risolvere X + Y dove X e Y

possono essere rimpiazzati da qualsiasi numero

X e Y si dicono variabili e funzionano come registri di

memoria nei quali si possono scrivere e leggere dati

08

/06

/201

5

12

Dott. F

ran

cesco

Orciu

oli

Page 13: LABORATORIO DI INFORMATICA - rimedia.unisa.it · LEZIONE N.6 2 Algoritmi. Laboratorio di Informatica GLI ALGORITMI (1/5) ...

Laboratorio di Informatica

LE VARIABILI

Sono contenitori

Occorre stabilire che tipo di «contenuto» possono

contenere

Il tipo di contenuto è fisso

Il loro contenuto può variare

Le variabili contengono dati

Il «senso» che le fa diventare informazioni si

aggiunge con la programmazione…

08/0

6/2

015

13

Pro

f. Serg

io M

iran

da