Académique Documents
Professionnel Documents
Culture Documents
condizione
vero
falso
La condizione viene testata prima di entrare nel ciclo. Mentre la condizione vera, si continua a ciclare, cio ad eseguire le istruzioni del ciclo; quando la condizione diventa falsa il ciclo termina. Osservate che, se la condizione subito falsa, il ciclo non viene eseguito nemmeno una volta. Inoltre, importante sottolineare che la condizione unespressione booleana contenente almeno una variabile il cui valore viene modificato allinterno del ciclo. In caso contrario, se la condizione inizialmente vera, essa continua ad esserlo indefinitamente e ci causa un loop infinito. Per esempio, supponiamo che la condizione sia x<5 e che x valga 2. Se la variabile x non subisce modifiche allinterno del ciclo, la condizione rimane sempre vera e dal ciclo non si esce mai.
vero
condizione
falso
La condizione viene testata dopo lesecuzione delle istruzioni del ciclo. Si continua a ciclare fintanto che la condizione vera; quando la condizione diventa falsa il ciclo termina. Osservate che, anche se la condizione subito falsa, il ciclo viene eseguito almeno una volta. Analogamente alla struttura ciclica precondizionale, la condizione unespressione booleana contenente almeno una variabile il cui valore viene modificato allinterno del ciclo.
Esempio: conteggi
Consideriamo il seguente esempio: Contare i numeri inseriti dallutente, fino a quando non viene inserito uno zero. In altre parole, quando lutente non ha pi numeri da inserire, immette uno zero. Azioni ripetute: inserimento di un numero e suo conteggio. Terminazione del ciclo: inserimento del numero zero. Per contare abbiamo bisogno di una variabile che funga da contatore, cio di una variabile che si incrementa di 1 ad ogni inserimento di un numero, eccetto quando questo zero. Questa variabile deve avere un valore iniziale pari a zero. Immaginate che la variabile contatore sia un secchio e che i numeri siano palline da ping pong.
contatore 0
contatore 1
contatore 2
vuoto
+1 pallina
+1 pallina
Il contatore vale inizialmente zero. Quando viene aggiunta una pallina il contatore si incrementa di uno, cio aggiunge 1 al suo valore corrente, e passa al valore 1 (0+1). Quando viene aggiunta unaltra pallina, il contatore passa al valore 2 (1+1), e cos via.
input <> 0
vero
falso
vero
input <> 0
falso
ciclo postcondizionale
contatore= contatore+1;
Caratteristiche e confronti Il ciclo precondizionale presenta un problema: non possibile valutare la condizione perch non stato acquisito ancora alcun input. Occorre quindi leggere un numero prima di entrare nel ciclo. Se il numero subito zero, il ciclo non viene eseguito nemmeno una volta. Il ciclo postcondizionale non crea problemi per linput iniziale poich la prima azione che si esegue proprio la lettura del numero. Purtroppo, per, se il primo numero zero il ciclo viene eseguito una volta e si ottiene un valore del contatore errato.
Esempio: sommatorie
Consideriamo il seguente esempio: Sommare i numeri inseriti dallutente, fino a quando non viene inserito uno zero. Azioni ripetute: inserimento di un numero e calcolo somma. Terminazione del ciclo: inserimento del numero zero. Per sommare abbiamo bisogno di una variabile che funga da sommatore, cio di una variabile che si incrementi di un valore non fisso ad ogni inserimento di un numero, eccetto quando questo sia zero. Questa variabile deve avere un valore iniziale pari a zero. Immaginate che la variabile sommatore sia un secchio e i numeri siano palline da ping pong. Il numero di palline da ping pong varia di volta in volta.
sommatore 0
sommatore 3 1
sommatore 5 2
vuoto
+3 palline
+2 palline
Il sommatore vale inizialmente zero. Quando viene aggiunto un certo numero di palline n il sommatore si incrementa di n, cio aggiunge n al suo valore corrente.
input <> 0
vero
falso
vero
input <> 0
falso
ciclo postcondizionale