Oggi sviluppiamo l’algoritmo selection sort con Scratch.
Infatti anche con Scratch è possibile implementare anche gli algoritmi di ordinamento che di solito si sviluppano con i vari linguaggi di programmazione.
Ragioniamo come abbiamo anche fatto per il selection sort in C.
Come sviluppare l’algoritmo selection sort con Scratch?
Occorre premettere che per realizzare questo algoritmo bisogna saper utilizzare le liste.
Liste in Scratch
Le liste ricordiamo sono dei contenitori che permettono di contenere più valori alla volta e di organizzare i dati in maniera sequenziale.
È inoltre possibile aggiungere elementi alla lista durante l’esecuzione di un programma.
Per accedere agli elementi della lista dobbiamo accedere alla sua posizione.
Procedimento algoritmo selection sort con Scratch
Occorre innanzitutto creare la lista, in questo caso di numeri, che chiamo senza troppa fantasia numeri!
Chiedo dunque quanti elementi inserire e memorizzo la risposta in una variabile che chiamo N.
Successivamente con un ciclo popolo la mia lista di numeri.
In che modo?
Creo una variabile contatore che chiamo conta che ha la funzione di tenere traccia dei numeri che a mano a mano verranno inseriti. Tale variabile deve essere inizializzata a zero, si incrementerà per ogni inserimento e si fermerà quando raggiungerà N, ovvero il numero di elementi richiesti.
All’interno del ciclo chiedo ogni volta di inserire un numero.
In questo modo ho popolato la mia lista con dei numeri a caso che ho inserito da tastiera.
Elenco sotto le variabili che ho utilizzato. Le variabili min, j e temp verranno spiegate più avanti.
Chiedo dunque di visualizzare gli elementi della lista con una semplice lettura della lista stessa.
Utilizzo lo stesso contatore che inizializzo nuovamente a zero e creo un ciclo che consentirà di leggere tutti gli elementi della lista, grazie al comando delle liste di Scratch: elemento …. di numeri, che visualizzerà prima l’elemento con indice 0, poi l’elemento con indice 1 e così via.
Adesso dobbiamo ordinare l’array e per farlo procediamo in questo modo.
Ci servono le variabili:
- min
- j
- temp
Assegniamo a min il valore di conta, così da farlo partire dalla posizione zero e a j assegniamo il valore di conta + 1, in modo tale da fare partire l’indice dalla posizione 1.
Poi scorriamo la lista e se l’elemento di posizione j della lista è minore dell’elemento di posizione min allora assegno a min il valore j. Altrimenti vado avanti incrementando j e utilizzando una variabile temporanea che ad esempio chiamo temp per effettuare lo scambio.
Non ci resta che visualizzare l’array ordinato.
Allego lo script nell’immagine sotto.
Questo è solo un esempio di sviluppo dell’algoritmo selection sort con Scratch, proponete pure la vostra nei commenti sotto.
Alcuni link utili