DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio –...

49
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un Come affrontare un problema… problema… Marco D. Santambrogio – [email protected] Ver. aggiornata al 21 Agosto 2014

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come affrontare un Come affrontare un problema…problema…

Marco D. Santambrogio – [email protected]. aggiornata al 21 Agosto 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Massimo Comune DivisoreMassimo Comune Divisore

• Definizione Dicesi Massimo Comune Divisore

(M.C.D.) il piu’ grande tra i divisori comuni a due o piu’ numeri

• Il nostro problema: Dati due numeri interi, si trovi il MCD

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 0/4: La brutta Parte 0/4: La brutta notizia!notizia!

• Abbiamo un problema!!!! Dati due numeri interi, si trovi il MCD

3

how to solve it di Poyla G. - http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.pdf

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come realizzare un algoritmoCome realizzare un algoritmo

• Parte 1/4: Capire il problema Quale e’ il problema generale che si

scerca di risolvere?

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 1/4: Capire il Parte 1/4: Capire il problemaproblema

• Abbiamo un solo problema? Dati due numeri interi, si trovi il MCD

• P1: Ci servono due numeri interi• P2: Dobbiamo trovare il MCD di

due numeri

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Abbiamo solo P1 e P2?Abbiamo solo P1 e P2?

Dati due numeri interi, si trovi il MCD

•P1: Ci servono due numeri interi P1.1: Ci servono due scatole per salvare i due

numeri P1.2: I numeri devono essere maggiori uguali a 1

•P2: Dobbiamo trovare il MCD di due numeri P2.1: Dobbiamo trovare tutti i divisori di un numero

(X) P2.2: Dobbiamo trovare tutti i numeri {C} in

comune a due sequenze {S1, S2} di numeri P2.3: Dobbiamo trovare il maggiore tra N numeri

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come realizzare un algoritmoCome realizzare un algoritmo

•Parte 2/4: Fare/creare un piano Ci possono essere diverse strategie

per risolvere lo stesso problema• Ipotizzare e verificare• Cercare dei pattern• Risolvere problemi più piccoli• Disegnare uno schema

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 2/4: Fare/creare un Parte 2/4: Fare/creare un pianopiano

Dati due numeri interi, si trovi il MCD

•P1: Ci servono due numeri interi P1.1: Ci servono due scatole per salvare i due

numeri P1.2: I numeri devono essere maggiori uguali a 1

•P2: Dobbiamo trovare il MCD di due numeri P2.1: Dobbiamo trovare tutti i divisori di un numero

(X) P2.2: Dobbiamo trovare tutti i numeri {C} in

comune a due sequenze {S1, S2} di numeri P2.3: Dobbiamo trovare il maggiore tra N numeri

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P1P1: Fare/creare un piano: Fare/creare un piano

• P1: Ci servono due numeri interi P1.1: Ci servono due scatole per

salvare i due numeri• Di che tipo sono i numeri che ci servono?

P1.2: I numeri devono essere maggiori uguali A 1• Come facciamo a garantire che il numero

inserito sia maggiore uguale a 1?

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P1.2P1.2: Fare/creare un piano: Fare/creare un piano

• P1.2: I numeri devono essere maggiori uguale a 1 Come facciamo a garantire che il

numero inserito sia maggiore uguale a 1?A. Inserisci il numeroB. Il numero è maggiore o uguale a 1

a. Se si FINEb. Se no, torna a A

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P1.2P1.2: Chiariamo meglio…: Chiariamo meglio…

• P1.2: I numeri devono essere maggiori uguale a 1 Come facciamo a garantire che il

numero inserito sia maggiore uguale a 1?A. Inserisci il numeroB. Finché Il numero è minore di 1, torna ad

A

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P1.1+P1.2P1.1+P1.2: : P1 P1 risoltorisolto

1. P1.1: Leggo un dato intero N12. P1.2: Finché N1 è minore di 1,

torna ad 13. P1.1: Leggo un dato intero N24. P1.2: Finché N2 è minore di 1,

torna ad 3

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2P2: Fare/creare un piano: Fare/creare un piano

• P2: Dobbiamo trovare il MCD di due numeri P2.1: Dobbiamo trovare tutti i divisori di

un numero (X) P2.2: Dobbiamo trovare tutti i numeri

{C} in comune a due sequenze {S1, S2} di numeri

P2.3: Dobbiamo trovare il maggiore tra N numeri

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1P2.1: Fare/creare un piano: Fare/creare un piano

• P2.1: Dobbiamo trovare tutti i divisori di un numero (X) Definisco D come numero che varia

tra 1 e X• Dati X e D, interi positivi• se X/D da resto 0,

