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!

lista numeri iin scratch

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.

Banner Pubblicitario

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.

variabili utilizzate per selection sort in scratch

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.

Banner pubblicitario
lettura lista scratch

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.

selection sort in scratch

Questo è solo un esempio di sviluppo dell’algoritmo selection sort con Scratch, proponete pure la vostra nei commenti sotto.

Alcuni link utili

Selection sort in C

Array o vettori

Quick sort in linguaggio C

Merge sort in linguaggio C

Insertion Sort in lingaggio C