In questa lezione propongo un esempio di ciclo indefinito con i diagrammi di flusso.

Esempio di ciclo indefinito

Leggere e sommare una quantità indefinita di numeri finché‚ la loro somma diventa uguale a zero.

Per risolvere questo algoritmo con i diagrammi a blocchi utilizzeremo inizialmente il ciclo while. Poi svilupperemo lo stesso esempio, di ciclo indefinito, utlizzando il do-while, per capire la differenza tra le due strutture iterative.

Prima soluzione con il while

Leggendo il testo notiamo subito che la sequenza di numeri da leggere non è definita. Ci fermeremo dunque quando la condizione somma uguale a 0 è verificata.

In questa prima soluzione con il while, occorre chiedere n subito all’inizio e poi inizializzare la variabile somma ad n.

Dopo, utilizzando il while con la seguente condizione: somma!=0, si chiede nuovamente n e si aggiorna la variabile somma.

Banner Pubblicitario

Quindi finchè la somma non sarà uguale a 0 il ciclo continuerà.

Ecco l’algoritmo completo. Noterete che il problema non richiede nessun output, quindi non lo inseriamo.

indefiniti cicli

Seconda soluzione con il do-while

In questa seconda soluzione, che utilizza il ciclo do-while, basta semplicemente inizializzare la somma a 0 (in questa versione di Algobuild occorre impostare somma=0.0 oppure dichiarare n intero).

Poi all’interno del ciclo chiediamo n e facciamo la somma.

Dopo queste istruzioni verrà valutata la condizione che imposteremo come prima: somma!=0.

ciclo indefinito

Abbiamo risolto un algoritmo con i diagrammi di flusso con un ciclo indefinito utilizzando sia il while, sia il do-while, nella prossima lezione vedremo un altro esempio di ciclo indefinito.

Alcuni link utili

Indice argomenti diagramma a blocchi

Banner pubblicitario

Numeri primi da 1 a 100

Array con Algobuild

Divisori di un numero con Algobuild

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con Algobuild

Fibonacci con Algobuild

Serie buffa con Algobuild

Numeri amicabili con Algobuild

Numeri perfetti con Algobuild

Massimo fra tre numeri

Minore fra tre numeri