Esempio di ciclo indefinito

Esempio di ciclo indefinito

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.

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

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

Esercitazione sui cicli indefiniti

Esercitazione sui cicli indefiniti

In questa lezione propongo un’altra esercitazione sui cicli indefiniti.

Esercitazione sui cicli indefiniti – primo esercizio

Scrivi un programma che, leggendo due numeri, sottrae il minore dal maggiore finché la loro differenza diventa inferiore a 3 unità visualizzando sullo schermo il risultato di ogni iterazione.

Innanzitutto chiediamo di inserire n1 ed n2 e calcoliamo il maggiore ed il minore, memorizzandoli nelle variabili opportune. Quindi calcolo la differenza tra il massimo ed il minimo.

Dopo, con il ciclo while, continuo a fare la differenza tra il valore ottenuto dalla differenza ed il valore minore.

Ecco dunque una possibile soluzione su questa esercitazione sui cicli indefiniti.

Esercitazione sui cicli indefiniti – secondo esercizio

Leggere da tastiera un numero imprecisato di coppie di numeri interi. Terminare la lettura quando il primo dei due termini risulta uguale a zero. Contare le coppie che hanno il prodotto multiplo di un numero intero K.

Innanzitutto chiediamo in input i due numeri n1, ed n2 e l’intero k.

Dopo impostiamo la variabile conta a 0. Poi inseriamo un ciclo while impostando la condizione n1!=0 che è la condizione di uscita.

All’interno del ciclo controlliamo se il prodotto tra n1 ed n2 è multiplo di k e se n2 è diverso da 0. Se questa condizione è verificata allora incrementiamo la variabile conta di 1.

Ecco di seguito una possibile soluzione dell’algoritmo sui cicli indefiniti proposta come secondo esercizio.

cicli indefiniti esercitazione

Abbiamo svolto delle esercitazioni sui cicli indefiniti con i diagrammi di flusso.

Alcuni link utili

Indice argomenti diagramma a blocchi

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