Sei sulla pagina 1di 4

Attività unplugged

La ricerca del valore minimo – con un mazzo di carte

Introduzione

In molti problemi quotidiani è necessario determinare il massimo o il minimo in un


insieme di valori; per esempio:
• stabilire le temperature minima e massima registrate in un anno;
• individuare il capocannoniere del campionato;
• determinare il pilota che ha impiegato il tempo minore a compiere un giro.
Quando l’insieme dei valori da controllare è molto grande o si ha necessità di avere
delle risposte in tempi rapidi, si può aver bisogno di un computer. Ma quale algoritmo
deve essere ideato e trasformato in istruzioni idonee affinché un computer possa
individuare i valori minimo o massimo in un insieme?
La risoluzione di questo problema è un esempio di applicazione del problem solving e
può essere proposta e discussa in classe. L’algoritmo di risoluzione, infatti, viene
discusso e migliorato grazie a una serie di passaggi da discutere con i ragazzi.
L’insegnante può guidare le loro scelte proponendo il percorso qui illustrato, o uno
analogo di sua ideazione. Lo scopo non è trovare un metodo perfetto, ma attivare un
percorso guidato di problem solving e allo stesso tempo introdurre il concetto di
variabile, fondamentale nel mondo dell’informatica.

Approfondimenti
1
In informatica una variabile è un «contenitore di valori»; per questo talvolta
viene rappresentata come una scatola con all’interno un valore e A
contraddistinta da un nome sulla parte esterna.
Più precisamente, una variabile è una coppia nome-valore usata per memorizzare dei
dati destinati a variare durante l’esecuzione di un algoritmo. Il nome di una variabile è
immutabile e serve per potersi riferire al relativo valore, che invece può cambiare. È
consuetudine riportare il nome della variabile a sinistra e il corrispondente valore a
destra: scrivendo A ! 1 si intende assegnare il valore 1 alla variabile A.
A!1
Temperatura ! 37,2
Lettera ! “x”
Nei linguaggi di programmazione, al posto della freccia si utilizza il simbolo «=». È
consigliato associare dei nomi significativi alle variabili, che ne ricordino il significato.

1
Questo file è un’estensione online del corso Computer & coding – Di Palma, Meini, Formichi
@ 2017 Zanichelli Editore S.p.A.
Traccia dell'attività

La ricerca di valori massimi all'interno di un insieme si effettua scorrendo tutti gli


elementi, annotando il valore trovato e sostituendolo solo quando, durante lo
scorrimento, se ne trova uno maggiore. Una volta esauriti gli elementi da confrontare,
il valore annotato corrisponderà al maggiore dell'insieme. Del tutto analoga è la ricerca
di valori minimi. L’esigenza di «annotare» un valore introduce in modo naturale il
concetto di variabile.

1) Ponete la domanda: che metodo posso usare per stabilire qual è la carta più
alta in un insieme di sei carte da gioco?
Note: È possibile usare un mazzo qualsiasi di carte. Prima di iniziare si deve
stabilire se considerare l'asso la carta dal valore più alto o più basso. Tra le sei
carte scelte ci possono anche essere due o più carte dal valore più alto, per
esempio due Re.

Lasciate che gli studenti espongano i loro suggerimenti; eventualmente seguite la


traccia qui esposta, aiutandovi anche con le domande suggerite.

D: Cosa accadrebbe se l'insieme delle R: La prima - o l'ultima - carta del


sei carte fosse ordinato? mazzo sarebbe quella con il valore
più alto.
D: Dato che l’insieme non è ordinato, R: Tutte e sei.
quante carte devo guardare per stabilire
qual è la più alta?
1. Prelevate la prima carta (fate in modo
che non sia la più alta)
D: Come faccio a sapere se è la più alta? R: Devo confrontarla con tutte le
altre.
2. Proponete di annotare il suo valore:
scrivete alla lavagna Carta più alta ! e
a fianco il valore
3. Prelevate la carta successiva
4. Confrontatela con il valore alla lavagna
D: Cosa devo fare quando ne trovo una R: Riportare il suo valore alla lavagna
più alta? al posto del precedente.
Quando accade fate una X sul valore
precedente e scrivete a fianco il
nuovo
D: Cosa devo fare quando ne trovo una R: Niente
più bassa?
D: Cosa devo fare se ne trovo una di R: Niente
valore uguale?
5. Se ci sono ancora carte ripetete dal
punto 3

2
Questo file è un’estensione online del corso Computer & coding – Di Palma, Meini, Formichi
@ 2017 Zanichelli Editore S.p.A.
L’algoritmo
Proponete di scrivere in forma di algoritmo il procedimento seguito. Il risultato
dovrebbe essere simile a quanto riportato di seguito.

INIZIO

Scegli 6 carte

Preleva la prima carta

MAX ! Valore della carta

Ci sono ancora
carte?

Preleva la carta successiva

La carta più alta


Il suo valore è
ha valore MAX
maggiore di
MAX?
MAX ! Valore nuova carta
FINE

Il computer sei tu!


Chiedete a uno studente - o alla classe - di verificare alla lavagna se l’algoritmo è
corretto: dovete scegliere sei carte e l’allievo dovrà eseguire la sequenza senza
aggiungere alcuna interpretazione, così come farebbe un computer.

Che cosa abbiamo imparato


Potete introdurre il concetto di variabile come «contenitore» di valori che possono
cambiare; più precisamente come coppia nome-valore, nella quale il nome rimane
costante e il valore può variare durante l’esecuzione di un algoritmo.

Sono stati presentati alcuni degli elementi fondamentali degli algoritmi: le sequenze,
le scelte, i cicli.

L'attività proposta è stata risolta applicando il metodo del problem solving.

3
Questo file è un’estensione online del corso Computer & coding – Di Palma, Meini, Formichi
@ 2017 Zanichelli Editore S.p.A.
Altri spunti di discussione

Proponete ai ragazzi le domande qui presentate, come ulteriori spunti di discussione


costruttiva.

D: Cosa accade se la carta più alta è la R: Non avviene alcuna


prima? sostituzione
D: Cosa cambia se voglio trovare il valore più R: Il verso del confronto tra le
basso? carte
D: Cosa devo cambiare nell’algoritmo se ho R: niente
un numero diverso di carte?
D: Se volessi trovare sia la carta più alta sia R: di due variabili
quella più bassa, di cosa avrei bisogno?
D: Come cambierebbe l'algoritmo in questo Ascoltate le proposte dei
caso? ragazzi…
I ragazzi potrebbero proporre di effettuare Se non lo fanno, proponetelo voi.
prima la ricerca per il valore massimo e poi la
ricerca per quello minimo.
Oppure i ragazzi potrebbero proporre di Se non lo fanno, proponetelo voi.
inserire nell’algoritmo due variabili e due
controlli: uno per il valore minimo e uno per il
valore massimo.
D: Quale metodo è preferibile? Perché? R: Il secondo metodo consente di
scorrere l'insieme una volta sola;
la differenza è più evidente su
insiemi molto numerosi.
Per esempio, se vogliamo
cercare l’allievo più alto e quello
più basso della scuola, usando il
primo metodo dovrebbero essere
misurati due volte.

4
Questo file è un’estensione online del corso Computer & coding – Di Palma, Meini, Formichi
@ 2017 Zanichelli Editore S.p.A.

Potrebbero piacerti anche