– D è divisore di X

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.2P2.2: Fare/creare un piano: Fare/creare un piano

• P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri Dato X1 appartenente a S1 Dato X2 appartenente a S2 Se X1 è uguale a X2 allora il valore è

comune a S1 e S2

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.3P2.3: Chiariamo meglio…: Chiariamo meglio…

• P2.3: Dobbiamo trovare il maggiore tra N numeri1. Il maggiore è il primo numero di N2. Vi è un altro numero in N?

A. Sia. Confronto il maggiore con il successivob. Il successivo è maggiore?c. Si: il maggiore diventa il successivod. Vado a 2

B. No: vado a 3

3. Il maggiore è maggiore

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.3P2.3: Fare/creare un piano: Fare/creare un piano

• P2.3: Dobbiamo trovare il maggiore tra N numeri1. Il maggiore è il primo numero di N2. Finché vi sono numeri in N?

a. Confronto il maggiore con il successivob. Il successivo è maggiore?c. Si: il maggiore diventa il successivod. Vado a 2

3. Il maggiore è maggiore

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1+P2.2P2.1+P2.2: Fare/creare un : Fare/creare un pianopiano

• P2.1: Dobbiamo trovare tutti i divisori di un numero

• P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri

18

Come sono i numeri in {C}? (P2.2)

Sono divisori di un numero! (P1.1)

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1+P2.2P2.1+P2.2: Ricordiamo…: Ricordiamo…

• P2.1: Dobbiamo trovare tutti i divisori di un numero (X) Definisco D come numero che varia tra 1 e X

• Dati X e D, interi positivi• se X/D da resto 0, D è divisore di X

• P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri Dato D1 appartenente a S1 Dato D2 appartenente a S2 Se D1 è uguale a D2 allora il valoro è comune

a S1 e S2

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1+P2.2P2.1+P2.2: ma quindi…: ma quindi…

• Dati due numeri N1 e N2

• P2.1: D1 divide N1 (appartiene a S1)• P2.1: D2 divide N2 (appartiene a S2)• P2.2: D1 è uguale a D2?

SI: D1 (o D2) è un divisore comune a N1 e a N2

20

Se D1 è maggiore di N2?Se D2 è maggiore di N1?

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1+P2.2P2.1+P2.2: e ancora…: e ancora…

• Dati due numeri N1 e N2• X = 1• Finché X è minore o uguale a N1 e a

N2 P2.1: X divide N1? e X divide N2?• SI: P2.2 X è divisore comune a N1 e a N2

Incremento X

21

E cosa facciamo a P2.3?

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.3P2.3: Fare/creare un piano: Fare/creare un piano

• P2.3: Dobbiamo trovare il maggiore tra N numeri1. Il maggiore è il primo numero di N2. Finché vi sono numeri in N?

a. Confronto il maggiore con il successivob. Il successivo è maggiore?c. Si: il maggiore diventa il successivod. Vado a 2

3. Il maggiore è maggiore

22

E se gli N numeri fossero ordinatiin ordine crescente?

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.3P2.3: Numeri ordinati: Numeri ordinati

• P2.3: Dobbiamo trovare il maggiore tra N numeri1. Il maggiore è l’ultimo numero di N

23

Essendo ordinati in ordine crescenteOgni successero è maggiore del precedente

Come usiamo questa idea?

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2.1+P2.2+P2.3P2.1+P2.2+P2.3

• Dati due numeri N1 e N2• X = 1• Finché X è minore o uguale a N1 e a N2

P2.1: X divide N1? e X divide N2?• SI: P2.2 X è divisore comune a N1 e a N2

Incremento X

P2.3: Dobbiamo trovare il maggiore tra N numeri

24

Come varia X?In ordine crescente :)

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2: P2: risoltorisolto

• Dati due numeri N1 e N2• X = 1 e TMP = 1• Finché X è minore o uguale a N1 e a

N2 P2.1: X divide N1? e X divide N2?• SI:

– P2.2: X è divisore comune a N1 e a N2– P2.3: TMP = X

Incremento X

• TMP è il MCD

25

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P1P1 ++ P2: P2: mettiamo tutto mettiamo tutto insiemeinsieme

1. P1.1: Leggo un dato intero N12. P1.2: Finché N1 è minore di 1, torna ad 13. P1.1: Leggo un dato intero N24. P1.2: Finché N2 è minore di 1, torna ad 35. X = 1 e TMP = 16. Finché X è minore o uguale a N1 e a N2

1. P2.1: X divide N1? e X divide N2?1. SI:

1. P2.2: X è divisore comune a N1 e a N22. P2.3: TMP = X

2. Incremento X

7. TMP è il MCD

26

Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come realizzare un algoritmoCome realizzare un algoritmo

