Il
LOGO è un linguaggio di programmazione ideato e realizzato negli anni '60
dal professor
Seymour Papert del
MIT. È adatto ai bambini perchè permette di ottenere subito risultati visibili.
Prima lezione
Nella prima lezione faremo disegnare al cursore (tartarughina) un triangolo equilatero e per far questo utilizzeremo due comandi:
avanti e
destra.
Aprite la pagina con l'applicazione
PAPERT e nel riquadro in basso a destra dell'applicazione scrivete (o copia/incollate):
pulisci
avanti 100
destra 120
avanti 100
destra 120
avanti 100
Premete il tasto
esegui (o meglio
esegui lentamente) e vedrete il cursore tracciare un triangolo. Ma cosa gli abbiamo
comandato di fare?
Con il primo comando
pulisci cancelliamo eventuali linee presenti nello schermo, con il secondo comando,
avanti, tracciamo una linea in avanti di 100 pixel, con il terzo comando
destra orientiamo il cursore di centoventi gradi verso destra (usate il
goniometro come aiuto). Con il quarto comando
avanti il cursore disegnerà una riga di cento pixel nella direzione scelta precedentemente. E così via.
Come esercitazione provate a disegnare altri poligoni regolari, come il rettangolo, il pentagono, l'ottagono, ecc.
Le misure degli angoli, se non le conoscete già e non volete andare a tentativi potete trovarle facilmente su
Wikipedia, attenzione, a noi serve l'angolo esterno. Quindi se avete l'angolo interno dovete effettuare l'operazione 180 - angolo interno.
Seconda lezione
In questa lezione introduciamo un altro comando e un segno.
Il comando è
ripeti (repeat nella versione originaria in inglese)
e il segno è la parentesi quadra [].
Ridisegnamo il triangolo della prima lezione ma stavolta usando il comando
ripeti.
ripeti 3 [avanti 100 sinistra 120]
Come potete facilmente notare, le istruzioni dentro la parentesi quadra
vengono ripetute 3 volte.
A questo punto abbiamo capito che per disegnare un cerchio รจ sufficiente ripetere 360 un passo avanti ed uno a destra, in questo modo:
ripeti 360 [avanti 1 destra 1]
E un quadrato:
ripeti 4 [avanti 100 destra 90]
Terza lezione
Nella lezione precedente abbiamo visto come ripetere tante volte
delle istruzioni. Ma se volessimo disegnarne due di triangoli, uno di
fronte all'altro? Dovremmo aggiungere, prima un comando per ruotare
la tartaruga (il cursore, la freccia) di 180 gradi e poi dare di nuovo
il comando ripeti 3, ecc.
Ma c'è un modo più semplice per farlo.
Impacchettiamo le istruzioni e gli diamo un nome, nel nostro caso
triangolo, in questo modo, ogni volta che avremo bisogno di
disegnare un triangolo sarà sufficiente digitare
triangolo,
così come avviene con i comandi.
Per impacchettare delle istruzioni useremo le parole
inizio e
fine (nella versione inglese
to e
end).
inizio triangolo
ripeti 3 [avanti 100 sinistra 120]
fine
triangolo
destra 180
triangolo
Quarta lezione
Per rendere la procedura [inizio ... fine] ancora più potente in questa
lezione vi spiegheremo come passarle dei parametri.
Dopo
inizio e dopo il nome della funzione (chiamamola così per
comodità nei vari linguaggi di programmazione prende nomi diversi,
funzione, procedura, routine, metodo, ecc.) aggiungiamo una parola per identificare
il parametro preceduta dal segno dei due punti, ad esempio :lato .
Con le istruzioni qui sotto vedrete che i triangoli avranno lati diversi
a secondo il parametro passato alla funzione.
inizio triangolo
:lato
ripeti 3 [avanti :lato sinistra 120]
fine
triangolo 50
destra 180
triangolo 100
Quinta lezione
Completiamo la panoramica dei comandi base con
sealtrimenti (nell'originale
ifelse),
memorizza (make) e
casuale (random), quest'ultimo non è
con è un comando principale ma lo citiamo in quanto ci servirà
nell'esempio che vi proponiamo.
Simuliamo un percorso a scalini in avanti da far disegnare alla tartaruga in
modo casuale.
inizio scalinosx
sinistra 90
avanti 20
destra 90
avanti 20
fine
inizio scalinodx
destra 90
avanti 20
sinistra 90
avanti 20
fine
repeat 10 [
memorizza "numerocasuale casuale 2
sealtrimenti :casuale = 0 [
scalinodx ] [
scalinosx ]
]
Le prime istruzioni sono già note, due funzioni, la prima "scalinosx"
fa avanzare la tartaruga a sinistra, la seconda "scalinodx" a destra.
La novità sta nelle istruzioni successive, con
memorizza salviamo
nella variabile "numerocasuale" un valore
casuale scelto da 0 a 1.
Con il comando
sealtrimenti verrà eseguita la funzione "scalinosx"
se il valore casuale è 0 o la funzione "scalinodx" se è 1.
E ora disegnamo un fiocco di neve ...
inizio linea :conta :lunghezza
sealtrimenti :conta = 1 [avanti :lunghezza] [
memorizza "conta :conta -1
linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza]
fine
inizio fiocco :conta :lunghezza
destra 30 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
fine
reset
setxy 10 400
fiocco 5 4
Un'altra versione di Logo usabile online è disponibile
QUI.
Video lezioni su Logo sono disponibili gratuitamente sulla piattaforma MOOC
dell'Università di Napoli Federico II all'indirizzo
federica.eu/c/coding_a_scuola_con_software_libero