Ciclo indefinito con Algobuild

Ciclo indefinito con Algobuild

In questa lezione parleremo di ciclo indefinito con Algobuild, argomento già affrontato, che qui approfondiremo.

Ciclo indefinito con Algobuild

Scrivi un programma che legge da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal primo numero introdotto, stampa ogni volta la media di tutti i numeri introdotti. Termina quando il numero inserito è negativo.

Il programma richiede di fare la media solo dei numeri positivi, quindi dobbiamo escludere dalla media eventuali inserimenti del numero 0.

Il programma esce solo se l’utente inserisce un numero negativo.

Ci servirà una variabile somma che inizializziamo a 0.0 e una variabile conta che inizializziamo a 0 utile per fare la media.

Dopo impostiamo all’interno del ciclo while la condizione n>=0. Poi all’interno inseriamo una struttura condizionale dove, prima di effettuare la somma, l’incremento di conta e poi la media, verifichiamo che il numero inserito sia diverso da 0.

Ecco dunque l’algoritmo completo sviluppato con i diagrammi a blocchi:

media progressiva

Abbiamo visto un altro esempio di ciclo indefinito con Algobuild, nella prossima lezione faremo ancora altri esempi.

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

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

Esempi do while

Esempi do while

In questa lezione svilupperemo degli esempi sul ciclo do while.

Esempi do while con i diagrammi di flusso

Primo esercizio

Dati N numeri (controllare il valore di N con il ciclo do-while) contare e visualizzare quanti sono i multipli di 3.

Innanzitutto chiediamo all’utente di inserire la quantità di numeri, che salveremo nella variabile N, ed effettuiamo il controllo dell’input, richiedendo l’inserimento se N ha un valore negativo o nullo.

Utilizziamo dunque il ciclo post-condizionale do while.

Dunque il primo passaggio da fare è questo:

esempi do while

Adesso occorre utilizzare il ciclo while per inserire gli N numeri.

Innanzitutto impostiamo il contatore a 0 ed inseriamo la condizione nel while conta<N.

Impostiamo a 0 anche la variabile m che ci servirà per contare i multipli di 3.

Inseriamo dunque gli N numeri, inserendo n ad ogni iterazione.

Dopo, per ogni numero inserito verifichiamo se è multiplo di 3. Se la proprietà è verificata allora incrementiamo la variabile m.

multipli do while

Infine visualizziamo il risultato ottenuto:

Multipli di 3

Secondo esercizio

Dati N numeri (controllare il valore di N con il ciclo do-while) contare quanti sono i multipli di un numero positivo A.

L’esercizio è molto simile al precedente. Infatti occorre semplicemente inserire il valore di A in input.

Dunque innanzitutto dobbiamo inserire A ed N e controllare i valori inseriti, utilizzando il ciclo do while, in questo modo:

multipli di A

Adesso dobbiamo semplicemente sostituire A al posto di 3.

In questa lezione abbiamo svolto due semplici esercizi utilizzando il do while, nella prossima lezione ne affronteremo degli altri.

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

Ciclo while diagrammi di flusso

Ciclo while diagrammi di flusso

In questa lezione implementeremo il ciclo while nei diagrammi di flusso.

Il ciclo while è una struttura iterativa, cioè una struttura che consente di ripetere (iterare) delle istruzioni.

La forma da utilizzare per realizzare il ciclo while nei diagrammi di flusso è la seguente:

ciclo while

Ma cosa dobbiamo inserire all’interno della forma? Occorre inserire una condizione che consente al ciclo di terminare.

Quello che ci servirà è una variabile che conta quante volte le istruzioni vengono ripetute, così da poterci fermare quando avremmo raggiunto il numero prestabilito.

Facciamo dunque un esempio concreto.

Ciclo while diagrammi di flusso – primo esempio

Prendere in input 10 numeri e visualizzarli.

Per realizzare questo esempio mi serve una variabile che ad ogni numero inserito si incrementi. Chiamiamo questa variabile conta e la facciamo partire da 0.

Quindi, dopo aver inserito il primo numero la variabile diventerà 1, poi 2, ecc… L’inserimento deve dunque concludersi quando la variabile diventerà 9.

Muoviamo dunque i primi passi verso la realizzazione del nostro algoritmo.

Conta while

Abbiamo inserito la variabile conta e l’abbiamo inizializzata a zero e abbiamo impostato all’interno del while la condizione conta minore di 10.

Attenzione, questa condizione è fondamentale per decretare il numero esatto di iterazioni.

Ma se non cambiamo il valore di conta, il ciclo si ripeterà all’infinito. Dunque inseriamo l’istruzione di incremento dopo l’inserimento del numero n.

Ecco quindi il secondo passo nell’utilizzo del ciclo while nei diagrammi di flusso:

inserire 10 numeri

Notate che dopo l’input, ho inserito conta=conta+1. Attenzione a non dimenticare questa istruzione in quanto altrimenti il ciclo sarebbe infinito.

Non ci rimane che visualizzare i numeri appena inseriti. La visualizzazione va fatta per ogni numero, quindi dobbiamo inserire l’output all’interno del ciclo.

Ecco dunque l’algoritmo completo che utilizza il ciclo while nei diagrammi di flusso.

diagrammi di flusso

Avremmo potuto inserire l’istruzione output anche prima dell’incremento del contatore.

Alcuni link utili

Indice argomenti diagrammi di flusso

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

Creare diagrammi di flusso

Creare diagrammi di flusso

Creare diagrammi di flusso con le istruzioni di selezione utilizzando Algobuild facilita la comprensione dei possibili errori.

Quindi, chi vuole può scaricare Algobuild al seguente link: Algobuild.

Creare diagrammi di flusso: esempio

Proponiamo un semplice diagramma di flusso che utilizza le istruzioni di selezione nidificate.

Ricevuto come input il prezzo P di un prodotto si deve:
– Se P è minore di 10 euro non applicare nessuna tassa;
– Se P è tra 10 e 100 compresi applicare una tassa del 16%;
– Infine se P è maggiore di 100 euro applicare una tassa del 21%.
Visualizzare il prezzo finale del prodotto tasse incluse.

Innanzitutto prendiamo in input solo il prezzo.

Dopo controlliamo se questo dato è minore di 10. Se la condizione è vera non facciamo nulla, altrimenti controlliamo se il prezzo è minore o uguale a 100.

Quindi inseriamo nella condizione prezzo<=100. Chiaramente non dobbiamo mettere che il prezzo è maggiore o uguale di 10 in quanto è scontato, dato che siamo nel ramo del falso.

Dunque se il prezzo è minore o uguale a 100 allora modifichiamo il prezzo esistente aumentandolo del 16%. Se invece il prezzo è maggiore, cioè siamo nel ramo del falso, aumentiamo il prezzo del 21%.

Ecco di seguito l’algoritmo creato con i diagrammi di flusso:

prezzo diagrammi

Abbiamo visto come creare diagrammi di flusso con la struttura di selezione nidificata, più avanti faremo altri esempi.

Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma a blocchi

2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)

3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli