DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio –...
-
Upload
gianna-tedesco -
Category
Documents
-
view
218 -
download
0
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio –...
![Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/1.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Costrutti iterativiCostrutti iterativi
Marco D. Santambrogio – [email protected]. aggiornata al 27 Marzo 2015
![Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/2.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Umh…Umh…
Per farvi aggiungere al gruppo su Facebook…
…usate un nome significativo!
2
![Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/3.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Umh…Umh…
Per farvi aggiungere al gruppo su Facebook…
…usate un nome significativo!
3
![Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/4.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Umh…Umh…
Per farvi aggiungere al gruppo su Facebook…
…usate un nome significativo!
4
nome !significativo
![Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/5.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma prima…Ma prima…
5
![Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/6.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema: errori sullProblema: errori sull’’inputinput
• Problema Preso un dato inserito da tastiera Per potervi applicare la trasformazione
di nostro interesse Dobbiamo prima verificare che il dato sia
coerente con quanto ci aspettiamo
• Soluzione Definire l’insieme dei caratteri validi Verificare l’appartenenza del carattere
inserito, all’insieme dei caratterei validi
6
![Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/7.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
PseudocodicePseudocodice
• Dati L’insieme dei caratteri ammissibili
{a, b, c, …, z}
1. Richiedere l’inserimento di un carattere
2. Se carattere inserito corretto3. Allora stampa a video carattere-324. Altrimenti stampa a video un
messaggio di errore
7
![Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/8.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Dati L’insieme dei caratteri ammissibili
{a, b, c, …, z}
• Il carattere inserito deve essere =>a <= z
8
![Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/9.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: solo ifsolo if
9
![Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/10.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y?
10
![Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/11.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y? Se X = 0?
11
![Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/12.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita FALSA
12
![Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/13.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita FALSA Se Y = 0?
13
![Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/14.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita FALSA Se Y = 0? Vogliamo una uscita FALSA
14
![Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/15.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita FALSA Se Y = 0? Vogliamo una uscita FALSA Se X = 1 e Y = 1? Uscita VERA!
15
![Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/16.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y?
16
X Y USCITA
0 0 00 1 01 0 01 1 1
![Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/17.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y?
17
X Y USCITA
0 0 00 1 01 0 01 1 1
Vi ricorda
qualche cosa?
![Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/18.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y?
18
X Y USCITA
0 0 00 1 01 0 01 1 1
Vi ricorda
qualche cosa?
AND!!!
![Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/19.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Condizione da verificareCondizione da verificare
• Il carattere inserito deve essere X: =>a Y: <= z
• Come vogliamo che si comporti il nostro modello rispetto a X e Y?
19
Vi ricorda
qualche cosa?
AND!!!
X Y X AND Y0 0 00 1 01 0 01 1 1(prodotto logico)
![Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/20.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Maiuscolo: Maiuscolo: ANDAND
20
![Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/21.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tornando ad oggi…Tornando ad oggi…
21
![Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/22.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• Costrutti iterativi do.. while While for
22
![Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/23.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema: caratteri Problema: caratteri MaIuScOliMaIuScOli
• Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo Si continui a chiedere l’inserimento
del carattere, fino a quando questo non è corretto
23
![Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/24.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
PseudocodicePseudocodice
• Dati L’insieme dei caratteri ammissibili
{a, b, c, …, z}
1.Richiedere l’inserimento di un carattere
2.Se carattere inserito correttoA.Allora stampa a video carattere-32
3.AltrimentiA.stampa a video un messaggio di erroreB.ritorno ad 1
24
![Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/25.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codiceMaIuScOli: codice
25
![Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/26.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codiceMaIuScOli: codice
26
![Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/27.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come si comporta il nostro modello rispetto a X e Y?
NOTA: quando VERA, continua!
27
![Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/28.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come si comporta il nostro modello rispetto a X e Y?
NOTA: quando VERA, continua!
28
X Y X AND Y0 0 00 1 01 0 01 1 1
![Page 29: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/29.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come si comporta il nostro modello rispetto a X e Y?
NOTA: quando VERA, continua!
29
X Y X AND Y0 0 00 1 01 0 01 1 1
Continua quando
X e Y sono VERE!
![Page 30: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/30.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come si comporta il nostro modello rispetto a X e Y?
NOTA: quando VERA, continua!
30
X Y X AND Y0 0 00 1 01 0 01 1 1
È quello che
vogliamo?Continua quando
X e Y sono VERE!
![Page 31: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/31.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come si comporta il nostro modello rispetto a X e Y?
NOTA: quando VERA, continua!
31
X Y X AND Y0 0 00 1 01 0 01 1 1
È quello che
vogliamo?Continua quando
X e Y sono VERE!
NO!
![Page 32: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/32.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y? Se X = 0?
32
![Page 33: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/33.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita VERA
33
![Page 34: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/34.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita VERA Se Y = 0?
34
![Page 35: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/35.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita VERA Se Y = 0? Vogliamo una uscita VERA
35
![Page 36: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/36.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y? Se X = 0? Vogliamo una uscita VERA Se Y = 0? Vogliamo una uscita VERA Se X = 1 e Y = 1? Uscita FALSA!
36
![Page 37: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/37.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y?
37
X Y USCITA0 0 10 1 11 0 11 1 0
![Page 38: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/38.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y?
38
Vi ricorda
qualche cosa?X Y USCITA0 0 10 1 11 0 11 1 0
![Page 39: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/39.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y?
39
X Y USCITA0 0 10 1 11 0 11 1 0
X Y X AND Y0 0 00 1 01 0 01 1 1
![Page 40: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/40.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ma il Ma il modellomodello è corretto? è corretto?
• X: ‘a’ <= carattere• Y: ‘z’ <= carattere
• Come vorremmo che si comportasse il nostro modello rispetto a X e Y?
40
X Y Z: X AND Y !Z
0 0 0 10 1 0 11 0 0 11 1 1 0
X Y USCITA0 0 10 1 11 0 11 1 0
X Y X AND Y0 0 00 1 01 0 01 1 1
![Page 41: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/41.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codice correttoMaIuScOli: codice corretto
41
![Page 42: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/42.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codice correttoMaIuScOli: codice corretto
42
![Page 43: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/43.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: pseudocodiceMCD: pseudocodice
1. Leggi A e B2. min= il minimo tra A e B3. trovato = 0; MCD = min;4. Finche’ trovato != 1
1. Se MCD divide A e B1. Allora trovato = 1 2. Altrimenti MCD = MCD - 1
5. Stampa MCD
43
![Page 44: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/44.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: diagramma di flussoMCD: diagramma di flusso
44
Inizio Leggi A e B
min=minimo{A,B}trovato = 0MCD=min
trovato!=1?
trovato!=1?
MCD divide A e B
MCD divide A e B
trovato = 1
Stampa MCD
Fine
no
nosi
si
MCD=MCD -1
![Page 45: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/45.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
45
• Itera l’esecuzione di una istruzione finché una certa condizione è vera
int a, b;scanf("%d%d", &a, &b);while ( b > 0 ) {
a = a + a;--b;
}printf ("Il valore di a ora è %d", a);
Come traduco il Come traduco il finchéfinché? ? WHILEWHILE
condizione di PERMANENZA nel ciclo
![Page 46: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/46.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
46
• Itera l’esecuzione di una istruzione fintantoché una certa condizione è vera
int a, b;scanf("%d%d", &a, &b);while ( b > 0 ) {
a = a + a;--b;
}printf ("Il valore di a ora è %d", a);
Che cosa calcola?
la funzione f(a,b) =a*2b se b>0
a se b≤0
Il ciclo (loop) whileIl ciclo (loop) while
![Page 47: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/47.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tornando al MCD… il Tornando al MCD… il codicecodice
1. trovato = 0;
1. Leggi A e B
1. min= il minimo tra A e B
2. MCD = min;3. Finche’ trovato != 1
1. Se MCD divide A e B1. Allora trovato = 1 2. Altrimenti MCD = MCD -
1
4. Stampa MCD
47
![Page 48: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/48.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: zoomMCD: zoom
48
![Page 49: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/49.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore tra N numeriIl maggiore tra N numeri
• Problema Trovare il maggiore tra N numeri positivi
inseriti da tastiera
• Soluzione Conoscere N Richiedere l’inserimento degli N valori Ricerca del maggiore tra gli N valori
49
![Page 50: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/50.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggioreIl maggiore: codice: codice
50
![Page 51: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/51.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La gara di nuotoLa gara di nuoto
• Problema Si hanno10 giudici
• 1 giudice = 1 voto Ogni voto è nell’itervallo 0-10 Dato un tuffo, calcolare
• La media dei voti• Il voto massimo ed il voto minimo
51
![Page 52: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/52.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice - errori: codice - errori
52
![Page 53: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/53.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice - errori: codice - errori
53
Cosa succede a giudicead ogni iterazione?
![Page 54: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/54.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice - errori: codice - errori
54
Cosa succede a giudicead ogni iterazione?
NIENTE!!!!Ciclo infinito!!!
![Page 55: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/55.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice: codice
55
![Page 56: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/56.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
OsservazioniOsservazioni
• Problema 1 Si continui a chiedere l’inserimento
del carattere, fino a quando questo non è corretto
• Problema 2 Trovare il maggiore tra N numeri
inseriti da tastiera
56
![Page 57: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/57.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
OsservazioniOsservazioni
• Problema 1 Si continui a chiedere l’inserimento
del carattere, fino a quando questo non è corretto
• Problema 2 Trovare il maggiore tra N numeri
inseriti da tastiera
Del problema 2 conosco il numero di iterazioni!
57
![Page 58: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/58.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore tra N numeriIl maggiore tra N numeri
• Problema Trovare il maggiore tra N numeri inseriti
da tastiera
• Soluzione Conoscere N Richiedere l’inserimento degli N valori Ricerca del maggiore tra gli N valori
58
![Page 59: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/59.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggioreIl maggiore: zoom sul : zoom sul codicecodice
59
![Page 60: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/60.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore tra N numeri: Il maggiore tra N numeri: osservazioneosservazione
Osservazione: Perchè usare un while se conosco il numero di iterazioni del cliclo?
60
![Page 61: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/61.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
61
cont = 0;while (cont < N) {
…;…;cont++;
}for (cont = 0; cont < N; cont++) {
…;…;
}
Il ciclo Il ciclo forfor
![Page 62: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/62.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
62
ATTENZIONE
Il ciclo forIl ciclo for
for ( exp.A; cond; exp.I ) {ist.1;...ist.N;
}
exp.A;while ( cond )
{ist.1;...ist.N;exp.I;
}
![Page 63: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/63.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore – for Il maggiore – for : codice: codice
63
![Page 64: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/64.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore – Il maggiore – while Vs forwhile Vs for
64
![Page 65: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/65.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ora dovrebbe essere Ora dovrebbe essere chiara…chiara…
65
![Page 66: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/66.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il fattorialeIl fattoriale
• Dato n, intero positivo, si definisce n fattoriale e si indica con n! il prodotto dei primi n numeri interi positivi minori o uguali di quel numero. In formule
• Nota: 0! = 1 1! = 1 2! = 2, 3! = 6,…
66
![Page 67: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/67.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il fattoriale: codiceIl fattoriale: codice
67
![Page 68: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/68.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Nota sul fattoriale: Nota sul fattoriale: permutazionipermutazioni
Vi sono n! diverse sequenze formate da n oggetti distinti
Vi sono n! permutazioni di n oggetti iI fattoriali enumerano le
permutazioni
68
![Page 69: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/69.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problemi di fine giornata…Problemi di fine giornata…
• Modificare gli esercizi di oggi, andando, dove necessario, ad inserire il controllo sugli ingressi
• Trovare il maggiore tra N numeri positivi inseriti da tastiera (richiedendo il numero se negativo)
• Dati N numeri, dire se questi sono tutti positivi
• Dati N numeri, riportarne a video il modulo
69
![Page 70: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 27 Marzo 2015.](https://reader036.fdocument.pub/reader036/viewer/2022062702/5542eb77497959361e8e1629/html5/thumbnails/70.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio
Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill• Capitolo 6
• Credits
Daniele Braga - http://home.dei.polimi.it/braga/