In questa lezione implementeremo un algoritmo per calcolare i multipli di un numero in Scratch 3.
Dati N numeri contare quanti sono i multipli di 3.
Multipli di un numero in Scratch – Procedimento
Come sempre innanzitutto scegliamo uno sfondo ed uno sprite qualsiasi.
Dopo creiamo le seguenti variabili:
conta, N e numero.
Poi aggiungiamo allo sprite il seguente codice a blocchi:
1. Inizializziamo a zero la variabile che serve a contare i multipli, che chiamiamo per semplicità conta.
2. Chiediamo quanti numeri inserire.
3. Portiamo la variabile N a risposta.
4. Realizziamo un ciclo che ripeteremo finché la condizione N maggiore di 0 è falsa e inseriamo queste istruzioni:
a. Chiediamo quanti numeri inserire.
b. Portiamo la variabile N a risposta.
Il ciclo serve ad inserire nuovamente N, qualora l’utente dovesse inserire un numero uguale a zero o negativo.
5. Realizziamo un altro ciclo che ripeteremo N volte e inseriamo queste istruzioni:
a. Chiediamo quindi di inserire il numero.
b. Portiamo la variabile numero a risposta.
c. Con l’istruzione se controlliamo che il resto della divisione di numero diviso 3 sia uguale a zero e se vero:
d. Cambiamo la variabile conta di 1.
6. Infine visualizziamo quanti multipli di 3 abbiamo contato con l’istruzione dire.
Ecco quindi il codice completo per il conteggio dei multipli di un numero in Scratch:
Chiaramente si poteva utilizzare anche un’istruzione ripeti fino a quando ed utilizzare così una variabile contatore.
Ecco la seconda soluzione che utilizza il ciclo ripeti fino a quando. Chiamo la variabile contatore i.
Si poteva procedere anche decrementando N di uno per ogni numero inserito.
Algoritmo dei multipli in C++
Allego anche il codice in C++ dell’algoritmo per il conteggio dei multipli di un numero per chi volesse consultarlo:
#include <iostream>
using namespace std;
int main() {
int N, numero, conta=0;
do{
cout<<"Quanti numeri vuoi inserire? : \t";
cin>>N;
}while (N<=0);
for (;N>0;N--)
cout<<"Inserisci il numero: \t";
cin>>numero;
if(numero%3==0)
conta++;
}
cout<<"Hai inserito "<<conta<<" multipli di 3"<<endl;
return 0;
}
Il problema si potrebbe generalizzare chiedendo ad esempio di inserire un multiplo M al posto di considerare il numero 3.
Occorre aggiungere quindi una nuova variabile M e modificare il punto 5c considerando il resto della divisione di numero diviso M.
Alcuni link utili
Massimo fra tre numeri in Scratch
Minimo tra 3 numeri in Scratch
Esempio di successione di Fibonacci con Algobuild
La successione di Fibonacci in C++