Esercizio con le iterazioni

Esercizio con le iterazioni

Affronteremo in questa lezione un altro esercizio con le iterazioni.

Utilizzeremo sempre il ciclo while, ma a breve vi dimostrerò come utilizzare altre strutture iterative come ad esempio il for.

Inserire 10 numeri e sommare solo quelli compresi tra 50 e 100.

In questo caso dobbiamo inserire dei numeri ma sommare solo quelli che sono compresi nell’intervallo [50,100].

Esercizio con le iterazioni – Primo procedimento

Innanzitutto assegniamo a conta e somma il valore 0. Modificate la somma nella versione nuova di Algobuild inserendo somma=0.0.

Dopo impostiamo la condizione conta <10 e finché questa condizione è vera eseguiamo queste istruzioni:

Inseriamo il numero n.

Controlliamo se n soddisfa la condizione richiesta utilizzando gli operatori logici. Nel caso specifico l’operatore && (and) che rende vera l’espressione, solo se entrambe le condizioni sono vere.

Se la condizione è vera sommiamo il numero, altrimenti niente.

Incrementiamo il contatore di 1.

Al termine del ciclo visualizziamo in output la somma così ottenuta.

somma intervallo


Esercizio con le iterazioni – Secondo procedimento

Innanzitutto assegniamo ad N il valore 10, che decrementeremo ad ogni numero inserito.

Poi inizializziamo la variabile somma a 0: somma=0. In quanto l’elemento neutro della somma è 0.

Impostiamo la condizione del while: N>0, cioè finché N è positivo eseguiamo queste istruzioni:

Inseriamo in input il numero n;

Dopo, con l’if (la selezione) facciamo un test per vedere se il numero preso in input è maggiore o uguale a 50 e contemporaneamente minore o uguale a 100. Utilizzeremo dunque questa istruzione: n>=50 && n<=100, utilizzando l’operatore logico and (&&). Se il numero è compreso nell’intervallo allora lo aggiungiamo alla variabile somma: somma=somma+n

Poi decrementiamo N di uno.

Al termine dell’iterazione procederemo a visualizzare il risultato, cioè la somma dei numeri compresi nell’intervallo [50,100].

Ecco il diagramma a blocchi dell’esercizio con le iterazioni proposto in questa lezione.

somma intervallo di numeri algobuild

Chiaramente la soluzione proposta all’esercizio con le iterazioni è solo uno dei possibili procedimenti risolutivi.

Alcuni link utili

Indice argomenti diagrammi 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

Tabellina del 2

Tabellina del 2

Realizziamo un semplice diagramma a blocchi che rappresenti l’algoritmo per il calcolo della tabellina del 2.

Questo tipo di algoritmo lo sviluppiamo in maniera iterativa, cioè utilizzando i cicli.

Ci serve una variabile conta che parte da 0 e arriva fino a 11. Quando arriva ad 11 infatti uscirà dal ciclo senza calcolare nulla.

La variabile conta di volta in volta la moltiplichiamo per 2 e successivamente la incrementata di 1.

Quindi si avrà:

Primo passo:

numero=conta*2=0*2=0
conta=conta+1=0+1=1

Secondo passo:

numero=conta*2=1*2=2
conta=conta+1=1+1=2

Terzo passo:

numero=conta*2=2*2=4
conta=conta+1=2+1=3

e così via fino ad arrivare a 20.


Tabellina del 2 – primo procedimento

Sviluppiamo dunque una prima soluzione seguendo i passaggi spiegati nell’esempio precedente. Utilizziamo cioè la variabile conta che di volta in volta verrà moltiplicata per due.

Ad ogni iterazione stampiamo il numero così ottenuto.

Dopo incrementiamo la variabile conta di 1.

Ripetiamo il tutto fino ad ottenere il numero 20, ovvero 10*2.

Ecco il diagramma a blocchi, sviluppato con Algobuild, che determina l’algoritmo della tabellina del 2. L’algoritmo utilizza le strutture iterative.

tabellina

Tabellina del 2 – secondo procedimento

Proponiamo un’altra soluzione che non utilizza la variabile contatore:

In questo caso inizializziamo il numero a zero ed impostiamo l’uscita dal ciclo quando il numero raggiungerà 20 (2*10).

All’interno del ciclo incrementeremo il numero di 2 ogni volta.

Ecco dunque il diagramma a blocchi che rappresenta la seconda soluzione all’algoritmo per la tabellina del 2.

algoritmo tabellina

Questi sono solo dei semplici esempi di come realizzare un algoritmo che visualizzi la tabellina del 2.

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

Successivi di un numero

Successivi di un numero

In questa lezione implementeremo un algoritmo per il calcolo dei successivi di un numero.

Realizziamo un semplice diagramma a blocchi che rappresenti l’algoritmo per il calcolo dei 3 numeri successivi ad un numero preso in input.

Abbiamo già sviluppato questo algoritmo con la struttura sequenziale in questo articolo: precedente e successivo di un numero.

Adesso lo proponiamo con le strutture iterative, utilizzando i cicli.


Successivi di un numero – primo procedimento

Sviluppiamo una prima soluzione utilizzando il contatore i che si incrementa per ogni numero successivo calcolato.

Inizializziamo la variabile i a zero e inseriamo nel while il test: i<3. All’interno del ciclo calcoliamo i successivi e facciamo incrementare i di 1 per ogni successivo calcolato. Stampiamo i numeri così calcolati.

Quando i diventa 3 si esce fuori dal ciclo e si va nel ramo del falso. In questo caso non dobbiamo inserire nessun output nel ramo del falso.

Ecco dunque il diagramma a blocchi completo:

successivi diagramma a blocchi

Successivi di un numero – primo procedimento

Una seconda soluzione la otteniamo non utilizzando il contatore ma utilizzando una costante c a cui assegniamo il valore di n+3.

Quindi finché n non raggiungerà c continueremo a calcolare il successivo.

Ecco dunque il diagramma a blocchi completo:

successivi

Le forme che abbiamo utilizzato sono:

Ellisse per l’inizio e per la fine.

Rettangolo per le operazioni, in questo caso per il calcolo di c e dei successivi.

Rombo per il ciclo, in cui inseriamo la condizione n<c;

Parallelogramma per inserire l’input, ovvero il numero n e per visualizzare l’output, cioè i tre numeri successivi.

In questa lezione abbiamo sviluppato un semplice algoritmo per il calcolo dei successivi di un numero.

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

Media di N numeri con scratch

Media di N numeri con scratch

Sviluppiamo oggi un programma che calcola la media di N numeri con scratch. Svilupperò l’algoritmo presentando due possibili soluzioni, di cui la più semplice è l’ultima, in fondo all’articolo.

Prendere in input da 1 a 9 materie, facendo un controllo dell’input, calcolare e visualizzare la media dei voti.


Procedimento algoritmo per il calcolo della media di N numeri con Scratch

La prima operazione da fare è scegliere uno sfondo e uno sprite qualunque.

media sfondo

Dopo creiamo le variabili necessarie.

materie sfondo

In questo caso utilizzo: la variabile materie per indicare il numero delle materie; la variabile media per il calcolo della media; la variabile voto dove memorizzo il voto di ciascuna materia e la variabile numero_materia per indicare il numero della materia.

Quindi sviluppo il codice a blocchi.

Innanzitutto inizializzo la variabile media a zero, questa operazione è importante perché la prima volta che all’interno del ciclo eseguirò l’operazione: media=media+voto, l’elemento che ho messo in grassetto non avrà un valore ben definito perché non ancora calcolato. Allora conviene inizializzarlo all’elemento neutro della somma in quanto non comporta nessuna variazione nei risultati.

