DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio –...

25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Costrutti iterativi Marco D. Santambrogio – [email protected] Ver. aggiornata al 20 Ottobre 2014

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 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Costrutti iterativiCostrutti iterativi

Marco D. Santambrogio – [email protected]. aggiornata al 20 Ottobre 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• Costrutti iterativi do.. while While for

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaiuscoloMaiuscolo: : codice codice ottimizzatoottimizzato

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Pseudocodice V1Pseudocodice V1

• 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.ritorna ad 1

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Pseudocodice V2Pseudocodice V2

• Dati L’insieme dei caratteri ammissibili

{a, b, c, …, z}

1.Richiedere l’inserimento di un carattere

2.Finchè carattere inserito !corretto torna ad 1

3.Stampa a video carattere-32

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaIuScOli: codice V2MaIuScOli: codice V2

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaIuScOli: codice V2MaIuScOli: codice V2

9

ATTENZIONE!!!2. Finchè carattere inserito !corretto

Identifica il carattere CORRETTO!

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaIuScOli: codice correttoMaIuScOli: codice corretto

10

1.Richiedere l’inserimento di un carattere2.Finchè carattere inserito !corretto torna ad 1

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaIuScOli: codice correttoMaIuScOli: codice corretto

11

1.Richiedere l’inserimento di un carattere2.Finchè carattere inserito !corretto torna ad 1

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MaIuScOli: codice correttoMaIuScOli: codice corretto

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

13

• 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 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

14

• 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 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Il maggioreIl maggiore: codice: codice

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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?

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Il maggioreIl maggiore: zoom sul : zoom sul codicecodice

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

19

cont = 0;while (cont < N) {

…;…;cont++;

}for (cont = 0; cont < N; cont++) {

…;…;

}

Il ciclo Il ciclo forfor

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

20

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 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Il maggiore – for Il maggiore – for : codice: codice

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Il maggiore – Il maggiore – while Vs forwhile Vs for

22

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ora dovrebbe essere Ora dovrebbe essere chiara…chiara…

23

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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

24

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Ottobre 2014.

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/