In questo esercizio implementeremo un algoritmo per trovare il massimo di N numeri in Scratch.
Procedimento: calcolo del massimo di N numeri in Scratch 3
Scegliamo dapprima uno sfondo ed uno sprite qualsiasi. Dopo, nello sprite scelto, aggiungiamo i seguenti passi:
1. Chiediamo quanti numeri inserire.
2. Portiamo la variabile N a risposta.
3. 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 a inserire nuovamente N qualora l’utente dovesse inserire un numero uguale a zero o negativo.
5. Chiediamo quindi di inserire il primo numero.
6. Portiamo la variabile max a risposta.
Facendo in questo modo stiamo inizializzando il valore massimo al primo numero inserito. Non è infatti possibile inizializzare il valore massimo a zero, in quanto, se ad esempio inseriamo questi numeri: -5, -4, -11, il valore massimo inserito risulterebbe zero anziché -4.
7. Realizziamo un ciclo che ripeteremo N-1 (perché un numero è già stato inserito) volte e ripetiamo queste istruzioni:
a. Chiediamo un numero
b. Memorizziamo in numero la risposta
c. Utilizziamo l’istruzione se per controllare che il numero appena inserito sia maggiore del valore massimo.
8. Infine visualizziamo il valore massimo di N numeri così ottenuto, utilizzando l’istruzione dire.
Al posto di ripeti N-1 volte si poteva utilizzare una variabile contatore ed il ciclo ripeti fino a quando la variabile contatore è uguale ad N-1.
Ricordiamo che in Scratch si entra nel ciclo se la condizione è falsa e si esce quando è vera.
Ecco quindi la seconda soluzione del massimo di N numeri in Scratch 3:
Per chi volesse consultare l’algoritmo in C++ per il calcolo del massimo di N numeri, ecco un esempio di possibile sviluppo:
#include <iostream>
using namespace std;
int main() {
int i, N, max, numero;
do{
cout<<"Quanti numeri vuoi inserire? : \t";
cin>>N;
}while (N<=0);
i=0;
cout<<"Inserisci il primo numero: \t";
cin>>max;
while(i<N-1) {
cout<<"Inserisci il numero: \t";
cin>>numero;
if(numero>max)
max=numero;
i++;
}
cout<<"Il massimo e': \t"<<max<<endl;
return 0;
}
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++