Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | mariano-valle |
View: | 215 times |
Download: | 0 times |
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Costrutti iterativiCostrutti iterativi
Marco D. Santambrogio – [email protected]. aggiornata al 10 Ottobre 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Installation PartyInstallation Party
• Dove: L.06 • Quando:
Sabato 12 Ottobre 9.00am - 12.00pm
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• Costrutti iterativi do.. while While for
3
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
4
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
5
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
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codiceMaIuScOli: codice
7
ATTENZIONE!!!2. Finchè carattere inserito !corretto
Identifica il carattere CORRETTO!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MaIuScOli: codice correttoMaIuScOli: codice corretto
8
1.Richiedere l’inserimento di un carattere2.Finchè carattere inserito !corretto torna ad 1
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
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: diagramma di flussoMCD: diagramma di flusso
10
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
11
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
• 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
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
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: zoomMCD: zoom
14
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggioreIl maggiore: codice: codice
16
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggioreIl maggiore: zoom sul : zoom sul codicecodice
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
19
cont = 0;while (cont < N) {
…;…;cont++;
}for (cont = 0; cont < N; cont++) {
…;…;
}
Il ciclo Il ciclo forfor
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;
}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore – for Il maggiore – for : codice: codice
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore – Il maggiore – while Vs forwhile Vs for
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ora dovrebbe essere Ora dovrebbe essere chiara…chiara…
23
Seguono un paio di esercizi…
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
24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice - errori: codice - errori
25
Cosa succede a giudicead ogni iterazione?
NIENTE!!!!Ciclo infinito!!!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
NuotoNuoto: codice: codice
26
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,…
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il fattoriale: codiceIl fattoriale: codice
28
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
29
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/