In questo esempio realizziamo la media di N numeri con Scratch 3.
Quindi chiediamo in input quanti numeri inserire, li sommiamo tra loro ed alla fine calcoliamo e visualizziamo la media.
Procedimento media di N numeri con Scratch
Innanzitutto scegliamo uno sfondo ed uno sprite qualunque. Dopo, nello sprite scelto, aggiungiamo i seguenti passi:
1. Portiamo la variabile somma a zero.
2. Chiediamo quanti numeri inserire.
3. Portiamo la variabile N a risposta.
4. Realizziamo un ciclo che ripeteremo N volte e ripetiamo queste istruzioni:
a. Chiediamo un numero
b. Memorizziamo in numero la risposta
c. Aggiorniamo la somma aggiungendo il numero appena inserito.
5. Al termine del ciclo facciamo la media con l’operazione media=somma/N
6. Infine dire il risultato memorizzato nella variabile media.
Ecco quindi il codice a blocchi per il calcolo della media di N numeri con Scratch 3:
Chiaramente però l’utente potrebbe inserire valori di N negativi, o uguale a zero. Quindi sarebbe opportuno fare un controllo dell’input su N.
Per fare ciò basterà inserire un blocco ripeti fino a quando N è maggiore di 0 e all’interno richiedere nuovamente il numero.
Ecco dunque l’algoritmo per il calcolo della media di N numeri con controllo dell’input.
Sviluppiamo adesso lo stesso algoritmo in linguaggio C++, per chi vuole vedere le analogie con un linguaggio di programmazione.
Noterete che si entra nel ciclo while se la condizione è vera, al contrario di Scratch.
#include <iostream>
using namespace std;
int main() {
int i, N;
float numero, somma, media;
somma=0;
do{
cout<<"Quanti numeri vuoi inserire? : \t";
cin>>N;
}while (N<=0);
i=0;
while(i<N) {
cout<<"Inserisci il numero: \t";
cin>>numero;
somma=somma+numero;
i++;
}
media=somma/N;
cout<<"La media dei numeri e': \t"<<media<<endl;
}
Potremmo anche fare a meno di utilizzare la variabile somma e memorizzare tutto nella variabile media, in quanto non ci serve riutilizzare il valore della somma.
Inoltre l’istruzione somma=somma+numero; si può scrivere anche come somma+=numero.
Chiaramente al posto del while si potrebbe utilizzare anche il ciclo for.
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++