iterazione

Iterazione vuol dire ripetere una o più istruzioni un certo numero di volte, per ottenere il risultato desiderato.

Iterazione con i diagrammi di flusso – esempi

Di seguito ecco l’algoritmo da risolvere:

Prendere in input 10 numeri e contare quanti numeri pari e quanti dispari sono stati inseriti.

Proponiamo di risolvere questo algoritmo iterativo utilizzando il ciclo while, anche se precisiamo è un ciclo con contatore e quindi il ciclo for sarebbe più indicato. Difatti questa risoluzione viene affrontata esclusivamente per permettere una discussione ed un confronto tra i due metodi.

Iterazione – Primo metodo

Innanzitutto inizializziamo a zero le variabili che ci servono.

In questo caso sono conta, contap e contad e per comodità le ho inserite in un unico rettangolo. Dopo inseriamo il ciclo while impostando la condizione conta<10.

Quindi chiediamo di inserire in input il numero n e controlliamo se è pari.

Per controllare se un numero è pari si considera il resto della divisione del numero diviso 2. Se è pari, incrementiamo il contatore dei pari, altrimenti incrementiamo il contatore dei dispari.

Non dimentichiamo di incrementare conta, altrimenti il ciclo sarà infinito.

Al termine dire quanti sono i numeri pari e dispari inseriti.

conta pari e dispari


Iterazione con i diagrammi di flusso – secondo metodo

Per risolvere l’algoritmo innanzitutto assegniamo ad N il valore 10, in quanto dobbiamo inserire 10 elementi.

N=10

Successivamente per ogni elemento inserito decrementeremo N.

Dopo inizializziamo anche le due variabili contap e contad a zero:

contap=0 e contad=0

Queste variabili dunque serviranno per contare quanti numeri pari e dispari sono stati inseriti.

Successivamente realizziamo un ciclo while dove metteremo la condizione: N>0. Il ciclo cioè continuerà finché N sarà positivo.

Le istruzioni che saranno eseguite all’interno del ciclo while sono:

Chiediamo in input il numero n;

Dopo, utilizzando l’istruzione di selezione if, facciamo un test per vedere se il numero è pari: n%2==0. Cioè il resto della divisione di n diviso due è uguale a zero? Ricordiamo che % è l’operatore modulo che permette di calcolare il resto della divisione. Quindi se la condizione è vera incrementiamo il contatore dei pari (contap=contap+1), altrimenti incrementiamo quello dei dispari (contad=contad+1).

Poi decrementiamo N di uno.

Alla fine del ciclo stampiamo i valori dei due contatori ottenuti.

Ecco quindi l’algoritmo di iterazione sviluppato con il diagramma di flusso:

iterazione con algobuild

Chiaramente ci possono essere tante altre soluzioni all’algoritmo proposto.

Questo è solo un semplice esempio di iterazione rappresentato con i diagrammi di flusso.

Alcuni link utili

Indice argomenti diagrammi a blocchi

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



Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *