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.
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.
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.
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.
Abbiamo svolto delle esercitazioni sui cicli indefiniti con i diagrammi di flusso.