Il primo vero algoritmo che implementerai riguarda la ricerca del massimo in una lista di numeri interi.
Descrizione in linguaggio naturale
Sia i = 2 e sia max il valore contenuto nel primo elemento della lista.
Fino a che non sei arrivato alla fine della lista esegui le due operazioni che seguono: se l'elemento corrente della lista (ovvero quello in posizione i) è maggiore di max allora max diventa uguale all'elemento corrente; incrementa i di 1.
Descrizione più formale e vicina a un programma
siano i, lunghezza e max tre variabili in grado di contenere un intero
sia lista una variabile di tipo lista
togli ogni elemento da lista (serve per essere sicuri di tornare alla situazione in cui la lista è vuota, nel caso in cui la variabile lista fosse già stata usata)
porta max ad un valore sicuramente minore di quelli che si troveranno nella lista, ad esempio -1
chiedi all'utente di inserire il numero di elementi nella lista
porta lunghezza al valore inserito dall'utente
per lunghezza volte
chiedi all'utente di inserire un nuovo elemento nella lista
aggiungi alla lista l'elemento inserito dall'utente
porta max al valore del primo elemento della lista
porta i a 2 (perché inizialmente confronteremo max che è il primo elemento, con il secondo elemento)
ripeti le istruzioni seguenti fino a quando i non diventa uguale a lunghezza + 1 (vuole dire che la lista è stata scandita tutta)
se l'elemento in posizione i-esima della lista è maggiore di max
porta max al valore dell'elemento in posizione i-esima della lista
incrementa i di 1
comunica all'utente il valore di max
Il mio primo programma in Scratch!
Premessa: non abbiamo ancora visto come chiedere all'utente di inserire un valore e come leggerlo, né come comunicargli un risultato. Vedremo poi nel dettaglio gli elementi del linguaggio necessari a interagire con l'utente. Per adesso ci basta sapere quanto segue:
presenta una domanda sullo schermo e memorizza la risposta nel
reporter
.
Causa la sospensione del programma fino a che il tasto Enter viene
premuto oppure il segno
è cliccato.
Riporta l'ultimo valore inserito tramite tastiera in seguito
all'esecuzione del più recente blocco
.
mostra il fumetto "parlante" per il tempo specificato.
Il programma Scratch che implementa la ricerca del massimo in una lista ricalca esattamente la struttura della descrizione formale che abbiamo fornito (abbiamo inserito dei "pensieri" in alcuni punti per mostrare l'esecuzione del programma; il programma funziona correttamente anche senza di essi!)