• Parte 3/4: Portare avanti il piano Mettere in azione il vostro piano! Rimanere sul piano deciso a meno

che non vi siano evidenti motivi per credere che esso non funzionerà più

La pazienza è il vostro miglior alleato

27

Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

1. P1.1: Leggo un dato intero N12. P1.2: Finché N1 è minore di 1, torna ad 13. P1.1: Leggo un dato intero N24. P1.2: Finché N2 è minore di 1, torna ad 35. X = 1 e TMP = 16. Finché X è minore o uguale a N1 e a N2

1. P2.1: X divide N1? e X divide N2?1. SI:

1. P2.2: X è divisore comune a N1 e a N22. P2.3: TMP = X

2. Incremento X7. TMP è il MCD

28

Quante e quali variabili ci servono?

Page 29: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

29

Quante e quali variabili ci servono?

Page 30: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

1. P1.1: Leggo un dato intero N12. P1.2: Finché N1 è minore di 1,

torna ad 1

30

Page 31: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

5. X = 1 e TMP = 1;

31

Page 32: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Definisco la condizioneDefinisco la condizione

32

A: X <= N1B: X <= N2

6. Finché X è minore o uguale a N1 e a N2

A B uscita0 0 00 1 01 0 01 1 1

6. Finché ((X<=N1) AND (X<=N2))

Page 33: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

6. Finché X è minore o uguale a N1 e a N21. P2.1: X divide N1? e X divide N2?

1. SI: 1. P2.2: X è divisore comune a N1 e a N22. P2.3: TMP = X

2. Incremento X

33

Page 34: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Funzioni equivalenti 1Funzioni equivalenti 1

34

A: N1%XB: 0

A B uscita0 0 0!0 0 1

uscita è identica ad Auscita = A

NO!!!!!

Page 35: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Vediamo il codiceVediamo il codice

35

Page 36: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Vediamo il codice: debugVediamo il codice: debug

36

Page 37: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Vediamo il codice: debugVediamo il codice: debug

37

Page 38: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Funzioni equivalenti 1: Funzioni equivalenti 1: correttacorretta

38

A: N1%XB: 0

A B uscita0 0 1!0 0 0

uscita è identica all’inverso di Auscita = !A

Page 39: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Funzioni equivalenti 2Funzioni equivalenti 2

39

è equivalente a

Page 40: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Parte 3/4: Portare avanti il Parte 3/4: Portare avanti il pianopiano

1. P1.1: Leggo un dato intero N12. P1.2: Finché N1 è minore di 1, torna ad 13. P1.1: Leggo un dato intero N24. P1.2: Finché N2 è minore di 1, torna ad 35. X = 1 e TMP = 1;6. Finché X è minore o uguale a N1 e a N2

1. P2.1: X divide N1? e X divide N2?1. SI:

1. P2.2: X è divisore comune a N1 e a N22. P2.3: TMP = X

2. Incremento X

7. TMP è il MCD

40

Page 41: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MCD: Finito…MCD: Finito…

41

Page 42: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Come realizzare un algoritmoCome realizzare un algoritmo

• Parte 4/4: Ragionare e comprendere Comprendere quello che si è fatto e

dove l’algoritmo individuato possa essere applicato al meglio

La pratica è fondamentale!

42

Page 43: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ma scusate…Ma scusate…

N1 = 200000N2 = 100000

43

Vogliamo veramente partire da 1Finché ((X<=N1) AND (X<=N2))

??????

Page 44: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2: P2: risoltorisolto

• Dati due numeri N1 e N2• X = 1 e TMP = 1• Finché X è minore o uguale a N1 e a

N2 P2.1: X divide N1? e X divide N2?• SI:

– P2.2: X è divisore comune a N1 e a N2– P2.3: TMP = X

Incremento X

• TMP è il MCD

44

Page 45: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Tornado nel passato…Tornado nel passato…

45

Page 46: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

P2: P2: risoltorisolto

• Dati due numeri N1 e N2• X = min (N1,N2)• Finché P2.1: X non divide N1 e N2

Decremento X

• P2.2 e P2.3: X è divisore comune a N1 e a N2

46

Page 47: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Definisco la condizioneDefinisco la condizione

47

A: N1%XB: N2%X

Finché X non divide N1 e N2

A B uscita0 0 10 1 01 0 01 1 0

Finché !(!(N1%x) AND !(N2%X))

Page 48: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Definisco la condizioneDefinisco la condizione

48

A B !A !B (!A && !B) !(!A && !B)

0 0 1 1 1 00 1 1 0 0 1 1 0 0 1 0 11 0 0 1 0 1

Continuo finché 1

Page 49: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MCD: Finito!MCD: Finito!

49