Dopo chiedo quante materie inserire e memorizzo questo valore in una variabile. Faccio un controllo per verificare che l’utente non inserisca valori minori di zero o maggiori di 9, cioè permettiamo l’inserimento da 1 a 9 materie.

Poi portiamo la variabile numero_materie a 1 e iniziamo ad inserire i voti (volendo potete anche effettuare un controllo sul voto inserito), utilizzando un ciclo ripeti materie volte (volendo potrei anche utilizzare un ciclo con contatore – ovvero ripeti fino a quando). Ogni voto è sommato e memorizzato nella variabile media. Al termine del ciclo si calcola la media con questa operazione: media=media/materie. Infine si visualizza il risultato.

Avrei anche potuto utilizzare una variabile somma dove sommare a parte i risultati, qualora servisse conservare il risultato della somma.

Ecco il codice a blocchi completo dell’algoritmo per calcolare la media di N numeri con Scratch.

media scratch

Chiaramente l’algoritmo per il calcolo della media di N numeri con Scratch presenta altre soluzioni alternative.

Ad esempio, nella versione più semplice, senza controllo dell’input e conteggio delle materie, si poteva implementare semplicemente così:

calcolo della media


Alcuni link utili

Area e perimetro con scratch

Divisori di un numero con scratch

Multipli di un numero con scratch

Numeri pari con scratch

Esercizi con scratch

Potenze con scratch

Quoziente potenze stessa base con scratch

Palindroma con scratch

Storiella con scratch

Serie buffa con scratch

Operazioni matematiche con scratch

Come sommare un intervallo di numeri con scratch

Anno bisestile con scratch

Selezione con scratch

Olimpiadi di informatica con scratch

Olimpiadi di matematica con scratch

Figure equivalenti con scratch


Istruzione di iterazione

Istruzione di iterazione

Continuiamo a parlare dell’istruzione di iterazione. Abbiamo già svolto parecchi esercizi con le iterazioni usando il while, in questa lezione svilupperemo altri esempi al fine di consolidare quanto appreso finora.

Prendiamo in input 20 numeri e li moltiplichiamo tra loro.


Istruzione di iterazione

Per lo sviluppo del seguente algoritmo utilizzeremo il while semplicemente perché ancora non sono state introdotte altre strutture iterative come ad esempio il for.


Procedimento

Innanzitutto assegniamo ad N il valore 20, utilizzando come forma il rettangolo:

N=20

Successivamente per ogni elemento inserito decrementiamo N.

Poi inizializziamo la variabile prodotto a 1, utilizzando sempre il rettangolo:

prodotto=1.

In quanto l’elemento neutro del prodotto è 1.

Quindi realizziamo un’istruzione di iterazione utilizzando il ciclo while dove impostiamo la condizione: N>0. Il ciclo dunque continuerà finché N sarà positivo. La forma utilizzata nei diagrammi di flusso per il ciclo while è il rombo.

Le istruzioni che eseguiremo all’interno del ciclo while sono queste:

Inseriamo in input un numero n (utilizzando il parallelogramma);

Dopo moltiplichiamo il numero n per la variabile prodotto: prodotto=n*prodotto (utilizzando il rettangolo)

Poi decrementiamo N di 1 (utilizzando il rettangolo)

Al termine dell’iterazione visualizziamo il risultato, cioè il prodotto dei 20 numeri inseriti. La forma che utilizziamo per visualizzare in output il risultato è il parallelogramma.

Ecco dunque la rappresentazione dell’algoritmo per il calcolo del prodotto di 20 di numeri che utilizza l’istruzione di iterazione, nello specifico il while.

prodotto numeri algobuild

Chiaramente la soluzione proposta è solo uno dei possibili metodi per implementare questo algoritmo che calcola il prodotto di un numero usando l’istruzione di iterazione.

Alcuni link utili

Indice argomenti diagrammi 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