DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Costrutti iterativi
Marco D. Santambrogio – [email protected]
Ver. aggiornata al 20 Ottobre 2014
Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Costrutti iterativi
 do.. while
 While
 for
2
Problema: caratteri MaIuScOli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma che, preso un
carattere minuscolo da tastiera, ne
riporta a video l’equivalente maiuscolo
3
Maiuscolo: codice ottimizzato
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
4
Problema: caratteri MaIuScOli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Pseudocodice V1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Dati
 L’insieme dei caratteri ammissibili
{a, b, c, …, z}
1.Richiedere l’inserimento di un carattere
2.Se carattere inserito corretto
A.Allora stampa a video carattere-32
3.Altrimenti
A.stampa a video un messaggio di errore
B.ritorna ad 1
6
Pseudocodice V2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
MaIuScOli: codice V2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
MaIuScOli: codice V2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ATTENZIONE!!!
2. Finchè carattere inserito !corretto
Identifica il carattere CORRETTO!
9
MaIuScOli: codice corretto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1.Richiedere l’inserimento di un carattere
2.Finchè carattere inserito !corretto torna ad 1
10
MaIuScOli: codice corretto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1.Richiedere l’inserimento di un carattere
2.Finchè carattere inserito !corretto torna ad 1
11
MaIuScOli: codice corretto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
Come traduco il finché? WHILE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Itera l’esecuzione di una istruzione finché una
certa condizione è vera
int a, b;
condizione di
scanf("%d%d", &a, &b);
PERMANENZA
while ( b > 0 ) {
nel ciclo
a = a + a;
--b;
}
printf ("Il valore di a ora è %d", a);
13
Il ciclo (loop) while
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Itera l’esecuzione di una istruzione
fintantoché una certa condizione è vera
int a, b;
scanf("%d%d", &a, &b);
Che cosa calcola?
while ( b > 0 ) {
a = a + a;
a*2b se b>0
la funzione f(a,b) =
--b;
a
se b≤0
}
printf ("Il valore di a ora è %d", a);
14
Il maggiore tra N numeri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Il maggiore: codice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
Il maggiore tra N numeri: osservazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Osservazione: Perchè usare un while se
conosco il numero di iterazioni del cliclo?
17
Il maggiore: zoom sul codice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
18
Il ciclo for
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
cont = 0;
while (cont < N) {
…;
…;
cont++;
}
for (cont = 0; cont < N; cont++) {
…;
…;
}
19
Il ciclo for
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
for ( exp.A; cond; exp.I ) {
ist.1;
...
ist.N;
}
exp.A;
while ( cond ) {
ist.1;
...
ist.N;
exp.I;
}
ATTENZIONE
20
Il maggiore – for : codice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
21
Il maggiore – while Vs for
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
22
Ora dovrebbe essere chiara…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
23
Problemi di fine giornata…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Fonti per lo studio + Credits
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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/
Scarica

PPT - V2