Sei sulla pagina 1di 11

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

Fondamenti di Informatica

Le strutture di controllo:
Iterazione
Iterazione – un esempio introduttivo
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero positivo o nullo, e calcola e
visualizza il suo fattoriale
Inizio

Leggi(n)

f=1
Falso
Vero n>1
Iterazione
f=f*n Scrivi(f)

n=n-1 Fine

20
Iterazione - while
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• La parola chiave while permette di definire un ciclo a


condizione iniziale
• Il blocco viene eseguito finché la condizione permane vera

while (<condizione>) {
<blocco di istruzioni>
} Condizione
Vero Falso
<istruzione>
... Blocco Istruzione

21
Iterazione – un esempio introduttivo
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero positivo o nullo, e calcola e
visualizza il suo fattoriale
Inizio int main(){
int n, f;
Leggi(n)
scanf("%d", &n);
f=1 f = 1;
while (n > 1){
Falso
Vero n>1 f = f * n;
n = n - 1;
f=f*n Scrivi(f) }
printf("%d", f);
n=n-1 Fine
return 0;
}
22
Elementi di un costrutto ciclico
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Inizializzazione
§ Le variabili interessate, e soprattutto quelle usate nella condizione del
ciclo, devono essere inizializzate prima della valutazione della
condizione
• Test
§ Deve essere prevista una valutazione della condizione di permanenza
nel ciclo, che determini la ripetizione o la terminazione del ciclo
• Aggiornamento
§ Almeno una delle variabili della condizione deve essere modificata
all’interno del ciclo, in modo che prima o poi la condizione di
ripetizione diventi falsa, causando la terminazione del ciclo

23
Iterazione – un altro esempio
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero positivo e visualizza tutti i
numeri da 0 al valore inserito
Inizio

Leggi(n)

c=0
Falso
Vero c <= n
Iterazione
Scrivi(c) Fine

c=c+1

24
Iterazione – una soluzione
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero positivo e visualizza tutti i
numeri da 0 al valore inserito
Inizio
int main(){
Leggi(n)
int n, c;
c=0 scanf("%d", &n);
c = 0;
Falso
Vero c <= n while(c <= n){
printf("%d ", c);
Scrivi(c) Fine c = c + 1;
}
c=c+1
return 0;
}
25
Iterazione – un altro esempio
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero e verifica se questo è positivo; in
caso la condizione non sia verificata ripete l’acquisizione. Una
volta letto un valore valido, l’algoritmo lo visualizza
Inizio

Leggi(n)
Iterazione Vero
n<=0
Falso

Scrivi(n)

Fine

26
Iterazione – do-while
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Le parole chiave do e while permettono di definire un ciclo


a condizione finale

do{
<blocco> Blocco
} while (<condizione>);
<istruzione> Condizione
Vero Falso
...
Istruzione
Attenzione:
Serve il punto e
virgola per terminare
l’istruzione

27
Iterazione – un altro esempio
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• Disegnare il diagramma di flusso di un algoritmo che


acquisisce un numero intero e verifica se questo è positivo; in
caso la condizione non sia verificata ripete l’acquisizione. Una
volta letto un valore valido, l’algoritmo lo visualizza

Inizio
int main(){
int n;
Leggi(n)
Vero do{
n<=0 scanf("%d", &n);
Falso } while (n <= 0);
printf("%d", n);
Scrivi(n)
return 0;
Fine }

28
Combinazione di più costrutti
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA

• I costrutti presentati possono essere combinati come


presentato con i diagrammi di flusso
§ Possiamo annidare un costrutto nel corpo di un altro costrutto
§ Possiamo utilizzare più costrutti in sequenza nello stesso blocco di
istruzioni ...
if (...){
do {
...
} while(...);
} else {
if(...){
...
} else {
...
}
}
29

Potrebbero piacerti anche

  • Architettura Macchina
    Architettura Macchina
    Documento51 pagine
    Architettura Macchina
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • Compatibilità Tra Tipi
    Compatibilità Tra Tipi
    Documento11 pagine
    Compatibilità Tra Tipi
    Dali Zheng
    Nessuna valutazione finora
  • Allocazione Dinamica
    Allocazione Dinamica
    Documento10 pagine
    Allocazione Dinamica
    Dali Zheng
    Nessuna valutazione finora
  • Array e For
    Array e For
    Documento19 pagine
    Array e For
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • File 2021
    File 2021
    Documento24 pagine
    File 2021
    Dali Zheng
    Nessuna valutazione finora
  • Intro C
    Intro C
    Documento51 pagine
    Intro C
    Dali Zheng
    Nessuna valutazione finora
  • Array e For
    Array e For
    Documento19 pagine
    Array e For
    Dali Zheng
    Nessuna valutazione finora
  • Informatica
    Informatica
    Documento1 pagina
    Informatica
    Dali Zheng
    Nessuna valutazione finora
  • Argomenti Lineacomando
    Argomenti Lineacomando
    Documento8 pagine
    Argomenti Lineacomando
    Dali Zheng
    Nessuna valutazione finora